config-multipaas
v0.2.3
Published
SOLVING CLOUD PLATFORM CONFIGS ONCE AND FOR ALL
Downloads
58
Maintainers
Readme
CONFIG-CHAIN W/ CLOUD-ENV DEFAULTS!
!!AUTOCONFIGURE JS CODE FOR USE ON ANY PLATFORM NODE!!
Config-multiPaaS is a config-chain
wrapper that includes autoconfiguration support for all major cloud hosting platforms and deployment targets:
It works by checking the system environment for known configuration strings, normalizing the results into a consistent list.
Setup
Configuration objects generated by config-multipaas
are valid instances of config-chain
, making it easy to extend, or to use as drop-in replacement:
//npm install --save config-multipaas
var cc = require('config-multipaas')
// Merge multiple layers of configuration down into a single set:
var config_overrides = { foo: "bar" } // override values should be provided first
var config = cc(config_overrides) // cloud configs will be automatically resolved
.add({ PORT: 8000 }) // low-priority defaults should be appended last
The above example will produce a default PORT
value of 8000
when autoconfiguration strings are unavailable - as in local development environments. On all platforms, foo
will be resolved as "bar"
.
See the config-chain README
for advanced usage notes, and the below list of configuration strings for more information about cloud-provided configs.
Listen up
Make sure to pass config.get('PORT')
and config.get('IP')
to your app's listen
function:
app.listen(config.get('PORT'), config.get('IP'), function () {
console.log("Listening on "+config.get('IP')+", port "+config.get('PORT'))
});
If host-provided configs are not found, local development defaults are returned - allowing you to configure once, and run anywhere.
Configuration Strings
Consistent, vendor-neutral, server configuration strings provoded by cloud-env
:
config.get(KEYNAME) | DEFAULT | process.env.SOURCE_VARS --------------------|-----------|--------------- IP | 0.0.0.0 | OPENSHIFT_NODEJS_IP, BIND_IP PORT | 8080 | OPENSHIFT_NODEJS_PORT, PORT HOSTNAME | localhost | OPENSHIFT_APP_DNS, HOSTNAME APP_NAME | APP_NAME | OPENSHIFT_APP_NAME, APP_NAME MONGODB_DB_URL | mongodb://127.0.0.1:27017 | OPENSHIFT_MONGODB_DB_URL, MONGODB_DB_URL POSTGRESQL_DB_URL | postgresql://127.0.0.1:5432 | OPENSHIFT_POSTGRESQL_DB_URL, POSTGRESQL_DB_URL MYSQL_DB_URL | mysql://127.0.0.1:3306 | OPENSHIFT_MYSQL_DB_URL, MYSQL_DB_URL