Getting Started

How it Works

Envoy plugins are stateless applications that respond to events sent from the Envoy Application. You can subscribe workers to jobs, setup routes, create cron jobs or listen for events.

Most plugins are deployed to AWS Lambda, but you can also run a plugin on any machine supporting NodeJS as long as it is available to the internet.

Plugins are written with the help of an SDK that abstracts away common request and response patterns from the underlying platform (like Lambda).


  1. Familiarity with your terminal or command prompt.

  2. Javascript / NodeJS

  3. NodeJS

  4. Ruby

Machine Setup

  1. If you haven't already, create a GitHub personal access token.

  2. Clone the following repositories:

  3. Install the CLI following the instructions in its README.

Eventually, we should have a docker-compose setup to run these locally. Until then, here's what you need to have running:

  • Node.js (8.10)

    • Recommendation: install via NVM

  • Ruby (2.4.1)

    • Recommendation: install via RVM

  • Postgres (latest?)

    • Recommendation: install via Homebrew with brew install postgres.

    • Homebrew automatically creates a superuser based on your machine’s user’s name. If you want to be more directly compatible with the default settings of the above projects, create a superuser called “postgres” (no password).

    • Both Billing and Envoy Web depend on the same Postgres install.

  • Redis (latest?)

    • Easiest to install as a Docker container.


Start with Billing, then Envoy Web, then Garaje (ordered by dependency on each other).

For all:

  1. Run cp env.{sample|example} .env

    1. Most variables don’t need to be changed.

    2. Make sure your database and redis variables reflect your machine’s.

For Billing and Envoy Web (Billing first, then Envoy Web):

  1. Run bundle install

  2. Run rails db:setup

  3. Run ./start_server

For Garaje:

  1. Install Yarn

    1. Run brew install yarn --without-node

  2. Install pre-commit

    1. Run brew install pre-commit

    2. Run pre-commit

  3. Run yarn install

  4. Run npm start (which runs ember serve)