!!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.
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.
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.
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'.
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 |
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.