39 lines
1 KiB
JavaScript
39 lines
1 KiB
JavaScript
const fs = require('fs')
|
|
const cookieParser = require('cookie-parser')
|
|
const helmet = require('helmet')
|
|
const morgan = require('morgan')
|
|
const express = require('express')
|
|
const app = express()
|
|
const https = require('https')
|
|
const _ = require('lodash/fp')
|
|
const serveStatic = require('serve-static')
|
|
const path = require('path')
|
|
|
|
const KEY_PATH = process.env.KEY_PATH
|
|
const CERT_PATH = process.env.CERT_PATH
|
|
const LAMASSU_CA_PATH = process.env.LAMASSU_CA_PATH
|
|
|
|
app.use(morgan('dev'))
|
|
app.use(helmet({noCache: true}))
|
|
app.use(cookieParser())
|
|
app.use(express.json())
|
|
app.use(serveStatic(path.resolve(__dirname, '..', '..', 'public'), {
|
|
'index': ['support-index.html']
|
|
}))
|
|
|
|
const certOptions = {
|
|
key: fs.readFileSync(KEY_PATH),
|
|
cert: fs.readFileSync(CERT_PATH),
|
|
ca: [fs.readFileSync(LAMASSU_CA_PATH)],
|
|
requestCert: true,
|
|
rejectUnauthorized: true
|
|
}
|
|
|
|
function run (port) {
|
|
return new Promise((resolve, reject) => {
|
|
const webServer = https.createServer(certOptions, app)
|
|
webServer.listen(port, resolve)
|
|
})
|
|
}
|
|
|
|
module.exports = { run }
|