Configuration
All Orvanta components are configured via environment variables. The reference below lists the variables for each component.
API server
Section titled “API server”| Variable | Required | Default | Description |
|---|---|---|---|
DATABASE_URL | ✅ | — | PostgreSQL connection string (datastore + job queue). postgres://user:pass@host:5432/orvanta |
SECRET_KEY | ✅ | — | Random 64-char hex string. Used for signing tokens. Generate with openssl rand -hex 32. |
APP_URL | ✅ | — | Public URL of your Orvanta instance. e.g. https://orvanta.example.com |
S3_* | ❌ | — | Optional S3-compatible storage for large job results/artefacts (S3_BUCKET, S3_REGION, S3_ENDPOINT, S3_ACCESS_KEY_ID, S3_SECRET_ACCESS_KEY). |
LOG_LEVEL | ❌ | info | debug, info, warn, error. |
PORT | ❌ | 8000 | Port the API server listens on. |
Worker
Section titled “Worker”| Variable | Required | Default | Description |
|---|---|---|---|
DATABASE_URL | ✅ | — | Same as API server. |
S3_* | ❌ | — | Same as API server (optional). |
WORKER_CONCURRENCY | ❌ | 4 | Number of concurrent job slots per worker process. |
WORKER_QUEUE | ❌ | default | Queue name this worker listens on. |
Docker Compose example
Section titled “Docker Compose example”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.