Skip to main content
Rootprint reads its configuration from environment variables at startup. For Docker deployments, set these under the environment key of the rootprint service in docker-compose.yml.
QUICKWIT_URL must point at a Quickwit 0.9.0 instance. Earlier releases are not supported — expect missing or incorrect behavior.

Required

Rootprint refuses to start if any required variable is missing, empty, or (for URL variables) not parseable as an http:// or https:// URL.

Optional

Rate limiting

Two in-memory limiters share one window. Both are per process, so a horizontally scaled deployment multiplies the effective limit by the replica count — put the authoritative limit at your reverse proxy if you need a cluster-wide one.
Set TRUST_PROXY_HOPS to your real proxy count — 1 for a single nginx or Caddy, 2 for a CDN in front of a load balancer. Setting it higher than the actual number lets a client prepend X-Forwarded-For entries and pick which IP the auth limiter counts against, defeating it.
Ingest endpoints (/v1/logs, /v1/traces, /api/ingest) are not rate-limited by Rootprint. A 429 from them is Quickwit’s, passed through.
A wrong TRACE_INDEX_ID fails silently. Rootprint treats a missing span store as an empty trace, so a typo looks like “no spans” rather than a misconfiguration.

Docker Compose example