mail/server.js

49 lines
1.2 KiB
JavaScript
Raw Normal View History

2013-04-01 17:23:25 -04:00
/**
* A simple server for serving static files using node.js
*/
var express = require('express'),
fs = require('fs'),
port, app, prot, dev;
2013-04-06 10:45:53 -04:00
port = (process.argv[2]) ? process.argv[2] : 8585;
dev = (process.argv[3] === '--dev');
2013-04-01 17:23:25 -04:00
2013-04-06 10:45:53 -04:00
if (dev) {
2013-04-01 17:23:25 -04:00
// development server
2013-04-06 10:45:53 -04:00
console.log(' > Starting in development mode ...');
2013-04-01 17:23:25 -04:00
prot = 'http';
app = express();
} else {
// production server
prot = 'https';
app = express({
ca: fs.readFileSync('./ssl/sub.class1.server.ca.pem'),
key: fs.readFileSync('./ssl/ssl.key'),
cert: fs.readFileSync('./ssl/ssl.crt')
});
}
// Server setup
app.configure(function() {
2013-04-06 10:45:53 -04:00
if (dev) {
// serve test files in development mode
app.use(express['static'](__dirname + '/test'));
} else {
// activate content security policy for production
2013-04-01 17:23:25 -04:00
app.use(function(req, res, next) {
var csp = "script-src 'self' 'unsafe-eval'; object-src 'none'; style-src 'self' 'unsafe-inline'";
res.set('Content-Security-Policy', csp);
res.set('X-Content-Security-Policy', csp);
res.set('X-WebKit-CSP', csp);
return next();
});
}
2013-04-06 10:24:28 -04:00
2013-04-01 17:23:25 -04:00
app.use(express['static'](__dirname + '/src'));
});
// start server
app.listen(port);
console.log(' > listening on ' + prot + '://localhost:' + port);