closes #6502, also fixed issue with type: 'literal' in config.json

v1.18.x
Julian Lam 7 years ago
parent 87a5e777f1
commit 943d33ed09

@ -99,6 +99,8 @@ function welcome(req, res) {
var defaults = require('./data/defaults');
res.render('install/index', {
url: nconf.get('url') || (req.protocol + '://' + req.get('host')),
skipGeneralSetup: !!nconf.get('url'),
databases: databases,
skipDatabaseSetup: !!nconf.get('database'),
error: !!res.locals.error,

@ -2,6 +2,7 @@
var async = require('async');
var fs = require('fs');
var url = require('url');
var path = require('path');
var prompt = require('prompt');
var winston = require('winston');
@ -16,9 +17,7 @@ questions.main = [
name: 'url',
description: 'URL used to access this NodeBB',
default:
nconf.get('url') ||
(nconf.get('base_url') ? (nconf.get('base_url') + (nconf.get('use_port') ? ':' + nconf.get('port') : '')) : null) || // backwards compatibility (remove for v0.7.0)
'http://localhost:4567',
nconf.get('url') || 'http://localhost:4567',
pattern: /^http(?:s)?:\/\//,
message: 'Base URL must begin with \'http://\' or \'https://\'',
},
@ -162,7 +161,6 @@ function completeConfigSetup(config, next) {
config.package_manager = nconf.get('package_manager');
}
nconf.overrides(config);
async.waterfall([
function (next) {
require('./database').init(next);
@ -171,6 +169,22 @@ function completeConfigSetup(config, next) {
require('./database').createIndices(next);
},
function (next) {
// Sanity-check/fix url/port
if (!/^http(?:s)?:\/\//.test(config.url)) {
config.url = 'http://' + config.url;
}
var urlObj = url.parse(config.url);
if (urlObj.port) {
config.port = urlObj.port;
}
urlObj.pathname = null;
urlObj.path = null;
config.url = url.format(urlObj);
// ref: https://github.com/indexzero/nconf/issues/300
delete config.type;
install.save(config, next);
},
], next);

@ -33,6 +33,22 @@
You are just a few steps away from launching your own NodeBB forum!
</p>
<form id="install" action="/" method="post">
<!-- IF !skipGeneralSetup -->
<div class="general">
<p>
<h1><small>General Instance Setup</small></h1>
<hr />
</p>
<div class="row input-row">
<div class="col-sm-7 col-xs-12 input-field">
<label for="url">Web Address (URL)</label>
<input type="text" class="form-control" name="url" value="<!-- IF url -->{url}<!-- ENDIF url -->" placeholder="http://localhost:4567" />
</div>
<div class="col-sm-5 help-text" data-help="This is the address that resolves to your NodeBB forum. If no port is specified, <code>4567</code> will be used."></div>
</div>
</div>
<!-- END -->
<div class="admin">
<p>
<h1><small>Create an Administrator account</small></h1>

Loading…
Cancel
Save