config-multipaas

SOLVING CLOUD PLATFORM CONFIGS ONCE AND FOR ALL

Downloads in past

Stats

StarsIssuesVersionUpdatedCreatedSize
config-multipaas
0.2.36 years ago10 years agoMinified + gzip package size for config-multipaas in KB

Readme

config-multipaas npm version Build Status
CONFIG-CHAIN W/ CLOUD-ENV DEFAULTS!
!!AUTOCONFIGURE JS CODE FOR USE ON ANY PLATFORM NODE!!
MultiPaaS
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.
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.SOURCEVARS --------------------|-----------|--------------- IP | 0.0.0.0 | OPENSHIFTNODEJSIP, BINDIP PORT | 8080 | OPENSHIFTNODEJSPORT, PORT HOSTNAME | localhost | OPENSHIFTAPPDNS, HOSTNAME APPNAME | APPNAME | OPENSHIFTAPPNAME, APPNAME MONGODBDBURL | mongodb://127.0.0.1:27017 | OPENSHIFTMONGODBDBURL, MONGODBDBURL POSTGRESQLDBURL | postgresql://127.0.0.1:5432 | OPENSHIFTPOSTGRESQLDBURL, POSTGRESQLDBURL MYSQLDBURL | mysql://127.0.0.1:3306 | OPENSHIFTMYSQLDBURL, MYSQLDBURL