// Create our main app
const app = express()
-// ----------- Database -----------
-// Do not use barrels because we don't want to load all modules here (we need to initialize database first)
-import { logger } from './server/helpers/logger'
-import { API_VERSION, CONFIG, STATIC_PATHS } from './server/initializers/constants'
-// Initialize database and models
-import { database as db } from './server/initializers/database'
-db.init(false).then(() => onDatabaseInitDone())
-
-// ----------- Checker -----------
+// ----------- Core checker -----------
import { checkMissedConfig, checkFFmpeg, checkConfig } from './server/initializers/checker'
const missed = checkMissedConfig()
if (missed.length !== 0) {
- throw new Error('Miss some configurations keys : ' + missed)
+ throw new Error('Your configuration files miss keys: ' + missed)
}
-checkFFmpeg()
+
+import { API_VERSION, CONFIG, STATIC_PATHS } from './server/initializers/constants'
+checkFFmpeg(CONFIG)
const errorMessage = checkConfig()
if (errorMessage !== null) {
throw new Error(errorMessage)
}
+// ----------- Database -----------
+// Do not use barrels because we don't want to load all modules here (we need to initialize database first)
+import { logger } from './server/helpers/logger'
+// Initialize database and models
+import { database as db } from './server/initializers/database'
+db.init(false).then(() => onDatabaseInitDone())
+
// ----------- PeerTube modules -----------
import { migrate, installApplication } from './server/initializers'
import { JobScheduler, activateSchedulers, VideosPreviewCache } from './server/lib'
import * as config from 'config'
-import { database as db } from './database'
-import { CONFIG } from './constants'
import { promisify0 } from '../helpers/core-utils'
+import { OAuthClientModel } from '../models/oauth/oauth-client-interface'
+import { UserModel } from '../models/user/user-interface'
// Some checks on configuration files
function checkConfig () {
const required = [ 'listen.port',
'webserver.https', 'webserver.hostname', 'webserver.port',
'database.hostname', 'database.port', 'database.suffix', 'database.username', 'database.password',
- 'storage.certs', 'storage.videos', 'storage.logs', 'storage.thumbnails', 'storage.previews',
- 'admin.email', 'signup.enabled', 'transcoding.enabled', 'transcoding.threads'
+ 'storage.certs', 'storage.videos', 'storage.logs', 'storage.thumbnails', 'storage.previews', 'storage.torrents', 'storage.cache',
+ 'cache.previews.size', 'admin.email', 'signup.enabled', 'signup.limit', 'transcoding.enabled', 'transcoding.threads'
]
const miss: string[] = []
}
// Check the available codecs
-function checkFFmpeg () {
+// We get CONFIG by param to not import it in this file (import orders)
+function checkFFmpeg (CONFIG: { TRANSCODING: { ENABLED: boolean } }) {
const Ffmpeg = require('fluent-ffmpeg')
const getAvailableCodecsPromise = promisify0(Ffmpeg.getAvailableCodecs)
})
}
-function clientsExist () {
- return db.OAuthClient.countTotal().then(totalClients => {
+// We get db by param to not import it in this file (import orders)
+function clientsExist (OAuthClient: OAuthClientModel) {
+ return OAuthClient.countTotal().then(totalClients => {
return totalClients !== 0
})
}
-function usersExist () {
- return db.User.countTotal().then(totalUsers => {
+// We get db by param to not import it in this file (import orders)
+function usersExist (User: UserModel) {
+ return User.countTotal().then(totalUsers => {
return totalUsers !== 0
})
}
}
function createOAuthClientIfNotExist () {
- return clientsExist().then(exist => {
+ return clientsExist(db.OAuthClient).then(exist => {
// Nothing to do, clients already exist
if (exist === true) return undefined
}
function createOAuthAdminIfNotExist () {
- return usersExist().then(exist => {
+ return usersExist(db.User).then(exist => {
// Nothing to do, users already exist
if (exist === true) return undefined