From 571259f2413a5a26bcce20adabe3be8175e22457 Mon Sep 17 00:00:00 2001 From: Quinton Marchi Date: Sat, 28 Sep 2013 03:55:06 -0400 Subject: [PATCH 1/6] Adds hostname support, fixes #343 Works from previous testing but I haven't tried this personal revision of the code. Take it with a grain of salt. --- src/install.js | 12 +++++++++++- src/webserver.js | 2 +- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/src/install.js b/src/install.js index 4a4ef9351f..eae52c45c0 100644 --- a/src/install.js +++ b/src/install.js @@ -40,7 +40,17 @@ var async = require('async'), }, { name: 'redis:password', description: 'Password of your Redis database' - }], + }, { + name: 'use_ip', + description: 'Do you want to bind to an IP or hostname?', + 'default': 'n', + pattern: /y[es]*|n[o]?/, + message: 'Please enter \'yes\' or \'no\'', + }, { + name: 'hostname_ip', + decription: 'Hostname or IP to bind to' + 'default': '0.0.0.0' + }], setup: function (callback) { async.series([ function (next) { diff --git a/src/webserver.js b/src/webserver.js index b9116e7906..4fff4aa58a 100644 --- a/src/webserver.js +++ b/src/webserver.js @@ -134,7 +134,7 @@ var express = require('express'), templates['logout'] = parsedTemplate; }); - server.listen(nconf.get('PORT') || nconf.get('port')); + server.listen(nconf.get('PORT') || nconf.get('port'), nconf.get('use_ip') ? nconf.get('hostname_set') : '0.0.0.0'); } auth.initialize(app); From eafb41602cebab06dcbb775ee2cc71ac603de6c9 Mon Sep 17 00:00:00 2001 From: Minami Date: Sun, 29 Sep 2013 21:03:29 -0500 Subject: [PATCH 2/6] Edited to simplify install Removed the two steps and made it default to 0.0.0.0, edited the webserver.js to reflect the changes. --- src/install.js | 10 ++-------- src/webserver.js | 2 +- 2 files changed, 3 insertions(+), 9 deletions(-) diff --git a/src/install.js b/src/install.js index eae52c45c0..4f60f6203d 100644 --- a/src/install.js +++ b/src/install.js @@ -41,14 +41,8 @@ var async = require('async'), name: 'redis:password', description: 'Password of your Redis database' }, { - name: 'use_ip', - description: 'Do you want to bind to an IP or hostname?', - 'default': 'n', - pattern: /y[es]*|n[o]?/, - message: 'Please enter \'yes\' or \'no\'', - }, { - name: 'hostname_ip', - decription: 'Hostname or IP to bind to' + name: 'bind_address', + description: 'IP or Hostname to bind to', 'default': '0.0.0.0' }], setup: function (callback) { diff --git a/src/webserver.js b/src/webserver.js index 4fff4aa58a..ee87e0fa16 100644 --- a/src/webserver.js +++ b/src/webserver.js @@ -134,7 +134,7 @@ var express = require('express'), templates['logout'] = parsedTemplate; }); - server.listen(nconf.get('PORT') || nconf.get('port'), nconf.get('use_ip') ? nconf.get('hostname_set') : '0.0.0.0'); + server.listen(nconf.get('PORT') || nconf.get('port'), nconf.get('bind_address')); } auth.initialize(app); From 504e2aac4aa48ff6e8566ebee1ae078e0e612fa3 Mon Sep 17 00:00:00 2001 From: Quinton Marchi Date: Mon, 30 Sep 2013 02:42:34 -0400 Subject: [PATCH 3/6] Adds: regex for ports, mini for public/src/forum + Regular expression for port during install + Minification for public/src/forum JS files + Minification for public/src/forum/admin JS files --- src/install.js | 4 +++- src/meta.js | 28 +++++++++++++++++++++++++++- 2 files changed, 30 insertions(+), 2 deletions(-) diff --git a/src/install.js b/src/install.js index 4f60f6203d..535e578379 100644 --- a/src/install.js +++ b/src/install.js @@ -18,7 +18,9 @@ var async = require('async'), }, { name: 'port', description: 'Port number of your NodeBB', - 'default': 4567 + 'default': 4567, + pattern: /[0-9]{1,4}|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5]/, + message: 'Please enter a value betweeen 1 and 65535' }, { name: 'use_port', description: 'Use a port number to access NodeBB?', diff --git a/src/meta.js b/src/meta.js index 97cfe65789..84b98e5167 100644 --- a/src/meta.js +++ b/src/meta.js @@ -160,7 +160,33 @@ var utils = require('./../public/src/utils.js'), 'src/ajaxify.js', 'src/translator.js', 'src/jquery.form.js', - 'src/utils.js' + 'src/utils.js', + 'src/forum/account.js', + 'src/forum/accountedit.js', + 'src/forum/accountheader.js', + 'src/forum/accountsettings.js', + 'src/forum/category.js', + 'src/forum/favourites.js', + 'src/forum/followers.js', + 'src/forum/following.js', + 'src/forum/footer.js', + 'src/forum/login.js', + 'src/forum/recent.js', + 'src/forum/register.js', + 'src/forum/reset.js', + 'src/forum/reset_code.js', + 'src/forum/search.js', + 'src/forum/topic.js', + 'src/forum/unread.js', + 'src/forum/users.js', + 'src/forum/admin/categories.js', + 'src/forum/admin/footer.js', + 'src/forum/admin/groups.js', + 'src/forum/admin/index.js', + 'src/forum/admin/plugins.js', + 'src/forum/admin/themes.js', + 'src/forum/admin/topics.js', + 'src/forum/admin/users' ], minFile: path.join(__dirname, '..', 'public/src/nodebb.min.js'), get: function (callback) { From a4c1d733b72558cca6bf7c5a38664d772b9083b8 Mon Sep 17 00:00:00 2001 From: Julian Lam Date: Mon, 30 Sep 2013 11:17:12 -0400 Subject: [PATCH 4/6] fixed issue where setOnEmpty would fail in install.js as Meta.config was not defined (as it had not been initted yet) --- src/meta.js | 29 ++--------------------------- 1 file changed, 2 insertions(+), 27 deletions(-) diff --git a/src/meta.js b/src/meta.js index cfc2a1d66d..e7da74e99d 100644 --- a/src/meta.js +++ b/src/meta.js @@ -7,6 +7,7 @@ var utils = require('./../public/src/utils.js'), nconf = require('nconf'); (function (Meta) { + Meta.config = {}; Meta.configs = { init: function (callback) { @@ -162,33 +163,7 @@ var utils = require('./../public/src/utils.js'), 'src/ajaxify.js', 'src/translator.js', 'src/jquery.form.js', - 'src/utils.js', - 'src/forum/account.js', - 'src/forum/accountedit.js', - 'src/forum/accountheader.js', - 'src/forum/accountsettings.js', - 'src/forum/category.js', - 'src/forum/favourites.js', - 'src/forum/followers.js', - 'src/forum/following.js', - 'src/forum/footer.js', - 'src/forum/login.js', - 'src/forum/recent.js', - 'src/forum/register.js', - 'src/forum/reset.js', - 'src/forum/reset_code.js', - 'src/forum/search.js', - 'src/forum/topic.js', - 'src/forum/unread.js', - 'src/forum/users.js', - 'src/forum/admin/categories.js', - 'src/forum/admin/footer.js', - 'src/forum/admin/groups.js', - 'src/forum/admin/index.js', - 'src/forum/admin/plugins.js', - 'src/forum/admin/themes.js', - 'src/forum/admin/topics.js', - 'src/forum/admin/users' + 'src/utils.js' ], minFile: path.join(__dirname, '..', 'public/src/nodebb.min.js'), get: function (callback) { From 8cbe79655a873f8e3cbeac0253ee1d1499316ddc Mon Sep 17 00:00:00 2001 From: Julian Lam Date: Mon, 30 Sep 2013 11:18:02 -0400 Subject: [PATCH 5/6] emptying Meta.config on init (Just to be safe) --- src/meta.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/meta.js b/src/meta.js index e7da74e99d..9a9c0f4c49 100644 --- a/src/meta.js +++ b/src/meta.js @@ -11,6 +11,8 @@ var utils = require('./../public/src/utils.js'), Meta.configs = { init: function (callback) { + delete Meta.config; + Meta.configs.list(function (err, config) { if (!err) { Meta.config = config; From 06f2284bcd4047390b93be3f1d952e76942e8538 Mon Sep 17 00:00:00 2001 From: Julian Lam Date: Mon, 30 Sep 2013 11:23:11 -0400 Subject: [PATCH 6/6] added output to show bound address on instance start --- app.js | 1 + 1 file changed, 1 insertion(+) diff --git a/app.js b/app.js index 7a6f68dc7a..a081cd4fa3 100644 --- a/app.js +++ b/app.js @@ -66,6 +66,7 @@ nconf.set('upload_url', nconf.get('url') + 'uploads/'); winston.info('Initializing NodeBB v' + pkg.version + ', on port ' + nconf.get('port') + ', using Redis store at ' + nconf.get('redis:host') + ':' + nconf.get('redis:port') + '.'); + winston.info('NodeBB instance bound to: ' + (nconf.get('bind_address') || 'Any address')); if (process.env.NODE_ENV === 'development') { winston.info('Base Configuration OK.');