import _ from 'lodash' import nconf from 'nconf-lite' import { readFileSync } from 'fs' // Helper method for global usage. nconf.inTest = () => nconf.get('NODE_ENV') === 'test' // Config follow the following priority check order: // 1. Enviroment variables // 2. package.json // 3. config/config.json // 4. config/config.default.json // Load enviroment variables as first priority nconf.env({ separator: '__', whitelist: [ 'DATABASE_URL', 'NODE_ENV', 'server__port', 'server__host', 'knex__connection__host', 'knex__connection__user', 'knex__connection__database', 'knex__connection__password', 'knex__connectionslave__host', 'knex__connectionslave__user', 'knex__connectionslave__database', 'knex__connectionslave__password', 'upload__baseurl', 'upload__port', 'upload__host', 'upload__name', 'upload__secret', 'bunyan__name', 'frontend__url', 'jwt__secret', 'sessionsecret', 'bcrypt', 'name', 'NODE_VERSION', ], parseValues: true, }) // Load empty overrides that can be overwritten later nconf.overrides({}) nconf.defaults({ "NODE_ENV": "development", "knex": { "client": "pg", "connection": { "host" : "127.0.0.1", "user" : "postgres", "password" : "postgres", "database" : "nfpmoe" }, "connectionslave": null, "migrations": { }, "acquireConnectionTimeout": 10000 }, "frontend": { "url": "http://beta01.nfp.moe" }, "jwt": { "secret": "this-is-my-secret", "options": { "expiresIn": 604800 } }, "sessionsecret": "this-is-session-secret-lol", "bcrypt": 5, "fileSize": 524288000, "upload": { "baseurl": "https://cdn.nfp.is", "port": "2111", "host": "storage01.nfp.is", "name": "nfpmoe-dev", "secret": "nfpmoe-dev" } }) export default nconf