-
-
Notifications
You must be signed in to change notification settings - Fork 42
/
Copy pathserver.js
52 lines (48 loc) · 1.41 KB
/
server.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
require('dotenv').config()
const requireEnv = require('require-environment-variables')
requireEnv(
['ENCRYPTION_KEY',
'SESSION_KEY',
'DB_HOST',
'DB_PORT',
'DB_USER',
'DB_NAME',
'CONTACT_EMAIL',
'NOTIFICATION_VAPID_PUBLIC_KEY',
'NOTIFICATION_VAPID_PRIVATE_KEY'
])
const logger = require('pino')(
{
name: 'banmanager-webui',
level: process.env.LOG_LEVEL || 'debug',
redact: {
paths: ['req.headers.cookie', 'res.headers["set-cookie"]'],
censor: '*******'
}
})
const createApp = require('./server/app')
const { setupPool, setupServersPool } = require('./server/connections')
const port = process.env.PORT || 3000
const dbConfig = {
host: process.env.DB_HOST,
port: process.env.DB_PORT,
user: process.env.DB_USER,
password: process.env.DB_PASSWORD,
database: process.env.DB_NAME,
multipleStatements: false
}
;(async () => {
try {
const dbPool = await setupPool(dbConfig, logger)
const serversPool = await setupServersPool({ dbPool, logger })
const app = await createApp({ dbPool, logger, serversPool, disableUI: process.env.DISABLE_UI === 'true' })
if (process.env.HOSTNAME) {
app.listen(port, process.env.HOSTNAME, () => logger.info(`Listening on ${process.env.HOSTNAME}:${port}`))
} else {
app.listen(port, () => logger.info(`Listening on ${port}`))
}
} catch (error) {
logger.error(error)
process.exit(1)
}
})()