Skip to content
On this page

Custom Environment Variables

While node-config used for application configuration recommends to pass environment based configuration as a JSON string in a single NODE_CONFIG environment variable, it is also possible to use other environment variables via the config/custom-environment-variables.json file which looks like this by default:

json
{
  "port": {
    "__name": "PORT",
    "__format": "number"
  },
  "host": "HOSTNAME",
  "authentication": {
    "secret": "FEATHERS_SECRET"
  }
}
{
  "port": {
    "__name": "PORT",
    "__format": "number"
  },
  "host": "HOSTNAME",
  "authentication": {
    "secret": "FEATHERS_SECRET"
  }
}

This sets app.get('port') using the PORT environment variable (if it is available) parsing it as a number and app.get('host') from the HOSTNAME environment variable and the authentication secret to the FEATHERS_SECRET environment variable.

tip

See the node-config custom envrionment variable documentation for more information.

Dotenv

To add support for dotenv .env files run

npm install dotenv --save
npm install dotenv --save

And update src/app.ts as follows:

ts
// dotenv replaces all environmental variables from ~/.env in ~/config/custom-environment-variables.json
import * as dotenv from 'dotenv'
dotenv.config()

import configuration from '@feathersjs/configuration'
// dotenv replaces all environmental variables from ~/.env in ~/config/custom-environment-variables.json
import * as dotenv from 'dotenv'
dotenv.config()

import configuration from '@feathersjs/configuration'
// dotenv replaces all environmental variables from ~/.env in ~/config/custom-environment-variables.json
import * as dotenv from 'dotenv'
dotenv.config()

import configuration from '@feathersjs/configuration'
// dotenv replaces all environmental variables from ~/.env in ~/config/custom-environment-variables.json
import * as dotenv from 'dotenv'
dotenv.config()

import configuration from '@feathersjs/configuration'

important

dotenv.config() needs to run before import configuration from '@feathersjs/configuration'

Released under the MIT License.