!!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.
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-envvar config =
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;
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 = configbind_address = configapp;
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.