2014-01-06 08:33:58 -08:00
|
|
|
'use strict';
|
|
|
|
|
2014-09-15 20:35:45 -07:00
|
|
|
var path = require('path');
|
|
|
|
var fs = require('fs');
|
|
|
|
var mkdirp = require('mkdirp');
|
|
|
|
|
|
|
|
var rootPath = path.normalize(__dirname + '/..'),
|
2014-07-29 07:23:30 -07:00
|
|
|
env,
|
|
|
|
db,
|
|
|
|
port,
|
|
|
|
b_port,
|
|
|
|
p2p_port;
|
2014-02-13 08:16:41 -08:00
|
|
|
|
2014-09-18 06:01:15 -07:00
|
|
|
var packageStr = fs.readFileSync('../package.json');
|
2014-05-26 09:29:52 -07:00
|
|
|
var version = JSON.parse(packageStr).version;
|
|
|
|
|
2014-04-17 05:32:49 -07:00
|
|
|
|
|
|
|
function getUserHome() {
|
2014-07-29 07:23:30 -07:00
|
|
|
return process.env[(process.platform == 'win32') ? 'USERPROFILE' : 'HOME'];
|
2014-04-17 05:32:49 -07:00
|
|
|
}
|
|
|
|
|
2014-07-29 07:23:30 -07:00
|
|
|
var home = process.env.INSIGHT_DB || (getUserHome() + '/.insight');
|
2014-04-17 05:32:49 -07:00
|
|
|
|
2014-02-13 08:16:41 -08:00
|
|
|
if (process.env.INSIGHT_NETWORK === 'livenet') {
|
|
|
|
env = 'livenet';
|
2014-04-17 05:32:49 -07:00
|
|
|
db = home;
|
2014-02-13 08:20:19 -08:00
|
|
|
port = '3000';
|
2014-02-13 08:16:41 -08:00
|
|
|
b_port = '8332';
|
|
|
|
p2p_port = '8333';
|
2014-07-29 07:23:30 -07:00
|
|
|
} else {
|
2014-02-13 08:16:41 -08:00
|
|
|
env = 'testnet';
|
2014-04-17 05:32:49 -07:00
|
|
|
db = home + '/testnet';
|
2014-02-26 07:05:30 -08:00
|
|
|
port = '3001';
|
|
|
|
b_port = '18332';
|
2014-02-13 08:16:41 -08:00
|
|
|
p2p_port = '18333';
|
|
|
|
}
|
2014-09-15 21:21:04 -07:00
|
|
|
port = parseInt(process.env.INSIGHT_PORT) || port;
|
2014-01-31 10:00:48 -08:00
|
|
|
|
2014-05-13 10:02:19 -07:00
|
|
|
|
2014-07-29 07:23:30 -07:00
|
|
|
switch (process.env.NODE_ENV) {
|
2014-01-31 10:00:48 -08:00
|
|
|
case 'production':
|
2014-02-13 08:16:41 -08:00
|
|
|
env += '';
|
2014-02-11 11:30:58 -08:00
|
|
|
break;
|
2014-01-31 10:00:48 -08:00
|
|
|
case 'test':
|
2014-02-13 08:16:41 -08:00
|
|
|
env += ' - test environment';
|
2014-02-11 11:30:58 -08:00
|
|
|
break;
|
2014-01-31 10:00:48 -08:00
|
|
|
default:
|
2014-02-13 08:16:41 -08:00
|
|
|
env += ' - development';
|
2014-02-11 11:30:58 -08:00
|
|
|
break;
|
2014-01-31 10:00:48 -08:00
|
|
|
}
|
2014-02-11 11:30:58 -08:00
|
|
|
|
2014-02-25 06:10:00 -08:00
|
|
|
var network = process.env.INSIGHT_NETWORK || 'testnet';
|
|
|
|
|
2014-02-11 13:18:01 -08:00
|
|
|
var dataDir = process.env.BITCOIND_DATADIR;
|
|
|
|
var isWin = /^win/.test(process.platform);
|
|
|
|
var isMac = /^darwin/.test(process.platform);
|
|
|
|
var isLinux = /^linux/.test(process.platform);
|
|
|
|
if (!dataDir) {
|
|
|
|
if (isWin) dataDir = '%APPDATA%\\Bitcoin\\';
|
|
|
|
if (isMac) dataDir = process.env.HOME + '/Library/Application Support/Bitcoin/';
|
|
|
|
if (isLinux) dataDir = process.env.HOME + '/.bitcoin/';
|
|
|
|
}
|
2014-02-25 06:10:00 -08:00
|
|
|
dataDir += network === 'testnet' ? 'testnet3' : '';
|
2014-02-11 13:18:01 -08:00
|
|
|
|
2014-05-30 10:10:32 -07:00
|
|
|
var safeConfirmations = process.env.INSIGHT_SAFE_CONFIRMATIONS || 6;
|
2014-07-29 07:23:30 -07:00
|
|
|
var ignoreCache = process.env.INSIGHT_IGNORE_CACHE || 0;
|
2014-05-26 09:29:52 -07:00
|
|
|
|
|
|
|
|
|
|
|
var bitcoindConf = {
|
2014-07-29 07:23:30 -07:00
|
|
|
protocol: process.env.BITCOIND_PROTO || 'http',
|
2014-05-26 09:29:52 -07:00
|
|
|
user: process.env.BITCOIND_USER || 'user',
|
|
|
|
pass: process.env.BITCOIND_PASS || 'pass',
|
|
|
|
host: process.env.BITCOIND_HOST || '127.0.0.1',
|
|
|
|
port: process.env.BITCOIND_PORT || b_port,
|
|
|
|
p2pPort: process.env.BITCOIND_P2P_PORT || p2p_port,
|
2014-07-25 14:29:00 -07:00
|
|
|
p2pHost: process.env.BITCOIND_P2P_HOST || process.env.BITCOIND_HOST || '127.0.0.1',
|
2014-05-26 09:29:52 -07:00
|
|
|
dataDir: dataDir,
|
|
|
|
// DO NOT CHANGE THIS!
|
|
|
|
disableAgent: true
|
|
|
|
};
|
|
|
|
|
2014-09-02 07:05:57 -07:00
|
|
|
var enableMonitor = process.env.ENABLE_MONITOR === 'true';
|
2014-09-01 07:36:25 -07:00
|
|
|
var enableCleaner = process.env.ENABLE_CLEANER === 'true';
|
2014-08-20 09:05:27 -07:00
|
|
|
var enableMailbox = process.env.ENABLE_MAILBOX === 'true';
|
2014-08-20 11:40:56 -07:00
|
|
|
var enableRatelimiter = process.env.ENABLE_RATELIMITER === 'true';
|
2014-08-20 10:10:38 -07:00
|
|
|
var loggerLevel = process.env.LOGGER_LEVEL || 'info';
|
2014-08-21 10:45:32 -07:00
|
|
|
var enableHTTPS = process.env.ENABLE_HTTPS === 'true';
|
2014-04-17 05:32:49 -07:00
|
|
|
|
2014-07-29 07:23:30 -07:00
|
|
|
if (!fs.existsSync(db)) {
|
2014-09-15 20:35:45 -07:00
|
|
|
mkdirp.sync(db);
|
2014-04-17 05:32:49 -07:00
|
|
|
}
|
|
|
|
|
2014-01-31 09:20:56 -08:00
|
|
|
module.exports = {
|
2014-09-02 07:05:57 -07:00
|
|
|
enableMonitor: enableMonitor,
|
2014-09-02 07:07:00 -07:00
|
|
|
monitor: require('../plugins/config-monitor.js'),
|
2014-09-01 07:36:25 -07:00
|
|
|
enableCleaner: enableCleaner,
|
|
|
|
cleaner: require('../plugins/config-cleaner.js'),
|
2014-08-20 09:05:27 -07:00
|
|
|
enableMailbox: enableMailbox,
|
2014-09-01 07:36:25 -07:00
|
|
|
mailbox: require('../plugins/config-mailbox.js'),
|
2014-08-20 11:40:56 -07:00
|
|
|
enableRatelimiter: enableRatelimiter,
|
2014-09-01 07:36:25 -07:00
|
|
|
ratelimiter: require('../plugins/config-ratelimiter.js'),
|
2014-08-20 10:10:38 -07:00
|
|
|
loggerLevel: loggerLevel,
|
2014-08-21 10:45:32 -07:00
|
|
|
enableHTTPS: enableHTTPS,
|
2014-07-30 12:23:04 -07:00
|
|
|
version: version,
|
2014-01-31 09:20:56 -08:00
|
|
|
root: rootPath,
|
2014-02-26 11:27:22 -08:00
|
|
|
publicPath: process.env.INSIGHT_PUBLIC_PATH || false,
|
2014-01-31 10:00:48 -08:00
|
|
|
appName: 'Insight ' + env,
|
2014-02-24 20:44:19 -08:00
|
|
|
apiPrefix: '/api',
|
2014-02-11 11:30:58 -08:00
|
|
|
port: port,
|
|
|
|
leveldb: db,
|
2014-07-29 07:23:30 -07:00
|
|
|
bitcoind: bitcoindConf,
|
2014-02-25 06:10:00 -08:00
|
|
|
network: network,
|
2014-01-31 09:20:56 -08:00
|
|
|
disableP2pSync: false,
|
|
|
|
disableHistoricSync: false,
|
2014-02-26 11:27:22 -08:00
|
|
|
poolMatchFile: rootPath + '/etc/minersPoolStrings.json',
|
2014-02-05 10:59:44 -08:00
|
|
|
|
|
|
|
// Time to refresh the currency rate. In minutes
|
2014-02-26 07:05:30 -08:00
|
|
|
currencyRefresh: 10,
|
|
|
|
keys: {
|
2014-02-26 11:27:22 -08:00
|
|
|
segmentio: process.env.INSIGHT_SEGMENTIO_KEY
|
2014-05-25 13:34:49 -07:00
|
|
|
},
|
2014-05-26 09:29:52 -07:00
|
|
|
safeConfirmations: safeConfirmations, // PLEASE NOTE THAT *FULL RESYNC* IS NEEDED TO CHANGE safeConfirmations
|
2014-05-30 10:10:32 -07:00
|
|
|
ignoreCache: ignoreCache,
|
2014-09-18 06:01:15 -07:00
|
|
|
};
|