X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=server.ts;h=a138b63592a8b772516e92226570a1525aed71da;hb=23e27dd53599be65b2dc2968448ce155a00a96c9;hp=a723dd32b6443ee22188ff96faa15bc90f50c530;hpb=98ec8b8e73a918d5680e6f13aaef56ca8756c2a8;p=github%2FChocobozzz%2FPeerTube.git diff --git a/server.ts b/server.ts index a723dd32b..a138b6359 100644 --- a/server.ts +++ b/server.ts @@ -1,3 +1,6 @@ +// FIXME: https://github.com/nodejs/node/pull/16853 +require('tls').DEFAULT_ECDH_CURVE = 'auto' + import { isTestInstance } from './server/helpers/core-utils' if (isTestInstance()) { @@ -29,7 +32,7 @@ if (missed.length !== 0) { throw new Error('Your configuration files miss keys: ' + missed) } -import { API_VERSION, CONFIG, STATIC_PATHS } from './server/initializers/constants' +import { ACCEPT_HEADERS, API_VERSION, CONFIG, STATIC_PATHS } from './server/initializers/constants' checkFFmpeg(CONFIG) const errorMessage = checkConfig() @@ -40,14 +43,20 @@ if (errorMessage !== null) { // ----------- Database ----------- // Do not use barrels because we don't want to load all modules here (we need to initialize database first) import { logger } from './server/helpers/logger' + // Initialize database and models -import { database as db } from './server/initializers/database' -db.init(false).then(() => onDatabaseInitDone()) +import { initDatabaseModels } from './server/initializers/database' +import { migrate } from './server/initializers/migrator' +migrate() + .then(() => initDatabaseModels(false)) + .then(() => onDatabaseInitDone()) // ----------- PeerTube modules ----------- -import { migrate, installApplication } from './server/initializers' -import { activitypubHttpJobScheduler, transcodingJobScheduler, VideosPreviewCache } from './server/lib' +import { installApplication } from './server/initializers' +import { activitypubHttpJobScheduler, transcodingJobScheduler } from './server/lib/jobs' +import { VideosPreviewCache } from './server/lib/cache' import { apiRouter, clientsRouter, staticRouter, servicesRouter, webfingerRouter, activityPubRouter } from './server/controllers' +import { BadActorFollowScheduler } from './server/lib/schedulers/bad-actor-follow-scheduler' // ----------- Command line ----------- @@ -73,7 +82,7 @@ if (isTestInstance()) { // For the logger app.use(morgan('combined', { - stream: { write: logger.info } + stream: { write: logger.info.bind(logger) } })) // For body requests app.use(bodyParser.json({ @@ -129,7 +138,7 @@ app.use('/', staticRouter) // Always serve index client page (the client is a single page application, let it handle routing) app.use('/*', function (req, res) { - if (req.accepts('html')) { + if (req.accepts(ACCEPT_HEADERS) === 'html') { return res.sendFile(path.join(__dirname, '../client/dist/index.html')) } @@ -146,7 +155,7 @@ app.use(function (req, res, next) { }) app.use(function (err, req, res, next) { - logger.error(err) + logger.error(err, err) res.sendStatus(err.status || 500) }) @@ -154,13 +163,14 @@ app.use(function (err, req, res, next) { function onDatabaseInitDone () { const port = CONFIG.LISTEN.PORT - // Run the migration scripts if needed - migrate() - .then(() => installApplication()) + + installApplication() .then(() => { // ----------- Make the server listening ----------- server.listen(port, () => { VideosPreviewCache.Instance.init(CONFIG.CACHE.PREVIEWS.SIZE) + BadActorFollowScheduler.Instance.enable() + activitypubHttpJobScheduler.activate() transcodingJobScheduler.activate()