Add support for running in ssl mode
Also added helpful argument to print current config and exit
This commit is contained in:
parent
f8b0dbc943
commit
33af1798b3
6 changed files with 77 additions and 8 deletions
10
bin.mjs
10
bin.mjs
|
@ -12,6 +12,11 @@ if (!config.get('file') && !config.get(env + ':file') &&
|
|||
displayHelp = true;
|
||||
}
|
||||
|
||||
if (config.get('config')) {
|
||||
console.log(config.get())
|
||||
process.exit(0)
|
||||
}
|
||||
|
||||
if (displayHelp) {
|
||||
console.log(`Run static server for static files, simple servers or pure MVVM projects.
|
||||
Specifying either file or folder serving is required.
|
||||
|
@ -37,6 +42,11 @@ Options:
|
|||
--ip IP server runs on [default: 0.0.0.0]
|
||||
--rooturlpath Root URL path server is deployed on; will be removed from
|
||||
URL when resolving to files [default: /]
|
||||
--ssl Specify whether to serve in ssl mode. Uses the path of
|
||||
--sslkey and --sslcert.
|
||||
--sslkey The path to the ssl key for ssl mode [default: key.pem]
|
||||
--sslcert The path to the ssl certificate for ssl mode [default:
|
||||
cert.pem]
|
||||
|
||||
Examples:
|
||||
spserver -p 2000 -f base.html -s ./dist
|
||||
|
|
19
cert.pem
Normal file
19
cert.pem
Normal file
|
@ -0,0 +1,19 @@
|
|||
-----BEGIN CERTIFICATE-----
|
||||
MIIDFzCCAf8CFAVgLggEDpAeBShzYOqTu8/OA+LHMA0GCSqGSIb3DQEBCwUAMEgx
|
||||
CzAJBgNVBAYTAlVTMRMwEQYDVQQIDApTb21lLVN0YXRlMREwDwYDVQQKDAhzcHNl
|
||||
cnZlcjERMA8GA1UEAwwIc3BzZXJ2ZXIwHhcNMjExMDE0MDk0MDA2WhcNNDkwMjI4
|
||||
MDk0MDA2WjBIMQswCQYDVQQGEwJVUzETMBEGA1UECAwKU29tZS1TdGF0ZTERMA8G
|
||||
A1UECgwIc3BzZXJ2ZXIxETAPBgNVBAMMCHNwc2VydmVyMIIBIjANBgkqhkiG9w0B
|
||||
AQEFAAOCAQ8AMIIBCgKCAQEAq7r5IgsLAEBg4cxJSHkKk+FXTyXHWwt3XBKheGOo
|
||||
+lcIczjHZs3LCLl+khh1yn6m0PkP0SOYU86xhUQ15k7W6lJEoIiG+Mea8xAyLbrr
|
||||
iyd86z01JLm97OW6oEzCFqQENYAyC0ipzB8UWGMSISA9ilskCe/GucSe/T6VLxtP
|
||||
A2y+Yv/WRyS3UtV4vcuYrdI9tZT31fBVKmBEG6YDCFuGs99f14S/iJGX1jelMvJ9
|
||||
/hqdR2VuLbEgJPPCeCoKnmeAB+15vwuYoAOYWxz2KzPb/+bAQ6v+rm1oc6VPTWiL
|
||||
hiOA8LcCg6GIWxWAZ/mnusOl/8elKNOz/nDj+dkolTCFlQIDAQABMA0GCSqGSIb3
|
||||
DQEBCwUAA4IBAQAxujrHMjXloHtv5kRpX/k/8a/2JkvScaw7s9qNh0KBIUaAQuPD
|
||||
y0tqnoPOwRqFI6vS1VLU32gqxHDJecpk+amgO7/++TC5zN6b1HDAVl6cA1Gn7ERR
|
||||
AvkIoiRuvQTPG80w2jA5Pnv/Uj1ERqjqwtZ7J+6EnWTinDByvbgzUdnGTdICFSZI
|
||||
gA1/1mka/vErcNoRAYOR9OrotQ0LFs6pyQ7oSB1Rt8WcZlibYRY7gLTslLmI+huR
|
||||
BddQD7lVE7F8XzY08joLNBP2++haUorB1zJAKlmCib5d0pmPHL1mnvqNxhZ8O0cy
|
||||
WaJ5UxNkzqzXdzu5r/fwCj2T9qLq0Ng1Jho4
|
||||
-----END CERTIFICATE-----
|
27
key.pem
Normal file
27
key.pem
Normal file
|
@ -0,0 +1,27 @@
|
|||
-----BEGIN RSA PRIVATE KEY-----
|
||||
MIIEpAIBAAKCAQEAq7r5IgsLAEBg4cxJSHkKk+FXTyXHWwt3XBKheGOo+lcIczjH
|
||||
Zs3LCLl+khh1yn6m0PkP0SOYU86xhUQ15k7W6lJEoIiG+Mea8xAyLbrriyd86z01
|
||||
JLm97OW6oEzCFqQENYAyC0ipzB8UWGMSISA9ilskCe/GucSe/T6VLxtPA2y+Yv/W
|
||||
RyS3UtV4vcuYrdI9tZT31fBVKmBEG6YDCFuGs99f14S/iJGX1jelMvJ9/hqdR2Vu
|
||||
LbEgJPPCeCoKnmeAB+15vwuYoAOYWxz2KzPb/+bAQ6v+rm1oc6VPTWiLhiOA8LcC
|
||||
g6GIWxWAZ/mnusOl/8elKNOz/nDj+dkolTCFlQIDAQABAoIBAFDZ44dymYhRxwsn
|
||||
yezUB/XdpuR9jeFAgb6YiusKSLksFq9gsQimpQuDgaK432QpwtIqIJc/Ye07J/rt
|
||||
RU8cGTUS7HqELL+eAkajfmxnT5QhUD/Uflu/EzsgYYAtA0fzioPByk3jtQWEMGj4
|
||||
o8Vyz2Z/SHVhLTey6YOjXktiWQ3r9ABD6IiJYP1txz+XwmAuS/t3+HpBjT5MxZC6
|
||||
dImSBEmqGI5p40ZXW0j5ybvbQqDQ/1f1HGvIcH5gKE2EHYaJ1HvQYIgw+DGNMEmX
|
||||
KYVp0SUlY6rMB1fE/BYmAwwV9pcYzsDwArLA9Ilb26CpFhqZrgxOfvakgbQiM5KI
|
||||
YGlXj9UCgYEA3B/4ZTHcIHOjPTvauUBUah2JTxO6+SWq6UjtvU0vpJsdErI2pCBN
|
||||
Ymg/TEDPp6mf1doxnYG43HF0s1Y8Cc9RzWPu9KC2Z/q4jqoxAb2TerAMmyiwaXYD
|
||||
Zt1rY37AvQVWyz0ka2xguSSr/hZwhIW3vnPVkpiBeIs6NVbtDiH7hiMCgYEAx7fk
|
||||
KkQBBCKNWfQ68o+PqdiUOeb4vQSzMt6Zy7eVI3Qt1dUctcbpc8teDYv8K3ask1S0
|
||||
za+OIOn1u2DZhrCsfChyV2ojG15AiyyGV5IyQEhKC+GhBXhuFuZ/Z+LbuQ4iMZWM
|
||||
Vl5vVfv9l3zhhIx48eSZ+V1w3qTrw4v3Gv3dVOcCgYEAizcM+bMW7M81pjx8kDzH
|
||||
JnWXqZNo5LmV5gRhlx+ByjDvqitbs2Faj6ouniM/MWJt2+orBtpL998pV2JqhinA
|
||||
Ko3RSpV5xzkiD9hDNj6XTziYQGjzaT9h12ShzkMT0nfV9KOurOHWKkGvJPs8HhQT
|
||||
qTfJEvWwrHQhVCqtsgp78NECgYA6WtvbEaWuXJ4qk3cJ2rKicPrWdEtnh1EI4wvS
|
||||
/2AfTNn7qdpKrsUVpW1kzesvk+xW3CA8HTiNG29GgcTtWv/7AyJtskBxxbdcMvVJ
|
||||
7xipubWRBSs0Wvznyg+d/iYvSxbooAayUcN8PzXYpo+KWDUakK4As7HADDYrG+Fm
|
||||
zJh4LwKBgQCEZVroxl14cVBEAtY7rWP1OaLvvDXJNhWMtdX1BawHXAFOigQJB2N4
|
||||
0HA6dOJ0SBmPF8WlJUYM2aRy050T+Qiu9fIl1vlNKW0zOBj+lPQo7T4JTu/WPpbr
|
||||
ZKVf12+b/RbV1ch3mb4KxkX80ASIfVaMRGQHAAgDpCM8fMVmm4NjdQ==
|
||||
-----END RSA PRIVATE KEY-----
|
|
@ -40,6 +40,8 @@ nconf.defaults({
|
|||
level: 'info',
|
||||
},
|
||||
},
|
||||
sslkey: 'key.pem',
|
||||
sslcert: 'cert.pem',
|
||||
development: {
|
||||
port: 3001,
|
||||
bunyan: {
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
import fs from 'fs'
|
||||
import http from 'http'
|
||||
import https from 'https'
|
||||
import path from 'path'
|
||||
import url from 'url'
|
||||
import _ from 'lodash'
|
||||
|
@ -71,7 +72,7 @@ class SPServer {
|
|||
|
||||
var base = SPServer.generateBase(finalSettings.file ? path.resolve(finalSettings.file) : null, finalSettings);
|
||||
|
||||
var server = http.createServer(function (req, res) {
|
||||
let requestHandler = function (req, res) {
|
||||
var startTime = new Date().getTime();
|
||||
|
||||
var isFinished = false
|
||||
|
@ -106,15 +107,25 @@ class SPServer {
|
|||
}
|
||||
});
|
||||
}).resume();
|
||||
});
|
||||
}
|
||||
|
||||
var server
|
||||
if (config.get('ssl')) {
|
||||
server = https.createServer({
|
||||
key: fs.readFileSync(config.get('sslkey')),
|
||||
cert: fs.readFileSync(config.get('sslcert'))
|
||||
}, requestHandler)
|
||||
} else {
|
||||
server = http.createServer(requestHandler)
|
||||
}
|
||||
|
||||
server.listen(finalSettings.port, finalSettings.ip);
|
||||
|
||||
logger.info(
|
||||
'Started single-page server: ' + finalSettings.name +
|
||||
', base file: ' + (finalSettings.file || '<none>') +
|
||||
', static folder: ' + finalSettings.serve +
|
||||
', port: ' + finalSettings.port
|
||||
logger.info('Started single-page server: ' + finalSettings.name
|
||||
+ ', base file: ' + (finalSettings.file || '<none>')
|
||||
+ ', static folder: ' + finalSettings.serve
|
||||
+ ', port: ' + finalSettings.port
|
||||
+ (config.get('ssl') ? ' [SSL]' : '')
|
||||
);
|
||||
|
||||
this.server = server
|
||||
|
|
|
@ -24,7 +24,7 @@
|
|||
"dependencies": {
|
||||
"bunyan-lite": "^1.1.1",
|
||||
"lodash": "^4.17.2",
|
||||
"nconf-lite": "^2.0.0",
|
||||
"nconf-lite": "^2.1.0",
|
||||
"node-static": "^0.7.6"
|
||||
},
|
||||
"bin": "./bin.mjs",
|
||||
|
|
Loading…
Reference in a new issue