The installer generates the five required secrets into a mode-600 .env. Most other variables are Docker Compose pass-throughs you set in that same file. Each value is validated by a Zod schema at boot — an out-of-range or malformed value fails the boot fast, naming the offending variable and the constraint it broke, so an instance never starts silently misconfigured.
Five secrets protect sessions, agent keys, and encrypted credentials at rest. The installer generates all five — you should never have to write these by hand. They are generated once and never rotated automatically. Rotating PROVIDER_CREDENTIAL_KEY or NOTIFY_CREDENTIALS_SECRET orphans every stored provider/channel credential (you re-enter them), and rotating POSTGRES_PASSWORD breaks DB auth against the existing volume — the installer refuses to regenerate an existing .env for exactly this reason.
Server binding, public origin, trusted dashboard origin, sign-in providers, and the self-host vs. cloud mode switch. A non-Compose run binds loopback by default — expose it only behind a reverse proxy.
Connection strings for the PostgreSQL 16 and Redis 7 services the stack ships with. The defaults resolve inside the Compose network — override them only to point at external datastores.
Layer toggles, the structural and cascade thresholds, and the global proxy timeouts. Out-of-range values reject boot rather than being silently clamped, and both structural thresholds are held to four decimal places for the calibration rails.
Layer 2 refines only the structurally-ambiguous slice by embedding request text with a local ONNX model. It stays absent until you point SEMANTIC_MODEL_PATH at a model bundle — an unset path means zero import and zero overhead.
The per-tenant learning loop tracks a tenant's own outcome-labeled traffic to nudge learned centroids. It is off by default for privacy — the per-tenant semanticLearning preference defaults off. These knobs bound how far learned state may drift from the bundled anchors and how the daily sweep is gated.
The daily per-tenant sweep that narrows the structural ambiguous band from your own outcomes. It is conservative, rail-bounded, audited, and one-click revertible — a poisoned or stale calibrated pair can never fail routing; it simply reads as the instance defaults.
Budget enforcement fault behavior and the reconciler schedule. Enforcement itself uses atomic Redis counters that stay correct across instances.
The daily refresh of the bundled pricing catalog from the public LiteLLM source. New prices apply to new requests only — recorded costs are immutable and never rewritten.
SMTP and/or Apprise channels for budget alerts and blocks, provider-down, and failure spikes, plus the weekly summary. Everything is queued off the request path — a failing channel never blocks a request or budget enforcement.
The server-sent event stream at /api/events that pushes live dashboard updates instead of polling. Every knob is defaulted, and the cross-field rules fail boot fast rather than silently loosening a bound.
Prometheus metrics on by default, plus opt-in OpenTelemetry tracing. Health is always at /api/health.