Nanobot: Polygonal Mascot
Share your code. npm Orgs help your team discover, share, and reuse code. Create a free org »

config-multipaas

0.2.2 • Public • Published

config-multipaas npm version Build Status

CONFIG-CHAIN W/ CLOUD-ENV DEFAULTS!

Config-multiPaaS is a config-chain wrapper that includes automatic support for several popular cloud deployment targets (OpenShift, Heroku, Modulus).

MultiPaaS

It works by checking the system environment for known configuration strings, normalizing the results into a vendor-neutral list.

npm stats

Dependency Check monthly downloads license

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

install

npm i config-multipaas

Downloadsweekly downloads

30

version

0.2.2

license

MIT

homepage

github.com

repository

Gitgithub

last publish

collaborators

  • avatar