What you can run in parallel
- Rootprint: run one active instance. Do not add load-balanced Rootprint replicas.
- Quickwit: add nodes to grow ingest and search capacity.
- Rootprint database: move it to external or managed Postgres if you like. It needs its own database, separate from Quickwit’s metastore.
QUICKWIT_URL at a Quickwit REST endpoint, a load balancer, or a Kubernetes service.
Move the metastore and index storage
The bundled file-backed metastore is not distributed, and the local Docker volume is single-node only. On every Quickwit node, set:QW_METASTORE_URI(ormetastore_uri) to a PostgreSQL database.QW_DEFAULT_INDEX_ROOT_URIto shared object storage, with the same storage credentials andflavoron every node.
Connect the Quickwit nodes
Before you add indexers or searchers, set on every Quickwit node:QW_PEER_SEEDS: addresses of one or more other nodes, used for cluster discovery. On Kubernetes, point it at a headless service.QW_ADVERTISE_ADDRESS: the address other nodes use to reach this one. The Quickwit image listens on0.0.0.0and guesses a private IP to advertise. Set this when other nodes can’t reach that IP.QW_LISTEN_ADDRESS: set it to a reachable interface when you run Quickwit outside its image. The default127.0.0.1can’t form a cluster.
7280 and gRPC on TCP 7281. Open both between nodes on a private network only. Rootprint reaches Quickwit over REST on TCP 7280. See Quickwit ports configuration.
Scale the Quickwit cluster to your load
Choose each node’s services withquickwit run --service ... or QW_ENABLED_SERVICES.
- Add indexers when ingest throughput is the bottleneck.
- Add searchers when search or aggregations are. Size them by query concurrency.
- One control plane, one metastore service, and one janitor are usually enough.
Related
- Docker Compose install: the single-node setup and S3 configuration.
- Environment variables: the Rootprint-side configuration surface.
- Quickwit deployment modes: upstream cluster topology.

