Configuration reference ​
Generated from packages/config/src/variables.ts by pnpm docs:generate. Do not edit by hand.
Every service validates its environment at start-up and prints all problems at once. Secret variables can also be read from a file: set NAME_FILE to the path instead of NAME (not both). The installer and the Helm chart set these variables; see install.md and kubernetes.md.
The "Read by" column lists the services whose configuration includes the variable. cli is the quavon command line, migrate the migration job.
| Variable | Expected | Example | Secret | Default | Read by |
|---|---|---|---|---|---|
DATABASE_MIGRATOR_URL | PostgreSQL connection URL (postgres:// or postgresql://) | postgres://<user>:<password>@<host>:5432/<db> | yes, or DATABASE_MIGRATOR_URL_FILE | cli, migrate | |
DATABASE_SSL | one of disable, require, verify-full | verify-full | no | disable | api, worker, cli, migrate |
DATABASE_SSL_CA_FILE | path to a readable PEM CA bundle, only with DATABASE_SSL=verify-full | /run/secrets/<db-ca>.pem | no | api, worker, cli, migrate | |
DATABASE_SYSTEM_URL | PostgreSQL connection URL (postgres:// or postgresql://) | postgres://<user>:<password>@<host>:5432/<db> | yes, or DATABASE_SYSTEM_URL_FILE | api, worker, cli | |
DATABASE_URL | PostgreSQL connection URL (postgres:// or postgresql://) | postgres://<user>:<password>@<host>:5432/<db> | yes, or DATABASE_URL_FILE | api, worker, cli | |
GITHUB_URL | https URL of github.com or a GitHub Enterprise Server host | https://<ghes-host> | no | https://github.com | api, worker |
HOST | hostname or IP address to listen on | 0.0.0.0 | no | 0.0.0.0 | api |
LOG_LEVEL | one of fatal, error, warn, info, debug, trace, silent | info | no | info | api, worker, web, cli, migrate, sandbox-runner, sandbox-egress |
NODE_ENV | one of development, test, production | production | no | development | api, worker, web, cli, migrate, sandbox-runner, sandbox-egress |
OTEL_EXPORTER_OTLP_ENDPOINT | http(s) URL of an OTLP/HTTP collector | http://<collector-host>:4318 | no | api, worker, web, cli, migrate, sandbox-runner, sandbox-egress | |
OTEL_SERVICE_NAME | non-empty string | quavon-api | no | api, worker, web, cli, migrate, sandbox-runner, sandbox-egress | |
PORT | integer between 1 and 65535 | 3000 | no | 3000 | api, sandbox-egress |
PUBLIC_URL | externally reachable http(s) base URL of the API, without trailing slash | https://<quavon-host> | no | api | |
QUAVON_DEPLOYMENT | compose, helm or other; set by the installer or chart | helm | no | other | api, worker |
QUAVON_EDITION | one of self_hosted, enterprise | self_hosted | no | self_hosted | api, worker, sandbox-runner |
QUAVON_ENCRYPTION_KEY | base64-encoded 32-byte key (openssl rand -base64 32) | <base64-32-byte-key> | yes, or QUAVON_ENCRYPTION_KEY_FILE | api, worker, cli | |
QUAVON_FIRECRACKER_BIN | absolute path of the pinned firecracker binary | /usr/local/bin/firecracker | no | /usr/local/bin/firecracker | sandbox-runner |
QUAVON_FIRECRACKER_CHROOT_BASE | absolute path of the jailer chroot base directory | /srv/jailer | no | /srv/jailer | sandbox-runner |
QUAVON_FIRECRACKER_IMAGES_FILE | absolute path of the kernel/rootfs lockfile (sha256 pinned) | /opt/quavon/firecracker/images.lock.json | no | /opt/quavon/firecracker/images.lock.json | sandbox-runner |
QUAVON_FIRECRACKER_SNAPSHOTS | true or false; restore VMs from per-image snapshots | false | no | false | sandbox-runner |
QUAVON_FIRECRACKER_UID_BASE | first uid/gid of the range used for jailed VMs (one per concurrent VM) | 200000 | no | 200000 | sandbox-runner |
QUAVON_JAILER_BIN | absolute path of the pinned jailer binary | /usr/local/bin/jailer | no | /usr/local/bin/jailer | sandbox-runner |
QUAVON_MCP_CONTEXT | allowed (tenant admins may connect remote MCP servers as review context) or disabled (hard off) | disabled | no | disabled | api, worker |
QUAVON_MCP_PRIVATE_HOSTS | comma-separated hostnames of MCP servers the self-hosted edition may reach on private addresses; ignored in the enterprise edition | mcp.internal.example | no | empty | api, worker |
QUAVON_PREVIOUS_ENCRYPTION_KEYS | comma-separated base64-encoded 32-byte keys that are being rotated out | <base64-32-byte-key>,<base64-32-byte-key> | yes, or QUAVON_PREVIOUS_ENCRYPTION_KEYS_FILE | empty | api, worker, cli |
QUAVON_PRODUCT_TELEMETRY | allowed (an instance admin may opt in) or disabled (hard off, e.g. air-gapped) | disabled | no | allowed | api, worker |
QUAVON_PRODUCT_TELEMETRY_URL | https URL that receives opted-in product telemetry reports | https://<telemetry-host>/v1/reports | no | api, worker | |
QUAVON_SANDBOX_ALLOW_INSECURE | true or false; true only for development and tests with docker-runc-insecure | false | no | false | sandbox-runner |
QUAVON_SANDBOX_BACKEND | one of docker-runsc, docker-runc-insecure (development only), firecracker, kubernetes-runsc | docker-runsc | no | docker-runsc | sandbox-runner |
QUAVON_SANDBOX_CONCURRENCY | integer between 1 and 64 | 2 | no | 2 | sandbox-runner |
QUAVON_SANDBOX_DOCKER_SOCKET | absolute path of the Docker Engine socket | /var/run/docker.sock | no | /var/run/docker.sock | sandbox-runner |
QUAVON_SANDBOX_EGRESS_NETWORK | name of the internal Docker network that contains only the egress proxy | quavon_sandbox-egress | no | sandbox-runner | |
QUAVON_SANDBOX_EGRESS_PROXY | host:port of the sandbox egress proxy on the egress network | sandbox-egress:3128 | no | sandbox-runner | |
QUAVON_SANDBOX_IMAGES_FILE | absolute path of the sandbox image lockfile (images by digest) | /opt/quavon/sandbox/images.lock.json | no | /opt/quavon/sandbox/images.lock.json | sandbox-runner |
QUAVON_SANDBOX_K8S_NAMESPACE | Kubernetes namespace in which the runner creates sandbox pods | quavon-sandbox | no | quavon-sandbox | sandbox-runner |
QUAVON_SANDBOX_K8S_RUNTIME_CLASS | RuntimeClass of sandbox pods whose handler is gVisor runsc | gvisor | no | gvisor | sandbox-runner |
QUAVON_SANDBOX_PREVIOUS_SIGNING_KEYS | comma-separated base64-encoded sandbox signing keys that are being rotated out | <base64-32-byte-key> | yes, or QUAVON_SANDBOX_PREVIOUS_SIGNING_KEYS_FILE | empty | worker, sandbox-runner |
QUAVON_SANDBOX_REGISTRIES | comma-separated registry hostnames repositories may allow for egress | registry.npmjs.org,pypi.org,files.pythonhosted.org,proxy.golang.org | no | empty | sandbox-runner, sandbox-egress |
QUAVON_SANDBOX_RUNSC_PLATFORM | gVisor platform registered for the runsc runtime: systrap, kvm or ptrace | systrap | no | systrap | sandbox-runner |
QUAVON_SANDBOX_SIGNING_KEY | base64-encoded key of at least 32 bytes shared by worker and sandbox-runner | <base64-32-byte-key> | yes, or QUAVON_SANDBOX_SIGNING_KEY_FILE | worker, sandbox-runner | |
QUAVON_SMTP_FROM | sender e-mail address, required with QUAVON_SMTP_HOST | codelotse@<your-domain> | no | api, worker | |
QUAVON_SMTP_HOST | hostname of the SMTP server for e-mail notifications; e-mail channels are off when unset | smtp.<your-domain> | no | api, worker | |
QUAVON_SMTP_PASSWORD | SMTP password, required with QUAVON_SMTP_USERNAME | <smtp-password> | yes, or QUAVON_SMTP_PASSWORD_FILE | api, worker | |
QUAVON_SMTP_PORT | integer between 1 and 65535 | 587 | no | 587 | api, worker |
QUAVON_SMTP_SECURITY | starttls (upgrade required) or tls (implicit TLS, usually port 465) | starttls | no | starttls | api, worker |
QUAVON_SMTP_USERNAME | SMTP user name; omit for servers without authentication | <smtp-user> | no | api, worker | |
QUAVON_WEBPUSH_PRIVATE_KEY | base64url-encoded 32-byte P-256 private key (VAPID) for browser push notifications; push is off when unset | <base64url-32-byte-p256-key> | yes, or QUAVON_WEBPUSH_PRIVATE_KEY_FILE | api, worker | |
QUAVON_WEBPUSH_SUBJECT | contact for push services, a mailto: or https: URL, required with QUAVON_WEBPUSH_PRIVATE_KEY | mailto:ops@<your-domain> | no | api, worker | |
TRUST_PROXY | false, a number of trusted proxy hops, or comma-separated proxy IPs/CIDRs | 1 | no | false | api |
VALKEY_TLS | true or false, matching the VALKEY_URL scheme | true | no | false | api, worker, sandbox-runner, sandbox-egress |
VALKEY_URL | Valkey connection URL (redis:// or rediss://) | rediss://<user>:<password>@<host>:6379 | yes, or VALKEY_URL_FILE | api, worker, sandbox-runner, sandbox-egress |