X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=server.ts;h=abfeeed2e02ad5a2f17b2f56a347bdebbdc88570;hb=a1758df8a3c3f866460edd8f9bbc94e8dd41fd80;hp=aa4382ee74f68329447fbb81d855b5cc7acbef6e;hpb=e8bafea35bc930cb8ac5b2d521a188642a1adffe;p=github%2FChocobozzz%2FPeerTube.git diff --git a/server.ts b/server.ts index aa4382ee7..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 @@ -110,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 ----------- @@ -173,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) @@ -244,6 +253,7 @@ async function startApplication () { VideosRedundancyScheduler.Instance.enable() RemoveOldHistoryScheduler.Instance.enable() RemoveOldViewsScheduler.Instance.enable() + PluginsCheckScheduler.Instance.enable() // Redis initialization Redis.Instance.init() @@ -253,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', () => {