if (CONFIG.CSP.ENABLED) {
app.use(baseCSP)
- app.use(helmet({
- frameguard: {
- action: 'deny' // we only allow it for /videos/embed, see server/controllers/client.ts
- },
- hsts: false
+}
+
+if (CONFIG.SECURITY.FRAMEGUARD.ENABLED) {
+ app.use(helmet.frameguard({
+ action: 'deny' // we only allow it for /videos/embed, see server/controllers/client.ts
}))
}
import { VideosRedundancyScheduler } from './server/lib/schedulers/videos-redundancy-scheduler'
import { RemoveOldHistoryScheduler } from './server/lib/schedulers/remove-old-history-scheduler'
import { AutoFollowIndexInstances } from './server/lib/schedulers/auto-follow-index-instances'
+import { RemoveDanglingResumableUploadsScheduler } from './server/lib/schedulers/remove-dangling-resumable-uploads-scheduler'
import { isHTTPSignatureDigestValid } from './server/helpers/peertube-crypto'
import { PeerTubeSocket } from './server/lib/peertube-socket'
import { updateStreamingPlaylistsInfohashesIfNeeded } from './server/lib/hls'
import { LiveManager } from './server/lib/live-manager'
import { HttpStatusCode } from './shared/core-utils/miscs/http-error-codes'
import { VideosTorrentCache } from '@server/lib/files-cache/videos-torrent-cache'
+import { ServerConfigManager } from '@server/lib/server-config-manager'
+import { apiResponseHelpers } from '@server/helpers/express-utils'
// ----------- Command line -----------
// W3C DNT Tracking Status
app.use(advertiseDoNotTrack)
+// Response helpers used in developement
+app.use(apiResponseHelpers)
+
// ----------- Views, routes and static files -----------
// API
const sql = err.parent ? err.parent.sql : undefined
logger.error('Error in controller.', { err: error, sql })
- return res.status(err.status || HttpStatusCode.INTERNAL_SERVER_ERROR_500).end()
+ return res.fail({
+ status: err.status || HttpStatusCode.INTERNAL_SERVER_ERROR_500,
+ message: err.message,
+ type: err.name
+ })
})
const server = createWebsocketTrackerServer(app)
await Promise.all([
Emailer.Instance.checkConnection(),
- JobQueue.Instance.init()
+ JobQueue.Instance.init(),
+ ServerConfigManager.Instance.init()
])
// Caches initializations
PluginsCheckScheduler.Instance.enable()
PeerTubeVersionCheckScheduler.Instance.enable()
AutoFollowIndexInstances.Instance.enable()
+ RemoveDanglingResumableUploadsScheduler.Instance.enable()
// Redis initialization
Redis.Instance.init()