Prerequisites
Install Docker and Docker Compose before continuing. Rootprint requires Quickwit0.9.0. The bundled Compose files pin quickwit/quickwit:v0.9.0. Earlier releases are not supported: some features are missing and others behave incorrectly.
Self-contained deployment (recommended)
This option deploys Rootprint together with PostgreSQL and its embedded Quickwit search engine. Best for getting started quickly or running a self-contained setup. Download the Compose file and start the services:- Rootprint: the web UI, exposed on port
8282. - PostgreSQL: Rootprint application state, stored in the
rootprint-dbDocker volume. - Quickwit: Rootprint’s embedded search engine, reachable only from the Compose network by default.
docker compose ps to confirm all containers are healthy, then open http://localhost:8282.
Use S3 for storage
By default, the self-contained deployment stores index data in therootprint-quickwit Docker volume on local disk. This is fine for testing, but removing the volume permanently deletes all indexed logs. For a persistent, production-ready setup, configure Quickwit to store index data in S3 (or any S3-compatible object storage).
Add the following environment variables to the quickwit service in your docker-compose.yml:
This keeps Quickwit single-node. An S3
QW_METASTORE_URI is a file-backed metastore
(single-writer): durable, but not distributed. To run a multi-node Quickwit cluster, move
the metastore to PostgreSQL. See Scaling beyond a single node.Other storage backends
Quickwit also supports Azure Blob Storage, Google Cloud Storage, and S3-compatible providers (MinIO, Garage, DigitalOcean Spaces). The configuration follows the same shape: a URI scheme onQW_DEFAULT_INDEX_ROOT_URI and QW_METASTORE_URI, plus credentials.
S3-compatible providers need a
flavor set on the storage config so Quickwit picks the right path-style and multipart settings. See the Quickwit storage reference for the YAML structure and the full env-var list.
Exposing Quickwit on internal networks
If other services on your internal network need to ingest data directly into Quickwit, publish Quickwit’s ports on the host. Indocker-compose.yml, add these port bindings to the quickwit service:
http://<host-ip>:7280 from other machines on the same network.
Connect to an existing Quickwit instance
If you already have a Quickwit cluster running, deploy Rootprint with PostgreSQL and point it at your Quickwit instance. Download the standalone Compose file:docker-compose.yml and set QUICKWIT_URL to the REST API endpoint of your Quickwit instance:
docker compose ps to confirm both containers are healthy, then open http://localhost:8282.
Configuration
Customize the deployment by setting environment variables under theenvironment key of the rootprint service. See the environment variables reference for the full list, including the database URL, public origin, Quickwit endpoint, and session secret.

