|
|
@ -1,5 +1,18 @@ |
|
|
|
const path = require('path') |
|
|
|
const uuid = require('uuid/v4') |
|
|
|
const bodyParser = require('body-parser') |
|
|
|
const compression = require('compression') |
|
|
|
const express = require('express') |
|
|
|
const favicon = require('serve-favicon') |
|
|
|
const http = require('http') |
|
|
|
const https = require('https') |
|
|
|
const Promise = require('bluebird') |
|
|
|
const fs = require('fs-extra') |
|
|
|
const _ = require('lodash') |
|
|
|
const cfgHelper = require('./helpers/config') |
|
|
|
const crypto = Promise.promisifyAll(require('crypto')) |
|
|
|
const pem2jwk = require('pem-jwk').pem2jwk |
|
|
|
const semver = require('semver') |
|
|
|
|
|
|
|
/* global WIKI */ |
|
|
|
|
|
|
@ -11,23 +24,6 @@ module.exports = () => { |
|
|
|
|
|
|
|
WIKI.system = require('./core/system') |
|
|
|
|
|
|
|
// ----------------------------------------
|
|
|
|
// Load modules
|
|
|
|
// ----------------------------------------
|
|
|
|
|
|
|
|
const bodyParser = require('body-parser') |
|
|
|
const compression = require('compression') |
|
|
|
const express = require('express') |
|
|
|
const favicon = require('serve-favicon') |
|
|
|
const http = require('http') |
|
|
|
const Promise = require('bluebird') |
|
|
|
const fs = require('fs-extra') |
|
|
|
const _ = require('lodash') |
|
|
|
const cfgHelper = require('./helpers/config') |
|
|
|
const crypto = Promise.promisifyAll(require('crypto')) |
|
|
|
const pem2jwk = require('pem-jwk').pem2jwk |
|
|
|
const semver = require('semver') |
|
|
|
|
|
|
|
// ----------------------------------------
|
|
|
|
// Define Express App
|
|
|
|
// ----------------------------------------
|
|
|
@ -138,8 +134,8 @@ module.exports = () => { |
|
|
|
WIKI.telemetry.sendEvent('setup', 'install-start') |
|
|
|
|
|
|
|
// Basic checks
|
|
|
|
if (!semver.satisfies(process.version, '>=10.14')) { |
|
|
|
throw new Error('Node.js 10.14.x or later required!') |
|
|
|
if (!semver.satisfies(process.version, '>=10.12')) { |
|
|
|
throw new Error('Node.js 10.12.x or later required!') |
|
|
|
} |
|
|
|
|
|
|
|
// Upgrade from WIKI.js 1.x?
|
|
|
@ -356,7 +352,33 @@ module.exports = () => { |
|
|
|
WIKI.logger.info(`HTTP Server on port: [ ${WIKI.config.port} ]`) |
|
|
|
|
|
|
|
app.set('port', WIKI.config.port) |
|
|
|
WIKI.server = http.createServer(app) |
|
|
|
|
|
|
|
if (WIKI.config.ssl.enabled) { |
|
|
|
WIKI.logger.info(`HTTPS Server on port: [ ${WIKI.config.port} ]`) |
|
|
|
const tlsOpts = {} |
|
|
|
try { |
|
|
|
if (WIKI.config.ssl.format === 'pem') { |
|
|
|
tlsOpts.key = fs.readFileSync(WIKI.config.ssl.key) |
|
|
|
tlsOpts.cert = fs.readFileSync(WIKI.config.ssl.cert) |
|
|
|
} else { |
|
|
|
tlsOpts.pfx = fs.readFileSync(WIKI.config.ssl.pfx) |
|
|
|
} |
|
|
|
if (!_.isEmpty(WIKI.config.ssl.passphrase)) { |
|
|
|
tlsOpts.passphrase = WIKI.config.ssl.passphrase |
|
|
|
} |
|
|
|
if (!_.isEmpty(WIKI.config.ssl.dhparam)) { |
|
|
|
tlsOpts.dhparam = WIKI.config.ssl.dhparam |
|
|
|
} |
|
|
|
} catch (err) { |
|
|
|
WIKI.logger.error('Failed to setup HTTPS server parameters:') |
|
|
|
WIKI.logger.error(err) |
|
|
|
return process.exit(1) |
|
|
|
} |
|
|
|
WIKI.server = https.createServer(tlsOpts, app) |
|
|
|
} else { |
|
|
|
WIKI.logger.info(`HTTP Server on port: [ ${WIKI.config.port} ]`) |
|
|
|
WIKI.server = http.createServer(app) |
|
|
|
} |
|
|
|
WIKI.server.listen(WIKI.config.port, WIKI.config.bindIP) |
|
|
|
|
|
|
|
var openConnections = [] |
|
|
|