X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=server.ts;h=abfeeed2e02ad5a2f17b2f56a347bdebbdc88570;hb=2b65c4e53511ccb85b17479cb1c62717afb8511c;hp=9f0b123e07619a7f577dd085781fb3ef9c4f6046;hpb=c1340a6ac35f924161e6ec2a1d728e20c89e55c8;p=github%2FChocobozzz%2FPeerTube.git diff --git a/server.ts b/server.ts index 9f0b123e0..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' @@ -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', () => {