X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=server%2Finitializers%2Fconfig.ts;h=be9fc61f083a43be735410f93eab0a01c33ef992;hb=ab632f438efed53e3ed4ba08dd73cc666366af2b;hp=48e7f7397be50e4d21f7e73a939b96e5b26bde9c;hpb=a786d8a08bf99f339bf16808f46e160404497ae2;p=github%2FChocobozzz%2FPeerTube.git diff --git a/server/initializers/config.ts b/server/initializers/config.ts index 48e7f7397..be9fc61f0 100644 --- a/server/initializers/config.ts +++ b/server/initializers/config.ts @@ -1,12 +1,13 @@ +import bytes from 'bytes' import { IConfig } from 'config' +import decache from 'decache' import { dirname, join } from 'path' +import { VideoRedundancyConfigFilter } from '@shared/models/redundancy/video-redundancy-config-filter.type' +import { BroadcastMessageLevel } from '@shared/models/server' import { VideosRedundancyStrategy } from '../../shared/models' +import { NSFWPolicyType } from '../../shared/models/videos/nsfw-policy.type' // Do not use barrels, remain constants as independent as possible 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') @@ -59,7 +60,7 @@ const CONFIG = { }, STORAGE: { TMP_DIR: buildPath(config.get('storage.tmp')), - AVATARS_DIR: buildPath(config.get('storage.avatars')), + ACTOR_IMAGES: buildPath(config.get('storage.avatars')), LOG_DIR: buildPath(config.get('storage.logs')), VIDEOS_DIR: buildPath(config.get('storage.videos')), STREAMING_PLAYLISTS_DIR: buildPath(config.get('storage.streaming_playlists')), @@ -72,6 +73,26 @@ const CONFIG = { PLUGINS_DIR: buildPath(config.get('storage.plugins')), CLIENT_OVERRIDES_DIR: buildPath(config.get('storage.client_overrides')) }, + OBJECT_STORAGE: { + ENABLED: config.get('object_storage.enabled'), + MAX_UPLOAD_PART: bytes.parse(config.get('object_storage.max_upload_part')), + ENDPOINT: config.get('object_storage.endpoint'), + REGION: config.get('object_storage.region'), + CREDENTIALS: { + ACCESS_KEY_ID: config.get('object_storage.credentials.access_key_id'), + SECRET_ACCESS_KEY: config.get('object_storage.credentials.secret_access_key') + }, + VIDEOS: { + BUCKET_NAME: config.get('object_storage.videos.bucket_name'), + PREFIX: config.get('object_storage.videos.prefix'), + BASE_URL: config.get('object_storage.videos.base_url') + }, + STREAMING_PLAYLISTS: { + BUCKET_NAME: config.get('object_storage.streaming_playlists.bucket_name'), + PREFIX: config.get('object_storage.streaming_playlists.prefix'), + BASE_URL: config.get('object_storage.streaming_playlists.base_url') + } + }, WEBSERVER: { SCHEME: config.get('webserver.https') === true ? 'https' : 'http', WS: config.get('webserver.https') === true ? 'wss' : 'ws', @@ -133,6 +154,11 @@ const CONFIG = { REPORT_ONLY: config.get('csp.report_only'), REPORT_URI: config.get('csp.report_uri') }, + SECURITY: { + FRAMEGUARD: { + ENABLED: config.get('security.frameguard.enabled') + } + }, TRACKER: { ENABLED: config.get('tracker.enabled'), PRIVATE: config.get('tracker.private'), @@ -179,6 +205,7 @@ const CONFIG = { get ENABLED () { return config.get('signup.enabled') }, get LIMIT () { return config.get('signup.limit') }, get REQUIRES_EMAIL_VERIFICATION () { return config.get('signup.requires_email_verification') }, + get MINIMUM_AGE () { return config.get('signup.minimum_age') }, FILTERS: { CIDR: { get WHITELIST () { return config.get('signup.filters.cidr.whitelist') }, @@ -410,7 +437,7 @@ function buildVideosRedundancy (objs: any[]): VideosRedundancyStrategy[] { export function reloadConfig () { - function directory () { + function getConfigDirectory () { if (process.env.NODE_CONFIG_DIR) { return process.env.NODE_CONFIG_DIR } @@ -419,15 +446,17 @@ export function reloadConfig () { } function purge () { + const directory = getConfigDirectory() + for (const fileName in require.cache) { - if (fileName.includes(directory()) === false) { + if (fileName.includes(directory) === false) { continue } delete require.cache[fileName] } - delete require.cache[require.resolve('config')] + decache('config') } purge()