mirror of
https://github.com/NodeBB/NodeBB.git
synced 2025-10-27 09:06:15 +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) {
|
function welcome(req, res) {
|
||||||
const dbs = ['redis', 'mongo', 'postgres'];
|
const dbs = ['mongo', 'redis', 'postgres'];
|
||||||
const databases = dbs.map((databaseName) => {
|
const databases = dbs.map((databaseName) => {
|
||||||
const questions = require(`../src/database/${databaseName}`).questions.filter(question => question && !question.hideOnWebInstall);
|
const questions = require(`../src/database/${databaseName}`).questions.filter(question => question && !question.hideOnWebInstall);
|
||||||
|
|
||||||
@@ -146,29 +146,28 @@ function install(req, res) {
|
|||||||
}
|
}
|
||||||
req.setTimeout(0);
|
req.setTimeout(0);
|
||||||
installing = true;
|
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 database = nconf.get('database') || req.body.database || 'mongo';
|
||||||
const pushToRoot = function (parentKey, key) {
|
const setupEnvVars = {
|
||||||
setupEnvVars[`${parentKey}__${key}`] = setupEnvVars[parentKey][key];
|
...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('Starting setup process');
|
||||||
winston.info(setupEnvVars);
|
winston.info(JSON.stringify(setupEnvVars, null, 4));
|
||||||
launchUrl = setupEnvVars.url;
|
launchUrl = setupEnvVars.NODEBB_URL;
|
||||||
|
|
||||||
const child = require('child_process').fork('app', ['--setup'], {
|
const child = require('child_process').fork('app', ['--setup'], {
|
||||||
env: setupEnvVars,
|
env: setupEnvVars,
|
||||||
|
|||||||
@@ -493,7 +493,7 @@ async function enableDefaultPlugins() {
|
|||||||
];
|
];
|
||||||
let customDefaults = nconf.get('defaultplugins') || nconf.get('defaultPlugins');
|
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) {
|
if (customDefaults && customDefaults.length) {
|
||||||
try {
|
try {
|
||||||
|
|||||||
@@ -100,8 +100,8 @@
|
|||||||
<div class="col-sm-7 col-xs-12 input-field">
|
<div class="col-sm-7 col-xs-12 input-field">
|
||||||
<label for="install:database">Database Type</label>
|
<label for="install:database">Database Type</label>
|
||||||
<select id="install:database" class="form-control" name="database">
|
<select id="install:database" class="form-control" name="database">
|
||||||
<option value="redis">Redis</option>
|
|
||||||
<option value="mongo">MongoDB</option>
|
<option value="mongo">MongoDB</option>
|
||||||
|
<option value="redis">Redis</option>
|
||||||
<option value="postgres">PostgreSQL</option>
|
<option value="postgres">PostgreSQL</option>
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
Reference in New Issue
Block a user