Skip to content
Snippets Groups Projects
Select Git revision
  • 1d9ddbd9912a87f3ae7516526637f6836628a1d5
  • master default protected
  • remove-event-tracking-fix-adblocker
  • ja-oss-test
  • sk-pin-chai-dependency
  • secure-headers
  • sk-add-csrf-acceptance-test
  • ja-handle-commands-in-arguments
  • ja-include-token-in-project-schema
  • sk-fix-project-feature-loading
  • ho-csrf-acceptence-tests
  • revert-580-ja-import-collaborators
  • ja-import-projects
  • ja-import-collaborators
  • sk-tc-toggle-access-control
  • ja-per-user-track-changes
  • ja-overleaf-oauth
  • ja-brand-prefix-config
  • ja-overleaf-styling
  • ho-overleaf-styling
  • ja-update-ace
  • v0.2.0
  • v0.1.4
  • v0.1.3
  • v0.1.2
  • v0.1.0
26 results

Server.coffee

Blame
  • Code owners
    Assign users and groups as approvers for specific file changes. Learn more.
    Server.coffee 6.51 KiB
    Path = require "path"
    express = require('express')
    Settings = require('settings-sharelatex')
    logger = require 'logger-sharelatex'
    metrics = require('metrics-sharelatex')
    crawlerLogger = require('./CrawlerLogger')
    expressLocals = require('./ExpressLocals')
    Router = require('../router')
    helmet = require "helmet"
    metrics.inc("startup")
    UserSessionsRedis = require('../Features/User/UserSessionsRedis')
    
    sessionsRedisClient = UserSessionsRedis.client()
    
    session = require("express-session")
    RedisStore = require('connect-redis')(session)
    bodyParser = require('body-parser')
    multer  = require('multer')
    methodOverride = require('method-override')
    csrf = require('csurf')
    csrfProtection = csrf()
    cookieParser = require('cookie-parser')
    
    # Init the session store
    sessionStore = new RedisStore(client:sessionsRedisClient)
    
    passport = require('passport')
    LocalStrategy = require('passport-local').Strategy
    LdapStrategy = require('passport-ldapauth')
    
    Mongoose = require("./Mongoose")
    
    oneDayInMilliseconds = 86400000
    ReferalConnect = require('../Features/Referal/ReferalConnect')
    RedirectManager = require("./RedirectManager")
    ProxyManager = require("./ProxyManager")
    translations = require("translations-sharelatex").setup(Settings.i18n)
    Modules = require "./Modules"
    
    ErrorController = require "../Features/Errors/ErrorController"
    UserSessionsManager = require "../Features/User/UserSessionsManager"
    AuthenticationController = require "../Features/Authentication/AuthenticationController"
    
    
    metrics.event_loop?.monitor(logger)
    
    Settings.editorIsOpen ||= true
    
    if Settings.cacheStaticAssets
    	staticCacheAge = (oneDayInMilliseconds * 365)
    else
    	staticCacheAge = 0
    
    app = express()
    
    webRouter = express.Router()
    privateApiRouter = express.Router()
    publicApiRouter = express.Router()
    
    if Settings.behindProxy
    	app.enable('trust proxy')
    
    webRouter.use express.static(__dirname + '/../../../public', {maxAge: staticCacheAge })
    app.set 'views', __dirname + '/../../views'
    app.set 'view engine', 'pug'
    Modules.loadViewIncludes app
    
    
    
    app.use bodyParser.urlencoded({ extended: true, limit: "2mb"})