Skip to main content

Prerequisites

Install Docker and Docker Compose before continuing. This option deploys Rootprint together with PostgreSQL and a bundled Quickwit instance. Best for getting started quickly or running a self-contained setup. Download the Compose file and start the services:
curl -o docker-compose.yml https://docs.rootprint.io/files/docker-compose.full.yaml
docker compose up -d
This starts three containers:
  • Rootprint: the web UI, exposed on port 8282.
  • PostgreSQL: Rootprint application state, stored in the rootprint-db Docker volume.
  • Quickwit: the search and indexing backend, reachable only from the Compose network by default.
Run 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 the rootprint-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:
services:
  quickwit:
    image: quickwit/quickwit:v0.9.0-rc
    environment:
      QW_DEFAULT_INDEX_ROOT_URI: s3://your-bucket-name/indexes
      QW_METASTORE_URI: s3://your-bucket-name/metastore
      AWS_ACCESS_KEY_ID: ${AWS_ACCESS_KEY_ID}
      AWS_SECRET_ACCESS_KEY: ${AWS_SECRET_ACCESS_KEY}
      AWS_REGION: us-east-1
Set both variables to paths within the same bucket. The bucket must already exist. See Quickwit storage configuration for all options, including S3-compatible providers and custom endpoints.

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 on QW_DEFAULT_INDEX_ROOT_URI and QW_METASTORE_URI, plus credentials.
BackendURI schemeCredentials
AWS S3s3://bucket/pathAWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, AWS_REGION
Azure Blob Storageazure://container/pathQW_AZURE_STORAGE_ACCOUNT, QW_AZURE_STORAGE_ACCESS_KEY
Google Cloud Storages3://bucket/path with flavor: gcsHMAC keys via AWS_ACCESS_KEY_ID / AWS_SECRET_ACCESS_KEY
MinIO / Garage / DO Spacess3://bucket/path with matching flavorProvider-specific keys via AWS_ACCESS_KEY_ID / AWS_SECRET_ACCESS_KEY and QW_S3_ENDPOINT
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. In docker-compose.yml, add these port bindings to the quickwit service:
ports:
  - '7280:7280'
  - '7281:7281'
Quickwit will then be reachable at http://<host-ip>:7280 from other machines on the same network.
Quickwit has no authentication mechanism. Never expose it on a public or untrusted network. Restrict access at the network or firewall level and only do this within a private, trusted network.

Connect to an existing Quickwit instance

Prerequisite: Quickwit 0.9 or later is required. Rootprint relies on Quickwit 0.9 Ingest V2 behavior and does not support 0.8 or earlier. Confirm your instance’s version before connecting it.
If you already have a Quickwit cluster running, deploy Rootprint with PostgreSQL and point it at your Quickwit instance. Download the standalone Compose file:
curl -o docker-compose.yml https://docs.rootprint.io/files/docker-compose.standalone.yaml
Open docker-compose.yml and set QUICKWIT_URL to the REST API endpoint of your Quickwit instance. Do not include /api/v1 in the URL:
environment:
  QUICKWIT_URL: http://your-quickwit-host:7280
Then start the service:
docker compose up -d
Run docker compose ps to confirm both containers are healthy, then open http://localhost:8282.

Configuration

Customize the deployment by setting environment variables under the environment 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.