Start Berserk Locally
Run the full Berserk stack on your machine using Docker Compose
For production use, we recommend deploying Berserk to Kubernetes with Helm. A Kubernetes deployment gives a better UI experience with richer context on logs, traces, and metrics — such as Kubernetes pod names, namespaces, and node information automatically attached to your telemetry.
This guide runs the full Berserk stack locally using Docker Compose — useful for trying out Berserk, local development, or quick demos.
In this case Berserk emits its own logs, traces and metrics into Berserk itself, so that will be the data you can explore.
Prerequisites
- Docker with Docker Compose v2.23.1+
- A GitHub Personal Access Token (PAT) with
packages:readscope for pulling container images from GHCR. Get this personalized Github token from the Berserk team, so reach out to get yours.
Installation
Log in to GitHub Container Registry
echo $GITHUB_TOKEN | docker login ghcr.io -u jakobgt --password-stdinReplace GITHUB_TOKEN with your PAT.
Start the stack
Download the docker-compose.yaml
curl -o docker-compose.yaml https://raw.githubusercontent.com/berserkdb/helm-charts/refs/heads/main/docker-compose.yaml
docker compose up -dThis starts all Berserk services: PostgreSQL, MinIO (S3-compatible storage), meta, query, ingest, janitor, nursery, and the web UI.
Wait for all services to become healthy:
docker compose psQuery the data via the UI
Once all services are healthy, open the Berserk UI at http://localhost:9540.
The Berserk services emit their own telemetry into the default dataset, so you'll see data flowing immediately.
Query your data via the CLI
Install the Berserk CLI and point it at your local stack:
curl -fsSL https://go.bzrk.dev | bash
bzrk --endpoint localhost:9510 search "default | take 10" --since "1h ago"See the Query Reference for the full query language documentation.
Sending your own data
The local stack exposes OTLP endpoints for ingesting telemetry from your applications:
- gRPC:
localhost:14317 - HTTP:
localhost:14318
Configure your OpenTelemetry SDK or Collector to export to these endpoints. See Ingest Configuration for details.
Cleanup
To stop all services and remove all data:
docker compose down -v