X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=server.ts;h=c19ec4f194b7e01add2d3a112880af44cedf1734;hb=e3a682a877a10833cb54ac3595e55110bda95647;hp=d0b351c62e0caa22f8ea5d908c5735fe3b572b57;hpb=94a5ff8a4a75d75bb9df542a39ce8769e7a7e6a4;p=github%2FChocobozzz%2FPeerTube.git diff --git a/server.ts b/server.ts index d0b351c62..c19ec4f19 100644 --- a/server.ts +++ b/server.ts @@ -53,9 +53,11 @@ migrate() // ----------- PeerTube modules ----------- import { installApplication } from './server/initializers' +import { Emailer } from './server/lib/emailer' import { JobQueue } from './server/lib/job-queue' import { VideosPreviewCache } from './server/lib/cache' import { apiRouter, clientsRouter, staticRouter, servicesRouter, webfingerRouter, activityPubRouter } from './server/controllers' +import { Redis } from './server/lib/redis' import { BadActorFollowScheduler } from './server/lib/schedulers/bad-actor-follow-scheduler' import { RemoveOldJobsScheduler } from './server/lib/schedulers/remove-old-jobs-scheduler' @@ -102,11 +104,11 @@ const trackerServer = new TrackerServer({ }) trackerServer.on('error', function (err) { - logger.error(err) + logger.error('Error in websocket tracker.', err) }) trackerServer.on('warning', function (err) { - logger.error(err) + logger.error('Warning in websocket tracker.', err) }) const server = http.createServer(app) @@ -156,8 +158,13 @@ app.use(function (req, res, next) { }) app.use(function (err, req, res, next) { - logger.error(err, err) - res.sendStatus(err.status || 500) + let error = 'Unknown error.' + if (err) { + error = err.stack || err.message || err + } + + logger.error('Error in controller.', { error }) + return res.status(err.status || 500).end() }) // ----------- Run ----------- @@ -169,10 +176,20 @@ function onDatabaseInitDone () { .then(() => { // ----------- Make the server listening ----------- server.listen(port, () => { + // Emailer initialization and then job queue initialization + Emailer.Instance.init() + Emailer.Instance.checkConnectionOrDie() + .then(() => JobQueue.Instance.init()) + + // Caches initializations VideosPreviewCache.Instance.init(CONFIG.CACHE.PREVIEWS.SIZE) + + // Enable Schedulers BadActorFollowScheduler.Instance.enable() RemoveOldJobsScheduler.Instance.enable() - JobQueue.Instance.init() + + // Redis initialization + Redis.Instance.init() logger.info('Server listening on port %d', port) logger.info('Web server: %s', CONFIG.WEBSERVER.URL)