lamassu-server/lib/admin/admin-support.js
2022-04-19 22:47:36 +01:00

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 }