39 lines
No EOL
1 KiB
JavaScript
39 lines
No EOL
1 KiB
JavaScript
import Server from 'bare-server-node';
|
|
import https from 'https';
|
|
import nodeStatic from 'node-static';
|
|
import fs from 'fs';
|
|
|
|
const bare = new Server('/bare/', '');
|
|
|
|
const serve = new nodeStatic.Server('static/');
|
|
const patronServe = new nodeStatic.Server('static/');
|
|
const fakeServe = new nodeStatic.Server('fakeStatic/');
|
|
|
|
const server = https.createServer();
|
|
|
|
fs.readdir('/etc/letsencrypt/live', { withFileTypes: true }, (err, files) => {
|
|
if (!err)
|
|
files
|
|
.filter(file => file.isDirectory())
|
|
.map(folder => folder.name)
|
|
.forEach(dir => {
|
|
server.addContext(dir, {
|
|
key: fs.readFileSync(`/etc/letsencrypt/live/${dir}/privkey.pem`),
|
|
cert: fs.readFileSync(`/etc/letsencrypt/live/${dir}/fullchain.pem`)
|
|
});
|
|
});
|
|
});
|
|
|
|
server.on('request', (request, response) => {
|
|
|
|
serve.serve(request, response);
|
|
});
|
|
|
|
server.on('upgrade', (req, socket, head) => {
|
|
if (bare.route_upgrade(req, socket, head))
|
|
return;
|
|
|
|
socket.end();
|
|
});
|
|
|
|
server.listen(443); |