‚̧Narnia's Psychedelic Mushrooms
    Have ideas to improve npm?Join in the discussion! ¬Ľ

    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

    Install

    npm i cloud-env

    DownloadsWeekly Downloads

    820

    Version

    0.2.3

    License

    MIT

    Unpacked Size

    11.9 kB

    Total Files

    5

    Last publish

    Collaborators

    • avatar