diff --git a/src/node/hooks/express.js b/src/node/hooks/express.js index ccdc3d668..ed5cafb74 100644 --- a/src/node/hooks/express.js +++ b/src/node/hooks/express.js @@ -19,20 +19,20 @@ exports.createServer = function () { exports.restartServer(); console.log(`You can access your Etherpad instance at http://${settings.ip}:${settings.port}/`); - if(!_.isEmpty(settings.users)){ + if (!_.isEmpty(settings.users)) { console.log(`The plugin admin page is at http://${settings.ip}:${settings.port}/admin/plugins`); - } - else{ + } else { console.warn("Admin username and password not set in settings.json. To access admin please uncomment and edit 'users' in settings.json"); } + var env = process.env.NODE_ENV || 'development'; - if(env !== 'production'){ + + if (env !== 'production') { console.warn("Etherpad is running in Development mode. This mode is slower for users and less secure than production mode. You should set the NODE_ENV environment variable to production by using: export NODE_ENV=production"); } } exports.restartServer = function () { - if (server) { console.log("Restarting express server"); server.close(); @@ -41,7 +41,6 @@ exports.restartServer = function () { var app = express(); // New syntax for express v3 if (settings.ssl) { - console.log("SSL -- enabled"); console.log(`SSL -- server key file: ${settings.ssl.key}`); console.log(`SSL -- Certificate Authority's certificate file: ${settings.ssl.cert}`); @@ -50,9 +49,10 @@ exports.restartServer = function () { key: fs.readFileSync( settings.ssl.key ), cert: fs.readFileSync( settings.ssl.cert ) }; + if (settings.ssl.ca) { options.ca = []; - for(var i = 0; i < settings.ssl.ca.length; i++) { + for (var i = 0; i < settings.ssl.ca.length; i++) { var caFileName = settings.ssl.ca[i]; options.ca.push(fs.readFileSync(caFileName)); } @@ -60,16 +60,15 @@ exports.restartServer = function () { var https = require('https'); server = https.createServer(options, app); - } else { - var http = require('http'); server = http.createServer(app); } - app.use(function (req, res, next) { + app.use(function(req, res, next) { // res.header("X-Frame-Options", "deny"); // breaks embedded pads - if(settings.ssl){ // if we use SSL + if (settings.ssl) { + // we use SSL res.header("Strict-Transport-Security", "max-age=31536000; includeSubDomains"); } @@ -80,7 +79,7 @@ exports.restartServer = function () { next(); }); - if(settings.trustProxy){ + if (settings.trustProxy) { app.enable('trust proxy'); } diff --git a/src/node/utils/Settings.js b/src/node/utils/Settings.js index 8de69fcf7..db1b294b0 100644 --- a/src/node/utils/Settings.js +++ b/src/node/utils/Settings.js @@ -231,60 +231,67 @@ exports.loadTest = false; exports.indentationOnNewLine = true; /* -* log4js appender configuration -*/ + * log4js appender configuration + */ exports.logconfig = { appenders: [{ type: "console" }]}; /* -* Session Key, do not sure this. -*/ + * Session Key, do not sure this. + */ exports.sessionKey = false; /* -* Trust Proxy, whether or not trust the x-forwarded-for header. -*/ + * Trust Proxy, whether or not trust the x-forwarded-for header. + */ exports.trustProxy = false; -/* This setting is used if you need authentication and/or +/* + * This setting is used if you need authentication and/or * authorization. Note: /admin always requires authentication, and - * either authorization by a module, or a user with is_admin set */ + * either authorization by a module, or a user with is_admin set + */ exports.requireAuthentication = false; exports.requireAuthorization = false; exports.users = {}; /* -* Show settings in admin page, by default it is true -*/ + * Show settings in admin page, by default it is true + */ exports.showSettingsInAdminPage = true; /* -* By default, when caret is moved out of viewport, it scrolls the minimum height needed to make this -* line visible. -*/ + * By default, when caret is moved out of viewport, it scrolls the minimum + * height needed to make this line visible. + */ exports.scrollWhenFocusLineIsOutOfViewport = { /* - * Percentage of viewport height to be additionally scrolled. - */ + * Percentage of viewport height to be additionally scrolled. + */ "percentage": { "editionAboveViewport": 0, "editionBelowViewport": 0 }, + /* - * Time (in milliseconds) used to animate the scroll transition. Set to 0 to disable animation - */ + * Time (in milliseconds) used to animate the scroll transition. Set to 0 to + * disable animation + */ "duration": 0, + /* - * Flag to control if it should scroll when user places the caret in the last line of the viewport - */ - /* - * Percentage of viewport height to be additionally scrolled when user presses arrow up - * in the line of the top of the viewport. + * Percentage of viewport height to be additionally scrolled when user presses arrow up + * in the line of the top of the viewport. */ "percentageToScrollWhenUserPressesArrowUp": 0, + + /* + * Flag to control if it should scroll when user places the caret in the last + * line of the viewport + */ "scrollWhenCaretIsInTheLastLineOfViewport": false }; -//checks if abiword is avaiable +// checks if abiword is avaiable exports.abiwordAvailable = function() { if (exports.abiword != null) {