39 lines
1 KiB
JavaScript
39 lines
1 KiB
JavaScript
|
const express = require('express');
|
||
|
const cookieParser = require('cookie-parser');
|
||
|
const Config = require('./config.js');
|
||
|
|
||
|
const UserInterface = require('./user.js');
|
||
|
|
||
|
let app = express();
|
||
|
|
||
|
app.use(cookieParser());
|
||
|
|
||
|
// force https
|
||
|
app.use((req, res, next) => {
|
||
|
if (Config.config.https) {
|
||
|
if (req.headers['x-forwarded-proto'] !== 'https') {
|
||
|
return res.redirect(`https://${req.headers.host}${req.url}`);
|
||
|
}
|
||
|
}
|
||
|
return next();
|
||
|
});
|
||
|
|
||
|
if (!Config.config.secret) {
|
||
|
console.error("No password secret found. please set `secret` in config.json");
|
||
|
process.exit();
|
||
|
}
|
||
|
else if(Config.config.https && Config.config.secret == "TEST_SECRET") {
|
||
|
console.error("please do not use the testing secret in production.");
|
||
|
process.exit();
|
||
|
}
|
||
|
|
||
|
app.use("/user", UserInterface.router);
|
||
|
|
||
|
// serve static files last
|
||
|
// app.use(express.static("./static"));
|
||
|
// DISABLED: no longer needs to serve static files
|
||
|
// due to frontend being employed in elm
|
||
|
|
||
|
app.listen(Config.config.port || 8080, () => {
|
||
|
console.log(`listening on port ${Config.config.port || 8080}`);
|
||
|
});
|