Fix config checker
This commit is contained in:
parent
c6720f0bf5
commit
3482688cce
3 changed files with 26 additions and 22 deletions
23
server.ts
23
server.ts
|
@ -23,28 +23,29 @@ process.title = 'peertube'
|
|||
// 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'
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
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 () {
|
||||
|
@ -21,8 +21,8 @@ function checkMissedConfig () {
|
|||
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[] = []
|
||||
|
||||
|
@ -36,7 +36,8 @@ function checkMissedConfig () {
|
|||
}
|
||||
|
||||
// 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)
|
||||
|
||||
|
@ -57,14 +58,16 @@ function checkFFmpeg () {
|
|||
})
|
||||
}
|
||||
|
||||
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
|
||||
})
|
||||
}
|
||||
|
|
|
@ -57,7 +57,7 @@ function createDirectoriesIfNotExist () {
|
|||
}
|
||||
|
||||
function createOAuthClientIfNotExist () {
|
||||
return clientsExist().then(exist => {
|
||||
return clientsExist(db.OAuthClient).then(exist => {
|
||||
// Nothing to do, clients already exist
|
||||
if (exist === true) return undefined
|
||||
|
||||
|
@ -82,7 +82,7 @@ function createOAuthClientIfNotExist () {
|
|||
}
|
||||
|
||||
function createOAuthAdminIfNotExist () {
|
||||
return usersExist().then(exist => {
|
||||
return usersExist(db.User).then(exist => {
|
||||
// Nothing to do, users already exist
|
||||
if (exist === true) return undefined
|
||||
|
||||
|
|
Loading…
Reference in a new issue