Berserk Docs

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:read scope 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-stdin

Replace 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 -d

This 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 ps

Query 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

On this page