X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=server%2Finitializers%2Fconfig.ts;h=9e892735009f0456b13dab2010d4501dcba0b08f;hb=fb7194043d0486ce0a6a40b2ffbdf32878c33a6f;hp=75372fa4eaa7f4208957fcbec510b443ad4cd708;hpb=a15871560f80e07386c1dabb8370cd2664ecfd1f;p=github%2FChocobozzz%2FPeerTube.git diff --git a/server/initializers/config.ts b/server/initializers/config.ts index 75372fa4e..9e8927350 100644 --- a/server/initializers/config.ts +++ b/server/initializers/config.ts @@ -5,6 +5,8 @@ import { VideosRedundancyStrategy } from '../../shared/models' import { buildPath, parseBytes, parseDurationToMs, root } from '../helpers/core-utils' import { NSFWPolicyType } from '../../shared/models/videos/nsfw-policy.type' import * as bytes from 'bytes' +import { VideoRedundancyConfigFilter } from '@shared/models/redundancy/video-redundancy-config-filter.type' +import { BroadcastMessageLevel } from '@shared/models/server' // Use a variable to reload the configuration if we need let config: IConfig = require('config') @@ -18,9 +20,10 @@ const CONFIG = { HOSTNAME: config.get('listen.hostname') }, DATABASE: { - DBNAME: 'peertube' + config.get('database.suffix'), + DBNAME: config.has('database.name') ? config.get('database.name') : 'peertube' + config.get('database.suffix'), HOSTNAME: config.get('database.hostname'), PORT: config.get('database.port'), + SSL: config.get('database.ssl'), USERNAME: config.get('database.username'), PASSWORD: config.get('database.password'), POOL: { @@ -35,6 +38,8 @@ const CONFIG = { DB: config.has('redis.db') ? config.get('redis.db') : null }, SMTP: { + TRANSPORT: config.has('smtp.transport') ? config.get('smtp.transport') : 'smtp', + SENDMAIL: config.has('smtp.sendmail') ? config.get('smtp.sendmail') : null, HOSTNAME: config.get('smtp.hostname'), PORT: config.get('smtp.port'), USERNAME: config.get('smtp.username'), @@ -64,7 +69,8 @@ const CONFIG = { CAPTIONS_DIR: buildPath(config.get('storage.captions')), TORRENTS_DIR: buildPath(config.get('storage.torrents')), CACHE_DIR: buildPath(config.get('storage.cache')), - PLUGINS_DIR: buildPath(config.get('storage.plugins')) + PLUGINS_DIR: buildPath(config.get('storage.plugins')), + CLIENT_OVERRIDES_DIR: buildPath(config.get('storage.client_overrides')) }, WEBSERVER: { SCHEME: config.get('webserver.https') === true ? 'https' : 'http', @@ -100,12 +106,6 @@ const CONFIG = { }, ANONYMIZE_IP: config.get('log.anonymizeIP') }, - SEARCH: { - REMOTE_URI: { - USERS: config.get('search.remote_uri.users'), - ANONYMOUS: config.get('search.remote_uri.anonymous') - } - }, TRENDING: { VIDEOS: { INTERVAL_DAYS: config.get('trending.videos.interval_days') @@ -117,10 +117,15 @@ const CONFIG = { STRATEGIES: buildVideosRedundancy(config.get('redundancy.videos.strategies')) } }, + REMOTE_REDUNDANCY: { + VIDEOS: { + ACCEPT_FROM: config.get('remote_redundancy.videos.accept_from') + } + }, CSP: { ENABLED: config.get('csp.enabled'), REPORT_ONLY: config.get('csp.report_only'), - REPORT_URI: config.get('csp.report_uri') + REPORT_URI: config.get('csp.report_uri') }, TRACKER: { ENABLED: config.get('tracker.enabled'), @@ -146,6 +151,11 @@ const CONFIG = { URL: config.get('plugins.index.url') } }, + FEDERATION: { + VIDEOS: { + FEDERATE_UNLISTED: config.get('federation.videos.federate_unlisted') + } + }, ADMIN: { get EMAIL () { return config.get('admin.email') } }, @@ -188,6 +198,30 @@ const CONFIG = { get ENABLED () { return config.get('transcoding.webtorrent.enabled') } } }, + LIVE: { + get ENABLED () { return config.get('live.enabled') }, + + get MAX_DURATION () { return parseDurationToMs(config.get('live.max_duration')) }, + get ALLOW_REPLAY () { return config.get('live.allow_replay') }, + + RTMP: { + get PORT () { return config.get('live.rtmp.port') } + }, + + TRANSCODING: { + get ENABLED () { return config.get('live.transcoding.enabled') }, + get THREADS () { return config.get('live.transcoding.threads') }, + + RESOLUTIONS: { + get '240p' () { return config.get('live.transcoding.resolutions.240p') }, + get '360p' () { return config.get('live.transcoding.resolutions.360p') }, + get '480p' () { return config.get('live.transcoding.resolutions.480p') }, + get '720p' () { return config.get('live.transcoding.resolutions.720p') }, + get '1080p' () { return config.get('live.transcoding.resolutions.1080p') }, + get '2160p' () { return config.get('live.transcoding.resolutions.2160p') } + } + } + }, IMPORT: { VIDEOS: { HTTP: { @@ -277,6 +311,24 @@ const CONFIG = { }, THEME: { get DEFAULT () { return config.get('theme.default') } + }, + BROADCAST_MESSAGE: { + get ENABLED () { return config.get('broadcast_message.enabled') }, + get MESSAGE () { return config.get('broadcast_message.message') }, + get LEVEL () { return config.get('broadcast_message.level') }, + get DISMISSABLE () { return config.get('broadcast_message.dismissable') } + }, + SEARCH: { + REMOTE_URI: { + USERS: config.get('search.remote_uri.users'), + ANONYMOUS: config.get('search.remote_uri.anonymous') + }, + SEARCH_INDEX: { + get ENABLED () { return config.get('search.search_index.enabled') }, + get URL () { return config.get('search.search_index.url') }, + get DISABLE_LOCAL_SEARCH () { return config.get('search.search_index.disable_local_search') }, + get IS_DEFAULT_SEARCH () { return config.get('search.search_index.is_default_search') } + } } } @@ -284,11 +336,16 @@ function registerConfigChangedHandler (fun: Function) { configChangedHandlers.push(fun) } +function isEmailEnabled () { + return !!CONFIG.SMTP.HOSTNAME && !!CONFIG.SMTP.PORT +} + // --------------------------------------------------------------------------- export { CONFIG, - registerConfigChangedHandler + registerConfigChangedHandler, + isEmailEnabled } // --------------------------------------------------------------------------- @@ -330,7 +387,7 @@ export function reloadConfig () { function purge () { for (const fileName in require.cache) { - if (fileName.indexOf(directory()) === -1) { + if (fileName.includes(directory()) === false) { continue }