2021-11-09 12:49:20 +01:00
|
|
|
|
2021-12-06 12:11:04 +01:00
|
|
|
export default async function () {
|
2021-12-06 20:28:37 +01:00
|
|
|
async function start (nuxt) {
|
2021-10-20 14:10:33 +02:00
|
|
|
const log = require('../server/log')
|
|
|
|
const config = require('../server/config')
|
2021-11-09 12:49:20 +01:00
|
|
|
const settingsController = require('./api/controller/settings')
|
|
|
|
const dayjs = require('dayjs')
|
|
|
|
const timezone = require('dayjs/plugin/timezone')
|
|
|
|
dayjs.extend(timezone)
|
|
|
|
await settingsController.load()
|
|
|
|
dayjs.tz.setDefault(settingsController.settings.instance_timezone)
|
|
|
|
|
2021-10-20 14:10:33 +02:00
|
|
|
let TaskManager
|
2022-01-26 09:51:42 +01:00
|
|
|
if (config.status === 'READY') {
|
2021-10-20 14:10:33 +02:00
|
|
|
TaskManager = require('../server/taskManager').TaskManager
|
|
|
|
TaskManager.start()
|
|
|
|
}
|
2021-10-21 12:23:19 +02:00
|
|
|
log.info(`Listen on ${config.server.host}:${config.server.port}`)
|
2021-10-20 14:10:33 +02:00
|
|
|
|
|
|
|
// close connections/port/unix socket
|
|
|
|
async function shutdown () {
|
|
|
|
if (TaskManager) { TaskManager.stop() }
|
2021-10-29 15:24:20 +02:00
|
|
|
log.info('Closing DB')
|
|
|
|
const sequelize = require('../server/api/models')
|
|
|
|
await sequelize.close()
|
|
|
|
process.off('SIGTERM', shutdown)
|
|
|
|
process.off('SIGINT', shutdown)
|
2021-12-06 20:28:37 +01:00
|
|
|
nuxt.close()
|
2021-10-29 15:24:20 +02:00
|
|
|
process.exit()
|
2021-10-20 14:10:33 +02:00
|
|
|
}
|
|
|
|
process.on('SIGTERM', shutdown)
|
2021-10-29 15:24:20 +02:00
|
|
|
process.on('SIGINT', shutdown)
|
2021-12-06 20:28:37 +01:00
|
|
|
}
|
|
|
|
this.nuxt.hook('listen', start)
|
2021-10-20 14:10:33 +02:00
|
|
|
}
|