import { migrate } from './server/initializers/migrator'
migrate()
.then(() => initDatabaseModels(false))
- .then(() => onDatabaseInitDone())
+ .then(() => startApplication())
+ .catch(err => {
+ logger.error('Cannot start application.', { err })
+ process.exit(-1)
+ })
// ----------- PeerTube modules -----------
import { installApplication } from './server/initializers'
import { Emailer } from './server/lib/emailer'
import { JobQueue } from './server/lib/job-queue'
import { VideosPreviewCache } from './server/lib/cache'
-import { apiRouter, clientsRouter, staticRouter, servicesRouter, webfingerRouter, activityPubRouter } from './server/controllers'
+import {
+ activityPubRouter,
+ apiRouter,
+ clientsRouter,
+ feedsRouter,
+ staticRouter,
+ servicesRouter,
+ webfingerRouter
+} from './server/controllers'
import { Redis } from './server/lib/redis'
import { BadActorFollowScheduler } from './server/lib/schedulers/bad-actor-follow-scheduler'
import { RemoveOldJobsScheduler } from './server/lib/schedulers/remove-old-jobs-scheduler'
// Services (oembed...)
app.use('/services', servicesRouter)
-app.use('/', webfingerRouter)
app.use('/', activityPubRouter)
+app.use('/', feedsRouter)
+app.use('/', webfingerRouter)
// Client files
app.use('/', clientsRouter)
// ----------- Run -----------
-function onDatabaseInitDone () {
+async function startApplication () {
const port = CONFIG.LISTEN.PORT
+ const hostname = CONFIG.LISTEN.HOSTNAME
+
+ await installApplication()
- installApplication()
- .then(() => {
- // ----------- Make the server listening -----------
- server.listen(port, () => {
- // Emailer initialization and then job queue initialization
- Emailer.Instance.init()
- Emailer.Instance.checkConnectionOrDie()
- .then(() => JobQueue.Instance.init())
-
- // Caches initializations
- VideosPreviewCache.Instance.init(CONFIG.CACHE.PREVIEWS.SIZE)
-
- // Enable Schedulers
- BadActorFollowScheduler.Instance.enable()
- RemoveOldJobsScheduler.Instance.enable()
-
- // Redis initialization
- Redis.Instance.init()
-
- logger.info('Server listening on port %d', port)
- logger.info('Web server: %s', CONFIG.WEBSERVER.URL)
- })
- })
+ // Email initialization
+ Emailer.Instance.init()
+ await Emailer.Instance.checkConnectionOrDie()
+
+ await JobQueue.Instance.init()
+
+ // Caches initializations
+ VideosPreviewCache.Instance.init(CONFIG.CACHE.PREVIEWS.SIZE)
+
+ // Enable Schedulers
+ BadActorFollowScheduler.Instance.enable()
+ RemoveOldJobsScheduler.Instance.enable()
+
+ // Redis initialization
+ Redis.Instance.init()
+
+ // Make server listening
+ server.listen(port, hostname, () => {
+ logger.info('Server listening on %s:%d', hostname, port)
+ logger.info('Web server: %s', CONFIG.WEBSERVER.URL)
+ })
}