diff --git a/src/cloudron.js b/src/cloudron.js index d3e43e01d..e6956466a 100644 --- a/src/cloudron.js +++ b/src/cloudron.js @@ -26,7 +26,6 @@ var assert = require('assert'), debug = require('debug')('box:cloudron'), df = require('@sindresorhus/df'), eventlog = require('./eventlog.js'), - fs = require('fs'), locker = require('./locker.js'), mailer = require('./mailer.js'), nginx = require('./nginx.js'), @@ -82,7 +81,7 @@ function initialize(callback) { async.series([ settings.initialize, - configureDefaultServer, + nginx.configureDefaultServer, cron.initialize, // required for caas heartbeat before activation onActivated ], callback); @@ -112,31 +111,6 @@ function onActivated(callback) { }); } -function configureDefaultServer(callback) { - callback = callback || NOOP_CALLBACK; - - if (process.env.BOX_ENV === 'test') return callback(); - - var certFilePath = path.join(paths.NGINX_CERT_DIR, 'default.cert'); - var keyFilePath = path.join(paths.NGINX_CERT_DIR, 'default.key'); - - if (!fs.existsSync(certFilePath) || !fs.existsSync(keyFilePath)) { - debug('configureDefaultServer: create new cert'); - - var cn = 'cloudron-' + (new Date()).toISOString(); // randomize date a bit to keep firefox happy - var certCommand = util.format('openssl req -x509 -newkey rsa:2048 -keyout %s -out %s -days 3650 -subj /CN=%s -nodes', keyFilePath, certFilePath, cn); - safe.child_process.execSync(certCommand); - } - - nginx.configureAdmin(certFilePath, keyFilePath, 'default.conf', '', function (error) { - if (error) return callback(error); - - debug('configureDefaultServer: done'); - - callback(null); - }); -} - function getDisks(callback) { assert.strictEqual(typeof callback, 'function'); diff --git a/src/nginx.js b/src/nginx.js index 99b5a9116..3b0464441 100644 --- a/src/nginx.js +++ b/src/nginx.js @@ -8,19 +8,23 @@ var assert = require('assert'), path = require('path'), paths = require('./paths.js'), safe = require('safetydance'), - shell = require('./shell.js'); + shell = require('./shell.js'), + util = require('util'); exports = module.exports = { configureAdmin: configureAdmin, configureApp: configureApp, unconfigureApp: unconfigureApp, reload: reload, - removeAppConfigs: removeAppConfigs + removeAppConfigs: removeAppConfigs, + configureDefaultServer: configureDefaultServer }; var NGINX_APPCONFIG_EJS = fs.readFileSync(__dirname + '/../setup/start/nginx/appconfig.ejs', { encoding: 'utf8' }), RELOAD_NGINX_CMD = path.join(__dirname, 'scripts/reloadnginx.sh'); +var NOOP_CALLBACK = function (error) { if (error) debug(error); }; + function configureAdmin(certFilePath, keyFilePath, configFileName, vhost, callback) { assert.strictEqual(typeof certFilePath, 'string'); assert.strictEqual(typeof keyFilePath, 'string'); @@ -106,3 +110,28 @@ function removeAppConfigs() { fs.unlinkSync(path.join(paths.NGINX_APPCONFIG_DIR, appConfigFile)); } } + +function configureDefaultServer(callback) { + callback = callback || NOOP_CALLBACK; + + if (process.env.BOX_ENV === 'test') return callback(); + + var certFilePath = path.join(paths.NGINX_CERT_DIR, 'default.cert'); + var keyFilePath = path.join(paths.NGINX_CERT_DIR, 'default.key'); + + if (!fs.existsSync(certFilePath) || !fs.existsSync(keyFilePath)) { + debug('configureDefaultServer: create new cert'); + + var cn = 'cloudron-' + (new Date()).toISOString(); // randomize date a bit to keep firefox happy + var certCommand = util.format('openssl req -x509 -newkey rsa:2048 -keyout %s -out %s -days 3650 -subj /CN=%s -nodes', keyFilePath, certFilePath, cn); + safe.child_process.execSync(certCommand); + } + + configureAdmin(certFilePath, keyFilePath, 'default.conf', '', function (error) { + if (error) return callback(error); + + debug('configureDefaultServer: done'); + + callback(null); + }); +}