X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=server.ts;h=39caf89963b7b33c219a4d7eb9707a1765e32134;hb=f595d3947708114deeed4312cc5ffd285745b090;hp=f50e5bad4b77c9a6c655e129f9a206b3b35123d4;hpb=a96aed15188174c50885dda0df3164a67295e11f;p=github%2FChocobozzz%2FPeerTube.git diff --git a/server.ts b/server.ts index f50e5bad4..39caf8996 100644 --- a/server.ts +++ b/server.ts @@ -29,7 +29,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() @@ -46,8 +46,8 @@ db.init(false).then(() => onDatabaseInitDone()) // ----------- PeerTube modules ----------- import { migrate, installApplication } from './server/initializers' -import { JobScheduler, activateSchedulers, VideosPreviewCache } from './server/lib' -import { apiRouter, clientsRouter, staticRouter, servicesRouter } from './server/controllers' +import { activitypubHttpJobScheduler, transcodingJobScheduler, VideosPreviewCache } from './server/lib' +import { apiRouter, clientsRouter, staticRouter, servicesRouter, webfingerRouter, activityPubRouter } from './server/controllers' // ----------- Command line ----------- @@ -76,7 +76,10 @@ app.use(morgan('combined', { stream: { write: logger.info } })) // For body requests -app.use(bodyParser.json({ limit: '500kb' })) +app.use(bodyParser.json({ + type: [ 'application/json', 'application/*+json' ], + limit: '500kb' +})) app.use(bodyParser.urlencoded({ extended: false })) // ----------- Tracker ----------- @@ -115,6 +118,9 @@ app.use(apiRoute, apiRouter) // Services (oembed...) app.use('/services', servicesRouter) +app.use('/', webfingerRouter) +app.use('/', activityPubRouter) + // Client files app.use('/', clientsRouter) @@ -123,7 +129,11 @@ app.use('/', staticRouter) // Always serve index client page (the client is a single page application, let it handle routing) app.use('/*', function (req, res) { - res.sendFile(path.join(__dirname, '../client/dist/index.html')) + if (req.accepts(ACCEPT_HEADERS) === 'html') { + return res.sendFile(path.join(__dirname, '../client/dist/index.html')) + } + + return res.status(404).end() }) // ----------- Errors ----------- @@ -146,19 +156,13 @@ function onDatabaseInitDone () { const port = CONFIG.LISTEN.PORT // Run the migration scripts if needed migrate() - .then(() => { - return installApplication() - }) + .then(() => installApplication()) .then(() => { // ----------- Make the server listening ----------- - server.listen(port, function () { - // Activate the communication with friends - activateSchedulers() - - // Activate job scheduler - JobScheduler.Instance.activate() - + server.listen(port, () => { VideosPreviewCache.Instance.init(CONFIG.CACHE.PREVIEWS.SIZE) + activitypubHttpJobScheduler.activate() + transcodingJobScheduler.activate() logger.info('Server listening on port %d', port) logger.info('Web server: %s', CONFIG.WEBSERVER.URL)