import { checkConfig, checkActivityPubUrls, checkFFmpegVersion } from './server/initializers/checker-after-init'
-checkConfig()
+try {
+ checkConfig()
+} catch (err) {
+ logger.error('Config error.', { err })
+ process.exit(-1)
+}
// Trust our proxy (IP forwarding...)
app.set('trust proxy', CONFIG.TRUST_PROXY)
app.use((_req, res, next) => {
+ // OpenTelemetry
res.locals.requestStart = Date.now()
+ if (CONFIG.SECURITY.POWERED_BY_HEADER.ENABLED === true) {
+ res.setHeader('x-powered-by', 'PeerTube')
+ }
+
return next()
})
wellKnownRouter,
lazyStaticRouter,
servicesRouter,
+ objectStorageProxyRouter,
pluginsRouter,
- webfingerRouter,
trackerRouter,
createWebsocketTrackerServer,
botsRouter,
import { RemoveDanglingResumableUploadsScheduler } from './server/lib/schedulers/remove-dangling-resumable-uploads-scheduler'
import { VideoViewsBufferScheduler } from './server/lib/schedulers/video-views-buffer-scheduler'
import { GeoIPUpdateScheduler } from './server/lib/schedulers/geo-ip-update-scheduler'
+import { RunnerJobWatchDogScheduler } from './server/lib/schedulers/runner-job-watch-dog-scheduler'
import { isHTTPSignatureDigestValid } from './server/helpers/peertube-crypto'
import { PeerTubeSocket } from './server/lib/peertube-socket'
import { updateStreamingPlaylistsInfohashesIfNeeded } from './server/lib/hls'
app.use('/', activityPubRouter)
app.use('/', feedsRouter)
-app.use('/', webfingerRouter)
app.use('/', trackerRouter)
app.use('/', botsRouter)
app.use('/', miscRouter)
app.use('/', downloadRouter)
app.use('/', lazyStaticRouter)
+app.use('/', objectStorageProxyRouter)
// Client files, last valid routes!
const cliOptions = cli.opts<{ client: boolean, plugins: boolean }>()
})
})
-const server = createWebsocketTrackerServer(app)
+const { server, trackerServer } = createWebsocketTrackerServer(app)
// ----------- Run -----------
VideoChannelSyncLatestScheduler.Instance.enable()
VideoViewsBufferScheduler.Instance.enable()
GeoIPUpdateScheduler.Instance.enable()
- OpenTelemetryMetrics.Instance.registerMetrics()
+ RunnerJobWatchDogScheduler.Instance.enable()
+
+ OpenTelemetryMetrics.Instance.registerMetrics({ trackerServer })
+
+ PluginManager.Instance.init(server)
+ // Before PeerTubeSocket init
+ PluginManager.Instance.registerWebSocketRouter()
PeerTubeSocket.Instance.init(server)
VideoViewsManager.Instance.init()