Buzz ships as a singleDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/block/buzz/llms.txt
Use this file to discover all available pages before exploring further.
buzz-relay binary (built from a Rust workspace) backed by Postgres 17, Redis 7, and S3-compatible object storage. The root docker-compose.yml stands up a full local dev stack in seconds; the Helm chart at deploy/charts/buzz targets Kubernetes for production. Both paths are covered here.
Prerequisites
You need Docker plus either Hermit (recommended — pins all tool versions automatically) or a manually installed toolchain.Hermit (recommended)
Hermit manages the entire toolchain from
bin/. Activate it once and every just command uses the pinned versions — no global installs required.Manual toolchain
Install Rust 1.88+, Node 24+, pnpm 10+, and just globally. Docker must still be available for the backing services.
Quick Start (development)
Bootstrap the environment
just setup runs just bootstrap automatically: copies .env.example to .env if it doesn’t exist, downloads toolchain via Hermit, starts Docker services, and runs database migrations. You can also run just bootstrap independently to set up the toolchain without starting services.Docker Compose Services (dev stack)
The rootdocker-compose.yml defines the full local development stack. All services join the buzz-net bridge network and carry health checks.
| Service | Image | Port | Memory limit |
|---|---|---|---|
| Postgres 17 | postgres:17-alpine | 5432 | 512 MB |
| Redis 7 | redis:7-alpine | 6379 | 128 MB |
| Adminer | adminer:latest | 8082 | 64 MB |
| MinIO | minio/minio:latest | 9000 (API), 9001 (console) | 256 MB |
| Keycloak | quay.io/keycloak/keycloak:26.0 | 8180 | 512 MB |
| Prometheus | prom/prometheus:latest | 9090 | 128 MB |
- Postgres:
pg_isready -U buzz— interval 5 s, 10 retries, start period 10 s - Redis:
redis-cli ping— interval 5 s, 10 retries, start period 5 s
buzz, password buzz_dev, database buzz. Adminer points to the Postgres container at http://localhost:8082.
The buzz-relay Binary
buzz-relay is the single source of truth. It binds to 0.0.0.0:3000 by default (BUZZ_BIND_ADDR), exposing:
- WebSocket at
ws://localhost:3000— NIP-01 relay protocol, NIP-42 auth - REST at
http://localhost:3000/events,/query,/count,/media/*,/git/* - Health at
http://localhost:3000/_livenessand/_readiness
sqlx::migrate! and runs them at startup (gated by BUZZ_AUTO_MIGRATE, default true). Schema migrations run behind a Postgres advisory lock and are safe under multiple concurrent replicas.
just Task Reference
Common dev commands
Common dev commands
| Command | What it does |
|---|---|
just setup | Start Docker services, run migrations, install desktop deps |
just dev | Build and start the relay + Tauri desktop app together |
just relay | Start only the relay (auto-starts Docker services if needed) |
just build | Build the Rust workspace (cargo build --workspace) |
just ci | Run everything CI runs: checks, unit tests, desktop build |
just test | Full test suite (unit + integration; starts services if needed) |
just test-unit | Unit tests only — no Docker or infra required |
just reset | ⚠ Wipe all development data and recreate a clean environment |
just down | Stop all dev services (data is preserved) |
just ps | Show dev service status |
just logs | Tail all service logs |
just check | Run fmt-check, clippy, desktop-check, desktop-tauri-fmt-check, desktop-tauri-clippy, web-check, mobile-check |
Production Deployment
For production use a dedicated compose bundle or the Helm chart — not the rootdocker-compose.yml, which is for local development only.
Docker Compose (VPS / single-node)
Use the production Compose bundle in
deploy/compose/ for single-node or VPS deployments. It includes Postgres, Redis, MinIO, and optional Caddy/TLS.Helm (Kubernetes)
The chart at
deploy/charts/buzz is the recommended path for Kubernetes. GitOps-safe with ArgoCD and Flux.Helm Chart Deployment
The chart atdeploy/charts/buzz has two operating profiles:
Quickstart (eval only) — bundles in-cluster Postgres, Redis, and MinIO:
helm install / helm template time and fails with a clear message if anything is missing. See deploy/charts/buzz/README.md for the full reference, and examples/argocd-app.yaml / examples/flux-helmrelease.yaml for canonical GitOps configurations.
replicaCount > 1 hard-requires Redis for buzz-pubsub fan-out. The chart fails at template time if Redis is not configured when scaling beyond one replica. Git storage is object-store-backed and does not require ReadWriteMany volumes — each replica can use its own ReadWriteOnce volume.Production Secrets
The relay Secret must contain:| Key | Purpose |
|---|---|
BUZZ_RELAY_PRIVATE_KEY | 64-char hex relay identity key (rotation = new identity) |
BUZZ_GIT_HOOK_HMAC_SECRET | 32+ char HMAC secret — required when replicaCount > 1 |
DATABASE_URL | Full Postgres connection URL |
REDIS_URL | Redis URL with auth — required when replicaCount > 1 |
BUZZ_S3_ACCESS_KEY | S3 access key |
BUZZ_S3_SECRET_KEY | S3 secret key |
deploy/charts/buzz/examples/secret-sample.yaml for the full Secret schema.