Configure production to run in https
This commit is contained in:
@ -2,32 +2,34 @@ require('dotenv').load();
|
|||||||
require('pmx').init();
|
require('pmx').init();
|
||||||
// handle uncaught exceptions. Forever will restart process on shutdown
|
// handle uncaught exceptions. Forever will restart process on shutdown
|
||||||
|
|
||||||
var R = require('ramda'),
|
var https = require('https'),
|
||||||
assign = require('lodash').assign,
|
sslConfig = require('./ssl-config'),
|
||||||
loopback = require('loopback'),
|
R = require('ramda'),
|
||||||
boot = require('loopback-boot'),
|
assign = require('lodash').assign,
|
||||||
accepts = require('accepts'),
|
loopback = require('loopback'),
|
||||||
cookieParser = require('cookie-parser'),
|
boot = require('loopback-boot'),
|
||||||
compress = require('compression'),
|
accepts = require('accepts'),
|
||||||
session = require('express-session'),
|
cookieParser = require('cookie-parser'),
|
||||||
logger = require('morgan'),
|
compress = require('compression'),
|
||||||
errorHandler = require('errorhandler'),
|
session = require('express-session'),
|
||||||
methodOverride = require('method-override'),
|
logger = require('morgan'),
|
||||||
bodyParser = require('body-parser'),
|
errorHandler = require('errorhandler'),
|
||||||
helmet = require('helmet'),
|
methodOverride = require('method-override'),
|
||||||
MongoStore = require('connect-mongo')(session),
|
bodyParser = require('body-parser'),
|
||||||
flash = require('express-flash'),
|
helmet = require('helmet'),
|
||||||
path = require('path'),
|
MongoStore = require('connect-mongo')(session),
|
||||||
expressValidator = require('express-validator'),
|
flash = require('express-flash'),
|
||||||
forceDomain = require('forcedomain'),
|
path = require('path'),
|
||||||
lessMiddleware = require('less-middleware'),
|
expressValidator = require('express-validator'),
|
||||||
pmx = require('pmx'),
|
forceDomain = require('forcedomain'),
|
||||||
|
lessMiddleware = require('less-middleware'),
|
||||||
|
pmx = require('pmx'),
|
||||||
|
|
||||||
passportProviders = require('./passport-providers'),
|
passportProviders = require('./passport-providers'),
|
||||||
/**
|
/**
|
||||||
* API keys and Passport configuration.
|
* API keys and Passport configuration.
|
||||||
*/
|
*/
|
||||||
secrets = require('./../config/secrets');
|
secrets = require('./../config/secrets');
|
||||||
|
|
||||||
var generateKey =
|
var generateKey =
|
||||||
require('loopback-component-passport/lib/models/utils').generateKey;
|
require('loopback-component-passport/lib/models/utils').generateKey;
|
||||||
@ -218,8 +220,8 @@ var passportOptions = {
|
|||||||
// NOTE(berks): get email or set to null.
|
// NOTE(berks): get email or set to null.
|
||||||
// MongoDB indexs email but can be sparse(blank)
|
// MongoDB indexs email but can be sparse(blank)
|
||||||
var email = emails && emails[0] && emails[0].value ?
|
var email = emails && emails[0] && emails[0].value ?
|
||||||
emails[0].value :
|
emails[0].value :
|
||||||
null;
|
null;
|
||||||
|
|
||||||
var username = (profile.username || profile.id);
|
var username = (profile.username || profile.id);
|
||||||
username = typeof username === 'string' ? username.toLowerCase() : username;
|
username = typeof username === 'string' ? username.toLowerCase() : username;
|
||||||
@ -295,16 +297,34 @@ if (process.env.NODE_ENV === 'development') {
|
|||||||
* Start Express server.
|
* Start Express server.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
app.start = function() {
|
var options = {
|
||||||
app.listen(app.get('port'), function () {
|
key: sslConfig.privateKey,
|
||||||
console.log(
|
cert: sslConfig.certificate
|
||||||
'FreeCodeCamp server listening on port %d in %s mode',
|
|
||||||
app.get('port'),
|
|
||||||
app.get('env')
|
|
||||||
);
|
|
||||||
});
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
if (process.env.NODE_ENV === 'production') {
|
||||||
|
app.start = function() {
|
||||||
|
var server = https.createServer(options, app);
|
||||||
|
server.listen('https://' + process.env.HOST + ':' + app.get('port'), function () {
|
||||||
|
console.log(
|
||||||
|
'FreeCodeCamp server listening on port %d in %s mode',
|
||||||
|
app.get('port'),
|
||||||
|
app.get('env')
|
||||||
|
);
|
||||||
|
});
|
||||||
|
};
|
||||||
|
} else {
|
||||||
|
app.start = function () {
|
||||||
|
app.listen(app.get('port'), function () {
|
||||||
|
console.log(
|
||||||
|
'FreeCodeCamp server listening on port %d in %s mode',
|
||||||
|
app.get('port'),
|
||||||
|
app.get('env')
|
||||||
|
);
|
||||||
|
});
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
// start the server if `$ node server.js`
|
// start the server if `$ node server.js`
|
||||||
if (require.main === module) {
|
if (require.main === module) {
|
||||||
app.start();
|
app.start();
|
||||||
|
16
server/ssl-config.js
Normal file
16
server/ssl-config.js
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
/**
|
||||||
|
* Created by nathanleniz on 6/16/15.
|
||||||
|
*/
|
||||||
|
|
||||||
|
var path = require('path');
|
||||||
|
var fs = require('fs');
|
||||||
|
|
||||||
|
if (process.env.NODE_ENV === 'production') {
|
||||||
|
exports.privateKey =
|
||||||
|
fs.readFileSync(path.join(__dirname,
|
||||||
|
'../../private/privatekey.pem')).toString();
|
||||||
|
exports.certificate =
|
||||||
|
fs.readFileSync(path.join(__dirname,
|
||||||
|
'../../private/certificate.pem')).toString();
|
||||||
|
|
||||||
|
}
|
@ -11,7 +11,7 @@ block content
|
|||||||
link(rel='stylesheet', href='/js/lib/codemirror/lib/codemirror.css')
|
link(rel='stylesheet', href='/js/lib/codemirror/lib/codemirror.css')
|
||||||
link(rel='stylesheet', href='/js/lib/codemirror/addon/lint/lint.css')
|
link(rel='stylesheet', href='/js/lib/codemirror/addon/lint/lint.css')
|
||||||
link(rel='stylesheet', href='/js/lib/codemirror/theme/monokai.css')
|
link(rel='stylesheet', href='/js/lib/codemirror/theme/monokai.css')
|
||||||
link(rel="stylesheet", href="http://fonts.googleapis.com/css?family=Ubuntu+Mono")
|
link(rel="stylesheet", href="//fonts.googleapis.com/css?family=Ubuntu+Mono")
|
||||||
script(type='text/javascript', src='/js/lib/codemirror/mode/javascript/javascript.js')
|
script(type='text/javascript', src='/js/lib/codemirror/mode/javascript/javascript.js')
|
||||||
script(type='text/javascript', src='/js/lib/jailed/jailed.js')
|
script(type='text/javascript', src='/js/lib/jailed/jailed.js')
|
||||||
script(type='text/javascript', src='/js/lib/coursewares/sandbox.js')
|
script(type='text/javascript', src='/js/lib/coursewares/sandbox.js')
|
||||||
|
@ -10,7 +10,7 @@ block content
|
|||||||
link(rel='stylesheet', href='/js/lib/codemirror/lib/codemirror.css')
|
link(rel='stylesheet', href='/js/lib/codemirror/lib/codemirror.css')
|
||||||
link(rel='stylesheet', href='/js/lib/codemirror/addon/lint/lint.css')
|
link(rel='stylesheet', href='/js/lib/codemirror/addon/lint/lint.css')
|
||||||
link(rel='stylesheet', href='/js/lib/codemirror/theme/monokai.css')
|
link(rel='stylesheet', href='/js/lib/codemirror/theme/monokai.css')
|
||||||
link(rel="stylesheet", href="http://fonts.googleapis.com/css?family=Ubuntu+Mono")
|
link(rel="stylesheet", href="//fonts.googleapis.com/css?family=Ubuntu+Mono")
|
||||||
script(src='/js/lib/codemirror/mode/javascript/javascript.js')
|
script(src='/js/lib/codemirror/mode/javascript/javascript.js')
|
||||||
script(src='/js/lib/jailed/jailed.js')
|
script(src='/js/lib/jailed/jailed.js')
|
||||||
script(src='/js/lib/coursewares/sandbox.js')
|
script(src='/js/lib/coursewares/sandbox.js')
|
||||||
|
Reference in New Issue
Block a user