X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=server%2Finitializers%2Fchecker-after-init.ts;h=a93c8b7fd3778204d0e4be383cb8bd107b902073;hb=1fa23d6f5e487f3c149e1f0001beadd919ee82fc;hp=a57d552df1f8e02396d4f4532970705885ae6b7a;hpb=8c9e7875269a990ed3000e1d4995d808e4ff50f7;p=github%2FChocobozzz%2FPeerTube.git diff --git a/server/initializers/checker-after-init.ts b/server/initializers/checker-after-init.ts index a57d552df..a93c8b7fd 100644 --- a/server/initializers/checker-after-init.ts +++ b/server/initializers/checker-after-init.ts @@ -1,17 +1,17 @@ import * as config from 'config' -import { isProdInstance, isTestInstance } from '../helpers/core-utils' -import { UserModel } from '../models/account/user' -import { ApplicationModel } from '../models/application/application' -import { OAuthClientModel } from '../models/oauth/oauth-client' +import { uniq } from 'lodash' import { URL } from 'url' -import { CONFIG, isEmailEnabled } from './config' -import { logger } from '../helpers/logger' -import { getServerActor } from '../helpers/utils' +import { getFFmpegVersion } from '@server/helpers/ffmpeg-utils' +import { VideoRedundancyConfigFilter } from '@shared/models/redundancy/video-redundancy-config-filter.type' import { RecentlyAddedStrategy } from '../../shared/models/redundancy' +import { isProdInstance, isTestInstance, parseSemVersion } from '../helpers/core-utils' import { isArray } from '../helpers/custom-validators/misc' -import { uniq } from 'lodash' +import { logger } from '../helpers/logger' +import { UserModel } from '../models/account/user' +import { ApplicationModel, getServerActor } from '../models/application/application' +import { OAuthClientModel } from '../models/oauth/oauth-client' +import { CONFIG, isEmailEnabled } from './config' import { WEBSERVER } from './constants' -import { VideoRedundancyConfigFilter } from '@shared/models/redundancy/video-redundancy-config-filter.type' async function checkActivityPubUrls () { const actor = await getServerActor() @@ -108,15 +108,49 @@ function checkConfig () { } } + if (CONFIG.STORAGE.VIDEOS_DIR === CONFIG.STORAGE.REDUNDANCY_DIR) { + logger.warn('Redundancy directory should be different than the videos folder.') + } + // Transcoding if (CONFIG.TRANSCODING.ENABLED) { if (CONFIG.TRANSCODING.WEBTORRENT.ENABLED === false && CONFIG.TRANSCODING.HLS.ENABLED === false) { return 'You need to enable at least WebTorrent transcoding or HLS transcoding.' } + + if (CONFIG.TRANSCODING.CONCURRENCY <= 0) { + return 'Transcoding concurrency should be > 0' + } } - if (CONFIG.STORAGE.VIDEOS_DIR === CONFIG.STORAGE.REDUNDANCY_DIR) { - logger.warn('Redundancy directory should be different than the videos folder.') + if (CONFIG.IMPORT.VIDEOS.HTTP.ENABLED || CONFIG.IMPORT.VIDEOS.TORRENT.ENABLED) { + if (CONFIG.IMPORT.VIDEOS.CONCURRENCY <= 0) { + return 'Video import concurrency should be > 0' + } + } + + // Broadcast message + if (CONFIG.BROADCAST_MESSAGE.ENABLED) { + const currentLevel = CONFIG.BROADCAST_MESSAGE.LEVEL + const available = [ 'info', 'warning', 'error' ] + + if (available.includes(currentLevel) === false) { + return 'Broadcast message level should be ' + available.join(' or ') + ' instead of ' + currentLevel + } + } + + // Search index + if (CONFIG.SEARCH.SEARCH_INDEX.ENABLED === true) { + if (CONFIG.SEARCH.REMOTE_URI.USERS === false) { + return 'You cannot enable search index without enabling remote URI search for users.' + } + } + + // Live + if (CONFIG.LIVE.ENABLED === true) { + if (CONFIG.LIVE.ALLOW_REPLAY === true && CONFIG.TRANSCODING.ENABLED === false) { + return 'Live allow replay cannot be enabled if transcoding is not enabled.' + } } return null @@ -143,11 +177,21 @@ async function applicationExist () { return totalApplication !== 0 } +async function checkFFmpegVersion () { + const version = await getFFmpegVersion() + const { major, minor } = parseSemVersion(version) + + if (major < 4 || (major === 4 && minor < 1)) { + logger.warn('Your ffmpeg version (%s) is outdated. PeerTube supports ffmpeg >= 4.1. Please upgrade.', version) + } +} + // --------------------------------------------------------------------------- export { checkConfig, clientsExist, + checkFFmpegVersion, usersExist, applicationExist, checkActivityPubUrls