+import * as 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')
},
STORAGE: {
TMP_DIR: buildPath(config.get<string>('storage.tmp')),
- AVATARS_DIR: buildPath(config.get<string>('storage.avatars')),
+ ACTOR_IMAGES: buildPath(config.get<string>('storage.avatars')),
LOG_DIR: buildPath(config.get<string>('storage.logs')),
VIDEOS_DIR: buildPath(config.get<string>('storage.videos')),
STREAMING_PLAYLISTS_DIR: buildPath(config.get<string>('storage.streaming_playlists')),
REPORT_ONLY: config.get<boolean>('csp.report_only'),
REPORT_URI: config.get<string>('csp.report_uri')
},
+ SECURITY: {
+ FRAMEGUARD: {
+ ENABLED: config.get<boolean>('security.frameguard.enabled')
+ }
+ },
TRACKER: {
ENABLED: config.get<boolean>('tracker.enabled'),
PRIVATE: config.get<boolean>('tracker.private'),
CLEANUP_REMOTE_INTERACTIONS: config.get<boolean>('federation.videos.cleanup_remote_interactions')
}
},
+ PEERTUBE: {
+ CHECK_LATEST_VERSION: {
+ ENABLED: config.get<boolean>('peertube.check_latest_version.enabled'),
+ URL: config.get<string>('peertube.check_latest_version.url')
+ }
+ },
ADMIN: {
get EMAIL () { return config.get<string>('admin.email') }
},
get ENABLED () { return config.get<boolean>('signup.enabled') },
get LIMIT () { return config.get<number>('signup.limit') },
get REQUIRES_EMAIL_VERIFICATION () { return config.get<boolean>('signup.requires_email_verification') },
+ get MINIMUM_AGE () { return config.get<number>('signup.minimum_age') },
FILTERS: {
CIDR: {
get WHITELIST () { return config.get<string[]>('signup.filters.cidr.whitelist') },
export function reloadConfig () {
- function directory () {
+ function getConfigDirectory () {
if (process.env.NODE_CONFIG_DIR) {
return process.env.NODE_CONFIG_DIR
}
}
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()