From db8120ef57c500332dc7b3d4eb065bccbb3634ab Mon Sep 17 00:00:00 2001 From: Nadav Ivgi Date: Tue, 5 Feb 2019 09:21:54 +0200 Subject: [PATCH] Accept configuration options as environment variables This also changes the demoSite mode to be off by default. --- app.js | 38 ++++++++++++-------------------------- app/config.js | 6 +++--- app/defaultCredentials.js | 26 +++++++++++++------------- 3 files changed, 28 insertions(+), 42 deletions(-) diff --git a/app.js b/app.js index add7956..73e63ec 100755 --- a/app.js +++ b/app.js @@ -205,33 +205,20 @@ app.runOnStartup = function() { console.log("Running RPC Explorer for " + global.coinConfig.name); - var rpcCredentials = null; - if (config.credentials.rpc) { - rpcCredentials = config.credentials.rpc; - - } else if (process.env.RPC_HOST) { - rpcCredentials = { - host: process.env.RPC_HOST, - port: process.env.RPC_PORT, - username: process.env.RPC_USERNAME, - password: process.env.RPC_PASSWORD - }; - } + var rpcCred = config.credentials.rpc; + console.log("Connecting via RPC to node at " + rpcCred.host + ":" + rpcCred.port); + + global.client = new bitcoinCore({ + host: rpcCred.host, + port: rpcCred.port, + username: rpcCred.username, + password: rpcCred.password, + timeout: 5000 + }); - if (rpcCredentials) { - console.log("Connecting via RPC to node at " + config.credentials.rpc.host + ":" + config.credentials.rpc.port); + coreApi.getNetworkInfo().then(function(getnetworkinfo) { + console.log("Connected via RPC to node. Basic info: version=" + getnetworkinfo.version + ", subversion=" + getnetworkinfo.subversion + ", protocolversion=" + getnetworkinfo.protocolversion + ", services=" + getnetworkinfo.localservices); - global.client = new bitcoinCore({ - host: rpcCredentials.host, - port: rpcCredentials.port, - username: rpcCredentials.username, - password: rpcCredentials.password, - timeout: 5000 - }); - - coreApi.getNetworkInfo().then(function(getnetworkinfo) { - console.log("Connected via RPC to node. Basic info: version=" + getnetworkinfo.version + ", subversion=" + getnetworkinfo.subversion + ", protocolversion=" + getnetworkinfo.protocolversion + ", services=" + getnetworkinfo.localservices); - if (config.credentials.influxdb.active) { global.influxdb = new Influx.InfluxDB(config.credentials.influxdb); @@ -246,7 +233,6 @@ app.runOnStartup = function() { }).catch(function(err) { console.log("Error 923grf20fge: " + err + ", error json: " + JSON.stringify(err)); }); - } if (config.donationAddresses) { var getDonationAddressQrCode = function(coinId) { diff --git a/app/config.js b/app/config.js index 3a87ee8..de6e94c 100644 --- a/app/config.js +++ b/app/config.js @@ -1,6 +1,6 @@ var coins = require("./coins.js"); -var currentCoin = "BTC"; +var currentCoin = process.env.BTCEXP_COIN || "BTC"; var credentials = require("./defaultCredentials.js"); try { @@ -8,8 +8,8 @@ try { } catch (err) {} module.exports = { - cookiePassword: "0x000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f", - demoSite: true, + cookiePassword: process.env.BTCEXP_COOKIE_PASSWORD || "0x000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f", + demoSite: !!process.env.BTCEXP_DEMO, coin: currentCoin, rpcBlacklist:[ diff --git a/app/defaultCredentials.js b/app/defaultCredentials.js index de3af18..633fadf 100644 --- a/app/defaultCredentials.js +++ b/app/defaultCredentials.js @@ -1,31 +1,31 @@ module.exports = { rpc: { - host:"127.0.0.1", - port:8332, - username:"rpc_username", - password:"rpc_password" + host: process.env.BTCEXP_BITCOIND_HOST || "127.0.0.1", + port: process.env.BTCEXP_BITCOIND_PORT || 8332, + username: process.env.BTCEXP_BITCOIND_USER, + password: process.env.BTCEXP_BITCOIND_PASS, }, influxdb:{ - active:false, - host:"127.0.0.1", - port:8086, - database:"influxdb", - username:"admin", - password:"admin" + active: !!process.env.BTCEXP_INFLUXDB_ENABLED, + host: process.env.BTCEXP_INFLUXDB_HOST || "127.0.0.1", + port: process.env.BTCEXP_INFLUXDB_PORT || 8086, + database: process.env.BTCEXP_INFLUXDB_DB || "influxdb", + username: process.env.BTCEXP_INFLUXDB_USER || "admin", + password: process.env.BTCEXP_INFLUXDB_PASS || "admin" }, // optional: enter your api access key from ipstack.com below // to include a map of the estimated locations of your node's // peers // format: "ID_FROM_IPSTACK" - ipStackComApiAccessKey:null, + ipStackComApiAccessKey: process.env.BTCEXP_IPSTACK_KEY, // optional: GA tracking code // format: "UA-..." - googleAnalyticsTrackingId:null, + googleAnalyticsTrackingId: process.env.BTCEXP_GANALYTICS_TRACKING, // optional: sentry.io error-tracking url // format: "SENTRY_IO_URL" - sentryUrl:null, + sentryUrl: process.env.BTCEXP_SENTRY_URL, };