gancio/server/initialize.server.js

54 lines
1.6 KiB
JavaScript
Raw Normal View History

module.exports = function () {
const config = require('../server/config')
config.load()
const log = require('../server/log')
const settingsController = require('./api/controller/settings')
const db = require('./api/models/index')
2021-12-06 20:28:37 +01:00
async function start (nuxt) {
if (config.status == 'READY') {
await db.initialize()
} else {
if (process.env.GANCIO_DB_DIALECT) {
const setupController = require('./api/controller/setup')
const dbConf = {
dialect: process.env.GANCIO_DB_DIALECT,
storage: process.env.GANCIO_DB_STORAGE,
host: process.env.GANCIO_DB_HOST,
database: process.env.GANCIO_DB_DATABASE,
username: process.env.GANCIO_DB_USERNAME,
password: process.env.GANCIO_DB_PASSWORD,
}
setupController._setupDb(dbConf)
.catch(e => { process.exit(1) })
}
await settingsController.load()
}
2021-10-20 14:10:33 +02:00
let TaskManager
if (config.status === 'READY' && process.env.NODE_ENV == 'production') {
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
}
return start(this.nuxt)
2021-10-20 14:10:33 +02:00
}