Own your logs. Search them fast.
Rootprint is an open-source, self-hosted platform for logs and traces: OpenTelemetry-native ingestion, full-text search, trace waterfalls, and a service health dashboard, indexed straight to your own S3-compatible object storage. Retention costs whatever your bucket costs.
curl -o docker-compose.yml https://docs.rootprint.io/files/docker-compose.full.yaml && docker compose up -d 


What is Rootprint?
- Full-text search — Query any field of any log line: free text, filters, histograms, saved views, share links.
- Traces beside the logs — Open a trace from the log that emitted it, or paste a trace ID into search. The waterfall shows per-span timing, attributes, and events, and every span links back to its logs.
- Service health — Request rate, error rate, and p95 latency per service, endpoints ranked by time spent, and the failing spans behind each error.
- OpenTelemetry native — OTLP for logs and traces from the Collector, Vector, Fluent Bit, or anything else that speaks OTLP, plus a plain HTTP endpoint for logs. Ingest keys are scoped per index.
- Retention at storage prices — Keeping a year of logs costs a year of S3 storage. No extra nodes, no ingest fees.
- Self-hosted — Runs inside your network. Sign in with Google or GitHub, invite your team, scope their access. Nothing phones home.
- Stateless search nodes — Quickwit searchers hold no data. Add or remove them as load changes; nothing migrates.
- Apache-2.0 — Every component is open source, with standard formats and no per-seat pricing.
How it works
Your apps send logs and traces to Rootprint, which authenticates them and hands them to the embedded search engine. The engine indexes straight to your object storage and answers queries from the same place. The whole stack is three containers: Rootprint, Quickwit, and Postgres for accounts and settings.
┌────────────────────────────────┐ ┌────────────────────────────────────┐
│ your apps │ ─────────▶ │ rootprint │
│ & agents │ │ auth · ui · api │
└────────────────────────────────┘ └─────────────────┬──────────────────┘
│
┌────────────────────────────────┐ ┌─────────────────▼──────────────────┐
│ your s3 │ ◀───────── │ quickwit │
│ s3 · gcs · minio │ │ index · search │
└────────────────────────────────┘ └────────────────────────────────────┘ ┌──────────────────────────┐
│ your apps & agents │
└──────────────────────────┘
│
▼
┌──────────────────────────┐
│ rootprint │
│ auth · ui · api │
└──────────────────────────┘
│
▼
┌──────────────────────────┐
│ quickwit │
│ index · search │
└──────────────────────────┘
│
▼
┌──────────────────────────┐
│ your s3 │
│ s3 · gcs · minio │
└──────────────────────────┘ Read the architecture docs →Frequently asked questions
What is Rootprint?
Open-source, self-hosted logs and traces: OpenTelemetry-native ingestion, full-text search built on Quickwit, trace waterfalls, a service health dashboard, and your own object storage as the database.
Does Rootprint handle traces?
Yes. Send OTLP spans to POST /v1/traces with an existing ingest key. Open a trace from any log carrying its trace ID, or paste the ID into the search box, and you get a waterfall with per-span attributes, events, and links back to the correlated logs. The service health dashboard adds request rate, error rate, and p95 latency per service, plus the failing spans behind those errors.
How do I self-host it?
Docker Compose brings up three containers next to an S3-compatible bucket: Rootprint, Quickwit, and Postgres. The quickstart takes about five minutes.
What does it cost?
Nothing for the software (Apache-2.0). You pay your cloud provider for the compute it runs on and the storage it fills. Rootprint charges nothing per host, per seat, or per GB ingested.
What storage do I need?
Any S3-compatible object store (AWS S3, Google Cloud Storage, Cloudflare R2, MinIO, Ceph), Azure Blob, or local disk for a laptop trial. Quickwit writes index splits there; search nodes stay stateless.
Is it production-ready?
Rootprint is pre-1.0 and under active development. See the changelog for the current release status. The engine underneath is Quickwit, which runs petabyte-scale log search in production.
Run it on your own terms
Docker Compose and an S3 bucket. Running in about five minutes.