Skip to content

Configuration

All Orvanta components are configured via environment variables, plus a smaller set of instance-level settings that live in the database (editable from Instance settings once the instance is up). The reference below covers the environment variables.

VariableRequiredDefaultDescription
DATABASE_URLPostgreSQL connection string (datastore + job queue). postgres://user:pass@host:5432/orvanta
BASE_URLPublic URL of your Orvanta instance, e.g. https://orvanta.example.com. Used to build callback and webhook URLs.
BASE_INTERNAL_URLInternal URL other components use to reach the API server (service-to-service calls) when it differs from BASE_URL, e.g. a cluster-internal Service name.
PORT / BACKEND_PORT8000Port the API server listens on.
RUST_LOGinfoStandard Rust log-filter syntax, e.g. info or orvanta_api=debug,info.

There is no operator-set signing secret: the instance generates its own JWT-signing secret on first boot and stores it in the database, refreshing it automatically — nothing to provision or rotate by hand.

Object storage (S3-compatible, for large job results and workspace artefacts) is configured from Instance settings after boot, not via environment variables — see Object storage in Orvanta.

VariableRequiredDefaultDescription
DATABASE_URLSame as API server.
BASE_INTERNAL_URLSame as API server (optional).
NUM_WORKERS1Number of worker threads inside this process. Raising it above 1 outside of native/dedicated-worker mode also requires I_ACK_NUM_WORKERS_IS_UNSAFE=1; scaling by running more worker containers/pods is the recommended path instead.
WORKER_TAGSComma-separated list of tags this worker pulls jobs for (see Worker groups).
WORKER_GROUPdefaultNamed worker-group config profile this worker process belongs to.
version: '3.9'
services:
api:
image: ghcr.io/orvanta-cloud/orvanta-api:latest
env_file: .env
ports:
- "8000:8000"
depends_on:
- postgres
worker:
image: ghcr.io/orvanta-cloud/orvanta-worker:latest
env_file: .env
depends_on:
- postgres
postgres:
image: postgres:16-alpine
environment:
POSTGRES_DB: orvanta
POSTGRES_USER: orvanta
POSTGRES_PASSWORD: changeme
volumes:
- postgres_data:/var/lib/postgresql/data
volumes:
postgres_data:

Orvanta does not handle TLS termination directly. Use a reverse proxy such as Caddy, nginx, or Traefik in front of the API server. All traffic to APP_URL should be HTTPS.