mirror of
https://github.com/HabitRPG/habitica.git
synced 2025-12-19 15:48:04 +01:00
104 lines
2.5 KiB
JavaScript
104 lines
2.5 KiB
JavaScript
// Generated by CoffeeScript 1.4.0
|
|
var MongoStore, ONE_YEAR, app, auth, derby, everyauth, express, expressApp, gzippo, habitrpgMiddleware, http, options, path, priv, publicPath, racer, root, server, serverError, store, strategies;
|
|
|
|
http = require('http');
|
|
|
|
path = require('path');
|
|
|
|
express = require('express');
|
|
|
|
gzippo = require('gzippo');
|
|
|
|
derby = require('derby');
|
|
|
|
app = require('../app');
|
|
|
|
everyauth = require('everyauth');
|
|
|
|
serverError = require('./serverError');
|
|
|
|
MongoStore = require('connect-mongo')(express);
|
|
|
|
auth = require('derby-auth');
|
|
|
|
priv = require('./private');
|
|
|
|
racer = require('derby/node_modules/racer');
|
|
|
|
racer.io.set('transports', ['xhr-polling']);
|
|
|
|
if (process.env.NODE_ENV !== 'production') {
|
|
racer.use(racer.logPlugin);
|
|
derby.use(derby.logPlugin);
|
|
}
|
|
|
|
expressApp = express();
|
|
|
|
server = http.createServer(expressApp);
|
|
|
|
module.exports = server;
|
|
|
|
derby.use(require('racer-db-mongo'));
|
|
|
|
store = derby.createStore({
|
|
db: {
|
|
type: 'Mongo',
|
|
uri: process.env.NODE_DB_URI
|
|
},
|
|
listen: server
|
|
});
|
|
|
|
ONE_YEAR = 1000 * 60 * 60 * 24 * 365;
|
|
|
|
root = path.dirname(path.dirname(__dirname));
|
|
|
|
publicPath = path.join(root, 'public');
|
|
|
|
habitrpgMiddleware = function(req, res, next) {
|
|
var model;
|
|
model = req.getModel();
|
|
model.set('_mobileDevice', /Android|webOS|iPhone|iPad|iPod|BlackBerry/i.test(req.header('User-Agent')));
|
|
model.set('_nodeEnv', process.env.NODE_ENV);
|
|
return next();
|
|
};
|
|
|
|
strategies = {
|
|
facebook: {
|
|
strategy: require("passport-facebook").Strategy,
|
|
conf: {
|
|
clientID: process.env.FACEBOOK_KEY,
|
|
clientSecret: process.env.FACEBOOK_SECRET
|
|
}
|
|
}
|
|
};
|
|
|
|
options = {
|
|
domain: "http://localhost:3000",
|
|
allowPurl: true,
|
|
schema: require('../app/schema').newUserObject()
|
|
};
|
|
|
|
auth.init(expressApp, store, strategies, options);
|
|
|
|
expressApp.use(express.favicon()).use(gzippo.staticGzip(publicPath, {
|
|
maxAge: ONE_YEAR
|
|
})).use(express.compress()).use(express.bodyParser()).use(express.methodOverride()).use(express.cookieParser()).use(store.sessionMiddleware({
|
|
secret: process.env.SESSION_SECRET || 'YOUR SECRET HERE',
|
|
cookie: {
|
|
maxAge: ONE_YEAR
|
|
},
|
|
store: new MongoStore({
|
|
url: process.env.NODE_DB_URI
|
|
})
|
|
})).use(store.modelMiddleware()).use(priv.middleware).use(habitrpgMiddleware).use(auth.middleware()).use(app.router()).use(expressApp.router).use(serverError(root));
|
|
|
|
auth.routes();
|
|
|
|
priv.routes(expressApp);
|
|
|
|
require('./serverRoutes')(expressApp, root, derby);
|
|
|
|
expressApp.all('*', function(req) {
|
|
throw "404: " + req.url;
|
|
});
|