// Generated by CoffeeScript 1.3.3 var MongoStore, ONE_YEAR, app, auth, derby, everyauth, express, expressApp, gzippo, habitrpgMiddleware, http, path, publicPath, racer, root, server, serverError, store; 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('./auth'); 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; if (process.env.NODE_ENV !== 'production') { expressApp.all('*', function(req, res, next) { if (req.headers['x-forwarded-proto'] !== 'https') { return res.redirect('https://' + req.headers.host + req.url); } }); } derby.use(require('racer-db-mongo')); store = derby.createStore({ db: { type: 'Mongo', uri: process.env.NODE_DB_URI }, listen: server }); auth.setupQueries(store); auth.setupEveryauth(everyauth); auth.setupAccessControl(store); 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'))); auth.setRequest(req); auth.newUserAndPurl(); return next(); }; 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(habitrpgMiddleware).use(everyauth.middleware()).use(app.router()).use(expressApp.router).use(serverError(root)); require('./serverRoutes')(expressApp, root, derby);