Logo

Usage Examples

Heroku

Heroku reads runtime configuration from config vars. Pipe envv generate --type=envstraight into heroku config:set to sync them in one shot.

One-Off Sync

envv generate --type=env -e production | xargs heroku config:set --app my-app

Replace my-app with your Heroku app name.

CI Sync (GitHub Actions)

- name: Sync env to Heroku
  env:
    ENVVAULT_TOKEN: ${{ secrets.ENVVAULT_TOKEN }}
    HEROKU_API_KEY: ${{ secrets.HEROKU_API_KEY }}
  run: |
    envv generate --type=env -e production | \
      xargs heroku config:set --app my-app

Buildpack Approach

If you prefer to keep ENVVAULT_TOKEN as the only Heroku config var, fetch values at boot:

# Procfile
web: envv run -e production -- npm start

# Add the EnvVault buildpack:
heroku buildpacks:add envvault/cli --app my-app

Pipelines & Review Apps

For review apps, use a per-PR EnvVault environment and pick it via Heroku's HEROKU_APP_NAME at build time:

# app.json — postdeploy
"scripts": {
  "postdeploy": "envv run -e \"${HEROKU_APP_NAME:-development}\" -- npm run db:migrate"
}