mirror of
https://github.com/NodeBB/NodeBB.git
synced 2025-10-26 16:46:12 +01:00
fix: #10334, use the correct env vars for web install
This commit is contained in:
@@ -113,7 +113,7 @@ function ping(req, res) {
|
||||
}
|
||||
|
||||
function welcome(req, res) {
|
||||
const dbs = ['redis', 'mongo', 'postgres'];
|
||||
const dbs = ['mongo', 'redis', 'postgres'];
|
||||
const databases = dbs.map((databaseName) => {
|
||||
const questions = require(`../src/database/${databaseName}`).questions.filter(question => question && !question.hideOnWebInstall);
|
||||
|
||||
@@ -146,29 +146,28 @@ function install(req, res) {
|
||||
}
|
||||
req.setTimeout(0);
|
||||
installing = true;
|
||||
const setupEnvVars = nconf.get();
|
||||
for (const [key, value] of Object.entries(req.body)) {
|
||||
if (!process.env.hasOwnProperty(key)) {
|
||||
setupEnvVars[key.replace(':', '__')] = value;
|
||||
}
|
||||
}
|
||||
|
||||
// Flatten any objects in setupEnvVars
|
||||
const pushToRoot = function (parentKey, key) {
|
||||
setupEnvVars[`${parentKey}__${key}`] = setupEnvVars[parentKey][key];
|
||||
const database = nconf.get('database') || req.body.database || 'mongo';
|
||||
const setupEnvVars = {
|
||||
...process.env,
|
||||
NODEBB_URL: nconf.get('url') || req.body.url || (`${req.protocol}://${req.get('host')}`),
|
||||
NODEBB_PORT: nconf.get('port') || 4567,
|
||||
NODEBB_ADMIN_USERNAME: nconf.get('admin:username') || req.body['admin:username'],
|
||||
NODEBB_ADMIN_PASSWORD: nconf.get('admin:password') || req.body['admin:password'],
|
||||
NODEBB_ADMIN_EMAIL: nconf.get('admin:email') || req.body['admin:email'],
|
||||
NODEBB_DB: database,
|
||||
NODEBB_DB_HOST: nconf.get(`${database}:host`) || req.body[`${database}:host`],
|
||||
NODEBB_DB_PORT: nconf.get(`${database}:port`) || req.body[`${database}:port`],
|
||||
NODEBB_DB_USER: nconf.get(`${database}:username`) || req.body[`${database}:username`],
|
||||
NODEBB_DB_PASSWORD: nconf.get(`${database}:password`) || req.body[`${database}:password`],
|
||||
NODEBB_DB_NAME: nconf.get(`${database}:database`) || req.body[`${database}:database`],
|
||||
NODEBB_DB_SSL: nconf.get(`${database}:ssl`) || req.body[`${database}:ssl`],
|
||||
defaultPlugins: JSON.stringify(nconf.get('defaultplugins') || nconf.get('defaultPlugins') || []),
|
||||
};
|
||||
for (const [parentKey, value] of Object.entries(setupEnvVars)) {
|
||||
if (typeof value === 'object' && value !== null && !Array.isArray(value)) {
|
||||
Object.keys(value).forEach(key => pushToRoot(parentKey, key));
|
||||
delete setupEnvVars[parentKey];
|
||||
} else if (Array.isArray(value)) {
|
||||
setupEnvVars[parentKey] = JSON.stringify(value);
|
||||
}
|
||||
}
|
||||
|
||||
winston.info('Starting setup process');
|
||||
winston.info(setupEnvVars);
|
||||
launchUrl = setupEnvVars.url;
|
||||
winston.info(JSON.stringify(setupEnvVars, null, 4));
|
||||
launchUrl = setupEnvVars.NODEBB_URL;
|
||||
|
||||
const child = require('child_process').fork('app', ['--setup'], {
|
||||
env: setupEnvVars,
|
||||
|
||||
@@ -493,7 +493,7 @@ async function enableDefaultPlugins() {
|
||||
];
|
||||
let customDefaults = nconf.get('defaultplugins') || nconf.get('defaultPlugins');
|
||||
|
||||
winston.info('[install/defaultPlugins] customDefaults', customDefaults);
|
||||
winston.info(`[install/defaultPlugins] customDefaults ${String(customDefaults)}`);
|
||||
|
||||
if (customDefaults && customDefaults.length) {
|
||||
try {
|
||||
|
||||
@@ -100,8 +100,8 @@
|
||||
<div class="col-sm-7 col-xs-12 input-field">
|
||||
<label for="install:database">Database Type</label>
|
||||
<select id="install:database" class="form-control" name="database">
|
||||
<option value="redis">Redis</option>
|
||||
<option value="mongo">MongoDB</option>
|
||||
<option value="redis">Redis</option>
|
||||
<option value="postgres">PostgreSQL</option>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user