Every key in config.toml — what it controls, defaults, safe values, and examples.
config.toml is Qorven’s primary config file. Defaults are hardened for security; you’re rarely forced to change anything beyond the initial install-time settings. Every key is hot-reloadable unless noted otherwise.
[server]# API listener — where /v1/*, /auth/*, /ws liveapi_listen = "127.0.0.1:4200"# Web UI listener — where the embedded Next.js app is servedweb_listen = "0.0.0.0:443"# Legacy single-listener (both API + UI on one port). Empty = use split.listen = ""# Override the web UI location (for customisation without rebuild)# web_dir = "/var/lib/qorven/web"# CORS allowed origins (comma-separated). Default: localhost + LANallowed_origins = "https://qorven.acme.com,https://app.acme.com"
[database]# PostgreSQL DSN. Use unix socket for local installs (no password).dsn = "postgres://qorven@/qorven?host=/var/run/postgresql&sslmode=disable"# Or override via QORVEN_POSTGRES_DSN env var (wins over config).# Connection pool tuningmax_conns = 50max_idle = 10
[auth]# Auth token — required to call /v1/* endpoints. Generated at install.token = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"# Encryption key — protects every encrypted secret in the DB.# NEVER ROTATE without a migration plan. If you lose this, all# encrypted secrets are unrecoverable.encryption_key = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"# JWT signing (if using JWT instead of opaque tokens)# jwt_secret = "..."# jwt_issuer = "qorven.acme.com"
[telemetry]# Qorven ships ZERO telemetry by default. This section is for operators# who WANT opt-in metrics shipping to their own OTLP endpoint.enabled = falseotlp_url = "https://otel.acme.com"otlp_token = ""