2015-04-06 03:28:20 -04:00
|
|
|
|
2015-12-16 09:12:35 -08:00
|
|
|
var PUSHOVER_ENABLED = false;
|
2013-05-06 03:38:29 -04:00
|
|
|
|
2015-08-05 06:03:02 -07:00
|
|
|
var env = 'prod';
|
2013-05-06 03:38:29 -04:00
|
|
|
|
2015-08-05 06:03:02 -07:00
|
|
|
var pushover = require('pushover-notifications');
|
|
|
|
var express = require('express');
|
|
|
|
var fs = require('fs');
|
|
|
|
var passport = require('passport');
|
|
|
|
var config = require('./config/config')[env];
|
|
|
|
var mongoose = require('mongoose');
|
2014-07-25 03:00:29 -04:00
|
|
|
var log = require('log4node');
|
2015-04-06 03:28:20 -04:00
|
|
|
|
2015-11-25 02:29:23 -08:00
|
|
|
mongoose.Promise = require('bluebird');
|
|
|
|
|
|
|
|
var moment = require('moment-timezone');
|
|
|
|
moment.tz.setDefault("America/New_York");
|
2015-04-06 03:28:20 -04:00
|
|
|
|
2015-08-05 06:03:02 -07:00
|
|
|
var pushoverApi = new pushover({
|
|
|
|
user: 'aJmPD4KigO0vLwim76n3WqWKwbKA3k',
|
|
|
|
token: 'YxspDLz3WinbPmwBThuZXCME9QmkDb'
|
|
|
|
});
|
|
|
|
|
|
|
|
process.on('uncaughtException', function(err) {
|
|
|
|
console.log('Uncaught Exception:', err);
|
|
|
|
console.log(err.stack);
|
|
|
|
|
|
|
|
sendPushOver(
|
|
|
|
'Unhandled error in portal',
|
|
|
|
'Process was reset on ' + new Date(),
|
|
|
|
'falling',
|
|
|
|
function() {
|
|
|
|
process.exit(1);
|
|
|
|
});
|
|
|
|
});
|
2014-07-25 03:00:29 -04:00
|
|
|
|
|
|
|
log.info("----- Server Started -----");
|
2013-05-06 03:38:29 -04:00
|
|
|
|
|
|
|
// bootstrap db connection
|
|
|
|
mongoose.set('debug', config.debug);
|
|
|
|
mongoose.connect(config.database);
|
|
|
|
|
|
|
|
// bootstrap model
|
|
|
|
var modelPath = __dirname + '/app/model'
|
|
|
|
fs.readdirSync(modelPath).forEach(function (file) {
|
2015-08-05 06:03:02 -07:00
|
|
|
require(modelPath + '/' + file)
|
2013-05-06 03:38:29 -04:00
|
|
|
})
|
|
|
|
|
|
|
|
require('./config/passport')(passport, config);
|
|
|
|
|
|
|
|
var app = express(),
|
2015-08-05 06:03:02 -07:00
|
|
|
http = require('http'),
|
|
|
|
server = http.createServer(app),
|
|
|
|
io = require('socket.io').listen(server);
|
2013-05-06 03:38:29 -04:00
|
|
|
|
|
|
|
// Configure piler
|
|
|
|
var piler = require('./config/piler')(app, server, io, config);
|
|
|
|
|
|
|
|
// Express settings
|
|
|
|
require('./config/express')(app, config, passport, piler);
|
|
|
|
|
2015-11-25 02:29:23 -08:00
|
|
|
var auth = require('./config/auth')(app, passport, config);
|
2013-05-06 03:38:29 -04:00
|
|
|
|
|
|
|
var calendar = require('./config/calendar')(config);
|
|
|
|
|
2014-07-25 03:00:29 -04:00
|
|
|
var directory = require('./config/directory')(config);
|
|
|
|
|
2013-05-06 03:38:29 -04:00
|
|
|
// Bootstrap routes
|
2014-07-25 03:00:29 -04:00
|
|
|
require('./config/routes')(app, auth, piler, calendar, directory, config);
|
2013-05-06 03:38:29 -04:00
|
|
|
|
|
|
|
GLOBAL.health = 'OK'
|
|
|
|
|
2015-06-29 00:45:40 -04:00
|
|
|
var port = process.env.PORT || 9000
|
2015-07-06 07:09:17 -04:00
|
|
|
|
|
|
|
server.on('error', function(e) {
|
2015-08-05 06:03:02 -07:00
|
|
|
if (e.code == 'EADDRINUSE') {
|
|
|
|
console.log('Address in use, retrying...');
|
|
|
|
setTimeout(function() {
|
|
|
|
server.close();
|
|
|
|
server.listen(port, onListen);
|
|
|
|
}, 1000);
|
|
|
|
}
|
2015-07-06 07:09:17 -04:00
|
|
|
});
|
|
|
|
|
|
|
|
server.listen(port, onListen);
|
|
|
|
|
|
|
|
function onListen() {
|
2015-08-05 06:03:02 -07:00
|
|
|
sendPushOver(
|
|
|
|
'Portal is running',
|
|
|
|
'Process was reset on ' + new Date(),
|
|
|
|
'bugle');
|
|
|
|
}
|
|
|
|
|
|
|
|
function sendPushOver(title, message, sound, callback) {
|
|
|
|
if (!PUSHOVER_ENABLED) {
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
var data = {
|
|
|
|
title: title,
|
|
|
|
message: message,
|
|
|
|
sound: sound
|
|
|
|
};
|
|
|
|
|
|
|
|
pushoverApi.send(data, function(err, result) {
|
|
|
|
if (err) {
|
|
|
|
log.emergency('Error while sending pushover notification');
|
|
|
|
log.emergency(err);
|
|
|
|
}
|
|
|
|
|
|
|
|
if (callback) {
|
|
|
|
callback();
|
|
|
|
}
|
|
|
|
});
|
2015-07-06 07:09:17 -04:00
|
|
|
}
|