Configuration

convox.yml

convox.yml is a manifest used to describe your application and all of its infrastructure needs.

environment:
  - COMPANY=Convox
  - DOCS_URL
resources:
  database:
    type: postgres
    options:
      storage: 200
  queue:
    type: redis
services:
  api:
    build: .
    command: bin/api
    environment:
      - ENCRYPTION_KEY
    health: /check
    internal: true
    port: 3000
    resources:
      - database
      - queue
    termination:
      grace: 45
    test: make test
    timeout: 120
    deployment:
      minimum: 50
      maximum: 200
  web:
    build: .
    command: bin/web
    environment:
      - SESSION_SECRET
    port: 3000
  worker:
    build: ./worker
    command: bin/worker
    environment:
      - ENCRYPTION_KEY
    resources:
      - database
      - queue
  metrics:
    agent: true
    image: awesome/metrics
timers:
  cleanup:
    schedule: "0 3 * * * *"
    command: bin/cleanup
    service: worker

environment

The top-level environment section defines Environment Variables that are available to every Service.

environment:
  - COMPANY=Convox  # has a default value of "Convox"
  - DOCS_URL        # must be set before deployment

See Environment Variables for configuration options.

resources

The resources section defines network-accessible Resources such as databases that can be made available to Services.

resources:
  database:
    type: postgres
    options:
      storage: 200

See Resource for configuration options.

services

The services section horizontally-scalable Services that can be optionally placed behind a load balancer.

services:
  api:
    build: .
    command: bin/api
    environment:
      - ENCRYPTION_KEY
    health: /check
    internal: true
    port: 3000
    resources:
      - database
      - queue
    test: make test

See Service for configuration options.

timers

The timers section defines Processes that run periodically on a set interval.

timers:
  cleanup:
    schedule: "0 3 * * * *"
    command: bin/cleanup
    service: worker

See Timer for configuration options.