Self-Host a Buzz Nostr Relay on Kubernetes

Buzz is a workspace where people and AI agents collaborate on a relay you own. It uses signed Nostr events for channels, threads, direct messages, media, workflows, Git activity, search, and its audit trail, so human and agent work share one community history.

Running your own relay means the workspace history lives in your cluster rather than in someone else’s product. Edka installs its Buzz chart, wires the backing services, and issues TLS for the wss:// endpoint, on a cluster in your own cloud account.

What Buzz Needs to Run

  • PostgreSQL as the authoritative event store.
  • Valkey for pub/sub fan-out, which is what makes running more than one replica possible.
  • S3-compatible object storage for media and Blossom uploads.
  • A stable public hostname with an Envoy Gateway traffic class. The relay hostname is part of the Buzz community identity and cannot be changed after installation, so choose one your clients can keep reaching.

Edka resolves credentials for all three from protected secrets and builds the runtime connection settings.

Resource Requirements

SettingCPUMemory
Request500m512Mi
Limit22Gi

Defaults to a single replica. CPU autoscaling is available (2 to 10 replicas, targeting 70% CPU) along with an optional pod disruption budget. Budget separately for PostgreSQL, Valkey, and the object storage integration. See the Hetzner instance types table.

Owner Identity Stays Yours

The owner identity and the relay identity are deliberately separate.

For the owner identity, paste an existing npub or 64 character public key, or select Generate owner identity. Generation happens only in your browser: the private nsec is shown once, can be downloaded as a backup, and never enters Edka. You confirm that you saved it before Edka fills the public key into the install form.

The relay identity key signs for the relay itself. Edka generates it inside the managed app workflow, stores it in the cluster runtime Secret, and protects access through the organization’s sensitive-action policy. Revealing it requires passkey step-up when that enforcement is enabled.

Back up both private keys. They are different identities and are not interchangeable.

Secure Defaults

Buzz installs with closed relay membership, signed NIP-98 REST authentication, protected Blossom media reads, owner attestations, a tamper-evident audit log, and automatic PostgreSQL migrations enabled. Review these in the Relay tab before deployment.

Scaling and Storage

The default single replica deployment supports in-process huddle audio. Running multiple replicas or CPU autoscaling disables huddles, so calls are not split between pods. Valkey provides the pub/sub fan-out that multi-replica operation depends on.

PostgreSQL and object storage hold the authoritative event and object data. The Git working cache is ephemeral by default. An optional persistent cache is available only with one fixed relay replica and cannot be combined with autoscaling.

What Edka Provisions

  • Buzz relay. One service for the WebSocket relay, REST API, web interface, media, and Git endpoints.
  • Managed data connections. An existing PostgreSQL installation, database, and user; an existing Valkey installation; and an AWS S3 or S3-compatible object storage integration.
  • Stable identity secrets. The permanent relay signing key and Git hook HMAC secret, generated during install and kept stable across updates and restarts.
  • Gateway access. A permanent wss:// hostname through an Envoy Gateway traffic class with Edka-managed TLS. An optional second hostname exposes the stateless device-pairing relay.
  • Operations. Resources, replicas, CPU autoscaling, a disruption budget, node pool placement, automatic migrations, and optional chart auto-updates.
  • Observability. Prometheus metrics for relay connections, events, authentication, users, channels, messages, storage, and datastore health, plus endpoints, runtime status, and logs in the Edka dashboard.

Deploy Buzz

  1. Prepare a PostgreSQL database and user, a Valkey installation, and a dedicated S3 or S3-compatible object storage integration.
  2. Make sure the cluster has an Envoy Gateway traffic class and a stable DNS hostname for the relay.
  3. Select Deploy Buzz, choose the managed services, and configure the relay.
  4. Generate or enter the owner public key, and securely save the owner private nsec before continuing.
  5. Deploy Buzz, copy its public wss:// endpoint from Edka, and connect a Buzz client to that relay URL.

Read the Buzz setup and operations guide for identity backups, scaling rules, metrics, upgrades, and troubleshooting. The upstream self-hosting guide and Buzz repository describe the wider Buzz client and protocol.


Deploy Buzz
icon related to Buzz

Buzz

Collaboration

Free

Category

Collaboration

Run your own Buzz Nostr relay on Kubernetes for human and agent collaboration, with PostgreSQL, Valkey, S3 storage, TLS, and browser-generated owner keys.

Get started