cloud-env
DefinitelyTyped icon, indicating that this package has TypeScript declarations provided by the separate @types/cloud-env package

0.2.3 • Public • Published

cloud-env npm version Build Status

!!AUTOCONFIGURE JS CODE FOR USE ON ANY PLATFORM NODE!!

cloud-env provides a vendor-neutral interface for autoconfiguring your app, making it portable across all major cloud hosting platforms / deployment targets:

It works by checking the system environment (process.env) for known configuration strings, normalizing the results into a well-defined list.

npm stats

Dependency Check monthly downloads license

Installation

The resulting config object contains the configuration settings that cloud-env was able to detect - including the server PORT number and bind IP address:

  //npm install cloud-env
  var config = require('cloud-env')

See the Configuration Strings list for more information about the settings that this module will automatically resolve.

Listen up

Make sure to pass config.PORT and config.IP to your server's listen function:

app.listen(config.PORT, config.IP, function () {
  console.log("Listening on "+config.IP+", port "+config.PORT)
});

If host-provided configs are not found, local development defaults are returned - allowing you to configure once, and run anywhere.

Provide your own defaults

Use .get('KEYNAME', default_value) to fetch keys by name, optionally providing your own default values:

port = config.get('PORT', 8000)
bind_address = config.get('IP','127.0.0.1')
app.listen(port, bind_address, function () {
  console.log("Listening on " + bind_address + ", port " + port)
});

The above example will default to port 8000 instead of 8080, and will attempt to bind on '127.0.0.0.1' instead of '0.0.0.0'.

Configuration Strings

Reliable configuration settings for local dev AND for "the cloud":

config.NAME 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
MONGODB_DB_HOST 127.0.0.1 OPENSHIFT_MONGODB_DB_HOST, MONGODB_DB_HOST
MONGODB_DB_PORT 27017 OPENSHIFT_MONGODB_DB_PORT, MONGODB_DB_PORT
MONGODB_DB_USERNAME undefined OPENSHIFT_MONGODB_DB_USERNAME, MONGODB_DB_USERNAME
MONGODB_DB_PASSWORD undefined OPENSHIFT_MONGODB_DB_PASSWORD, MONGODB_DB_PASSWORD
POSTGRESQL_DB_URL postgresql://127.0.0.1:5432 OPENSHIFT_POSTGRESQL_DB_URL, POSTGRESQL_DB_URL
POSTGRESQL_DB_HOST 127.0.0.1 OPENSHIFT_POSTGRESQL_DB_HOST, POSTGRESQL_DB_HOST
POSTGRESQL_DB_PORT 5432 OPENSHIFT_POSTGRESQL_DB_PORT, POSTGRESQL_DB_PORT
POSTGRESQL_DB_USERNAME undefined OPENSHIFT_POSTGRESQL_DB_USERNAME, POSTGRESQL_DB_USERNAME
POSTGRESQL_DB_PASSWORD undefined OPENSHIFT_POSTGRESQL_DB_PASSWORD, POSTGRESQL_DB_PASSWORD
MYSQL_DB_URL mysql://127.0.0.1:3306 OPENSHIFT_MYSQL_DB_URL, MYSQL_DB_URL
MYSQL_DB_HOST 127.0.0.1 OPENSHIFT_MYSQL_DB_HOST, MYSQL_DB_HOST
MYSQL_DB_PORT 3306 OPENSHIFT_MYSQL_DB_PORT, MYSQL_DB_PORT
MYSQL_DB_USERNAME undefined OPENSHIFT_MYSQL_DB_USERNAME, MYSQL_DB_USERNAME
MYSQL_DB_PASSWORD undefined OPENSHIFT_MYSQL_DB_PASSWORD, MYSQL_DB_PASSWORD

Advanced Configuration

See config-multipaas and the related config-chain API docs for a more advanced configuration solution that incorporates the same set of cloud configuration keys.

MultiPaaS

Package Sidebar

Install

npm i cloud-env

Weekly Downloads

428

Version

0.2.3

License

MIT

Unpacked Size

11.9 kB

Total Files

5

Last publish

Collaborators

  • ryanj