0.2.3 • Published 6 years ago

cloud-env v0.2.3

Weekly downloads
655
License
MIT
Repository
github
Last release
6 years ago

#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.NAMEDEFAULTprocess.env.SOURCE_VARS
IP0.0.0.0OPENSHIFT_NODEJS_IP, BIND_IP
PORT8080OPENSHIFT_NODEJS_PORT, PORT
HOSTNAMElocalhostOPENSHIFT_APP_DNS, HOSTNAME
APP_NAMEAPP_NAMEOPENSHIFT_APP_NAME, APP_NAME
MONGODB_DB_URLmongodb://127.0.0.1:27017OPENSHIFT_MONGODB_DB_URL, MONGODB_DB_URL
MONGODB_DB_HOST127.0.0.1OPENSHIFT_MONGODB_DB_HOST, MONGODB_DB_HOST
MONGODB_DB_PORT27017OPENSHIFT_MONGODB_DB_PORT, MONGODB_DB_PORT
MONGODB_DB_USERNAMEundefinedOPENSHIFT_MONGODB_DB_USERNAME, MONGODB_DB_USERNAME
MONGODB_DB_PASSWORDundefinedOPENSHIFT_MONGODB_DB_PASSWORD, MONGODB_DB_PASSWORD
POSTGRESQL_DB_URLpostgresql://127.0.0.1:5432OPENSHIFT_POSTGRESQL_DB_URL, POSTGRESQL_DB_URL
POSTGRESQL_DB_HOST127.0.0.1OPENSHIFT_POSTGRESQL_DB_HOST, POSTGRESQL_DB_HOST
POSTGRESQL_DB_PORT5432OPENSHIFT_POSTGRESQL_DB_PORT, POSTGRESQL_DB_PORT
POSTGRESQL_DB_USERNAMEundefinedOPENSHIFT_POSTGRESQL_DB_USERNAME, POSTGRESQL_DB_USERNAME
POSTGRESQL_DB_PASSWORDundefinedOPENSHIFT_POSTGRESQL_DB_PASSWORD, POSTGRESQL_DB_PASSWORD
MYSQL_DB_URLmysql://127.0.0.1:3306OPENSHIFT_MYSQL_DB_URL, MYSQL_DB_URL
MYSQL_DB_HOST127.0.0.1OPENSHIFT_MYSQL_DB_HOST, MYSQL_DB_HOST
MYSQL_DB_PORT3306OPENSHIFT_MYSQL_DB_PORT, MYSQL_DB_PORT
MYSQL_DB_USERNAMEundefinedOPENSHIFT_MYSQL_DB_USERNAME, MYSQL_DB_USERNAME
MYSQL_DB_PASSWORDundefinedOPENSHIFT_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