X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=server.ts;h=abfeeed2e02ad5a2f17b2f56a347bdebbdc88570;hb=d1f21ebba640ccec21ca96496d0319f7511ac0b4;hp=f4f0c4d68ae2292335981de556c5e6517a2d4520;hpb=8f0bc73d7d5f4c88cbc5588a0ece12b3855c8f98;p=github%2FChocobozzz%2FPeerTube.git diff --git a/server.ts b/server.ts index f4f0c4d68..abfeeed2e 100644 --- a/server.ts +++ b/server.ts @@ -1,4 +1,6 @@ // FIXME: https://github.com/nodejs/node/pull/16853 +import { PluginManager } from './server/lib/plugins/plugin-manager' + require('tls').DEFAULT_ECDH_CURVE = 'auto' import { isTestInstance } from './server/helpers/core-utils' @@ -27,9 +29,9 @@ const app = express() import { checkMissedConfig, checkFFmpeg } from './server/initializers/checker-before-init' // 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' -import { API_VERSION, FILES_CACHE, WEBSERVER, loadLanguages } from './server/initializers/constants' import { CONFIG } from './server/initializers/config' +import { API_VERSION, FILES_CACHE, WEBSERVER, loadLanguages } from './server/initializers/constants' +import { logger } from './server/helpers/logger' const missed = checkMissedConfig() if (missed.length !== 0) { @@ -94,6 +96,7 @@ import { feedsRouter, staticRouter, servicesRouter, + pluginsRouter, webfingerRouter, trackerRouter, createWebsocketTrackerServer, botsRouter @@ -101,6 +104,7 @@ import { import { advertiseDoNotTrack } from './server/middlewares/dnt' import { Redis } from './server/lib/redis' import { ActorFollowScheduler } from './server/lib/schedulers/actor-follow-scheduler' +import { RemoveOldViewsScheduler } from './server/lib/schedulers/remove-old-views-scheduler' import { RemoveOldJobsScheduler } from './server/lib/schedulers/remove-old-jobs-scheduler' import { UpdateVideosScheduler } from './server/lib/schedulers/update-videos-scheduler' import { YoutubeDlUpdateScheduler } from './server/lib/schedulers/youtube-dl-update-scheduler' @@ -109,11 +113,14 @@ import { RemoveOldHistoryScheduler } from './server/lib/schedulers/remove-old-hi import { isHTTPSignatureDigestValid } from './server/helpers/peertube-crypto' import { PeerTubeSocket } from './server/lib/peertube-socket' import { updateStreamingPlaylistsInfohashesIfNeeded } from './server/lib/hls' +import { PluginsCheckScheduler } from './server/lib/schedulers/plugins-check-scheduler' +import { Hooks } from './server/lib/plugins/hooks' // ----------- Command line ----------- cli .option('--no-client', 'Start PeerTube without client interface') + .option('--no-plugins', 'Start PeerTube without plugins/themes enabled') .parse(process.argv) // ----------- App ----------- @@ -172,6 +179,9 @@ app.use(apiRoute, apiRouter) // Services (oembed...) app.use('/services', servicesRouter) +// Plugins & themes +app.use('/', pluginsRouter) + app.use('/', activityPubRouter) app.use('/', feedsRouter) app.use('/', webfingerRouter) @@ -242,6 +252,8 @@ async function startApplication () { YoutubeDlUpdateScheduler.Instance.enable() VideosRedundancyScheduler.Instance.enable() RemoveOldHistoryScheduler.Instance.enable() + RemoveOldViewsScheduler.Instance.enable() + PluginsCheckScheduler.Instance.enable() // Redis initialization Redis.Instance.init() @@ -251,10 +263,14 @@ async function startApplication () { updateStreamingPlaylistsInfohashesIfNeeded() .catch(err => logger.error('Cannot update streaming playlist infohashes.', { err })) + if (cli.plugins) await PluginManager.Instance.registerPluginsAndThemes() + // Make server listening server.listen(port, hostname, () => { logger.info('Server listening on %s:%d', hostname, port) logger.info('Web server: %s', WEBSERVER.URL) + + Hooks.runAction('action:application.listening') }) process.on('exit', () => {