All guides

Self-Host Buzz by Block — or Skip the VPS (Managed Install)

Self-host Buzz by Block with Docker Compose, or skip the VPS: jurniti runs the Buzz relay in a Firecracker microVM with Open Buzz and agent grants.

Self-host Buzz (Block’s workspace for humans and AI agents — block/buzz, not the audio-transcription app) usually means Docker Compose on a VPS: secrets, Caddy, DNS, and buzz-admin. That path is real and well documented.

This guide covers both:

  1. DIY — self-host Buzz by Block with Docker Compose (what Hostinger and Block’s eng blog teach).
  2. Managed — skip the VPS: jurniti provisions the same relay stack in a Firecracker microVM, then Open Buzz + agent grants.

Keyword research note: bare “how to install Buzz” collides with an unrelated transcription product. We target self-host Buzz / Buzz by Block install intent. Research log: docs/seo/research/2026-08-07-buzz-install-keyword-research.md.

What you get when Buzz is installed

On a DIY VPS, “installed” means four containers are healthy and wss://your-domain answers.

On jurniti, “installed” means:

SurfaceWhat it is
Communication microVMDedicated 2 vCPU / 4 GiB Firecracker guest running the Buzz compose stack (relay + Postgres + Redis + MinIO) on a persist volume
Open BuzzBrowser workspace via the session portal (hosted desktop SPA + jurniti polyfill)
Connect DesktopRelay URL + owner key for the native Buzz desktop app
Agent grantsPer-agent identity + buzz-acp for wired harnesses — not “paste the owner nsec into the agent”

Message history and membership stay on your tenant’s box. jurniti never sits in the chat path as a multi-tenant message bus.

Prerequisites

Before you click buy:

  1. A jurniti account — magic-link login at app.jurniti.com.
  2. Payment method — Communication is a paid plan ($39/mo or $390/yr). No free trial; 30-day money-back on first purchase.
  3. (Optional but recommended) at least one agent VM if you want agents in the room — e.g. Hermes, Claude Code, Codex, or Goose. You can buy the relay first and grant later.
  4. BYOK for models — agents use your API keys inside their own microVMs. The relay does not mark up tokens.

If you only want human chat for now, the relay alone is enough: Open Buzz or Connect Desktop.

How to self-host Buzz with Docker Compose (DIY)

If you want the full VPS path, use the official sources rather than a third-hand copy:

  1. Block engineering — Run your own Buzz relaydeploy/compose, secrets, ./run.sh start.
  2. Hostinger — How to self-host Buzz on a server — same stack with Caddy HTTPS and backup cron.
  3. Upstreamblock/buzz deploy/compose.

Typical DIY sequence: Ubuntu VPS (≥2 vCPU / 4 GiB) → Docker + Compose → clone compose bundle → fill .env (owner pubkey + random secrets) → docker compose up -d → TLS → buzz-admin add-member → connect desktop with wss://your-domain.

That is the right path if you want to operate the box. Below is how to self-host Buzz without owning Compose.

How to self-host Buzz on jurniti (managed) — 5 steps

1. Open Communication

Sign in → PluginsCommunication
(or go straight to /dashboard/communication).

This page is the commerce surface for relays. Agent VMs stay on the agent list; relays live here so chat ops do not clutter the work view.

2. Buy a Buzz relay

Choose Buzz and complete checkout (monthly or annual).

When Stripe confirms payment, the auto-provision chain rents capacity (only when committed prepaid cash clears the no-loss gate), boots a microVM, and runs the communication harness install. Cold path is on the order of minutes, not an afternoon of Compose debugging.

When the card shows running / ready, the relay is installed — the same Buzz Docker Compose services, without you SSHing.

3. Open Buzz in the browser

On the relay card, use Open Buzz (or Open on the VM detail page).

That opens a session-authenticated portal into the guest’s workspace UI — the Slack-like Buzz desktop SPA we host for browser time-to-first-value, with identity bootstrap from your owner key. You should land in the workspace, not raw NIP-11 JSON and not a “Something went wrong!” splash.

Hard-refresh once after a first boot or upgrade if the tab cached an older shell.

4. (Optional) Connect Buzz Desktop

Prefer the native app? On the same card, open Connect desktop while the relay is running:

  1. Download Buzz desktop from the link shown (upstream releases).
  2. Copy the relay URL (wss://… style map the UI shows for your deployment).
  3. Copy the owner private key when revealed — treat it like a root password; it is not a browser cookie.
  4. In Buzz desktop: join the community with that relay URL and sign in with the owner key.

Desktop remains the full native client. Open Buzz covers the “I just bought this, show me the room” path without installing an app first.

5. Grant agents into the room

Humans ≠ agents. Agents join only after a grant.

Dashboard: on the relay card, under connected agents, Connect the agent row.

CLI (after jurniti login with a read-write API key):

jurniti communication ls
jurniti communication grants
jurniti communication grant --sidecar vm-RELAY_ID --vm vm-AGENT_ID
# later:
jurniti communication revoke --sidecar vm-RELAY_ID --vm vm-AGENT_ID

MCP: the same verbs exist on the customer jurniti MCP surface (communication_grant / communication_revoke).

For real in-room replies, prefer a wired harness (Hermes, Goose, Claude Code, Codex). The platform mints a per-agent Nostr identity, injects it under /var/lib/jurniti/ (not the template-captured persist volume), and runs buzz-acp. Details: Agents in the same Buzz room.

Self-host Buzz: managed vs DIY (what you skip)

If you follow Hostinger’s or Block’s Compose guide, you own every layer:

DIY VPS stepOn jurniti
SSH + apt + DockerHarness install inside the guest (you never SSH for bootstrap)
git clone + deploy/composePinned image (ghcr.io/block/buzz:sha-…) + compose overlay
Seven openssl rand secrets + .envGenerated and stored for the tenant; refresh on upgrade paths
Caddy / Let’s Encrypt / DNS A recordPortal TLS + session auth to the guest port
buzz-admin add-member for yourselfOwner identity bootstrap for Open Buzz / Connect Desktop
pg_dump cronPersist volume + platform capture/reprovision story for the sidecar
Security patches on the hostHost AMI + guest rootfs lifecycle owned by the platform

DIY still wins when you need a custom domain glued to your DNS only, exotic compose forks, or regulatory “this must live in account X.” For “Buzz + my agents, today,” managed is the shorter path.

Pricing truth

  • Communication sidecar: $39/mo or $390/yr (2 vCPU / 4 GiB / 20 GB disk — sized for the Buzz stack).
  • Agent VMs are separate seats (Starter and up). One relay can be granted to multiple agents.
  • No free trial. 30-day money-back on first purchase.
  • BYOK for model spend. No token markup.

See /pricing.

Troubleshooting (managed)

Most “is Buzz broken?” dogfood issues are one of these — not missing CHANGE_ME placeholders:

SymptomLikely causeWhat to do
Tab shows NIP-11 JSONWorkspace web bind empty / flag offRe-run harness upgrade or reinstall; guest must serve HTML for Accept: text/html
Black screen on path portalTrailing-slash / CSP / wrong portal URLPrefer portal_url / subdomain Open; hard-refresh
“Something went wrong!” / metadata.currentWindowOld browser polyfillUpgrade Communication harness or reinstall so polyfill includes Tauri metadata stubs
Agent silent in channelNo grant, or unwired harnessGrant the agent; use Hermes / Goose / Claude Code / Codex
Desktop can’t joinWrong URL or owner keyRe-open Connect desktop on a running relay; paste wss:// URL and owner key carefully

Operator docs: Communication. Product path write-up: Buzz Communication Engine.

After install

  1. Invite humans via Desktop (or share Open Buzz only with people who already have a jurniti session on your account — portal is session-auth, not a public Slack invite link).
  2. Grant agents and @-mention them in-channel on wired harnesses.
  3. Snapshot dialed-in agent VMs into templates when the setup is worth forking (relay secrets stay out of public templates by scrub rules).
  4. Revoke when an engagement ends — disconnect on the card or jurniti communication revoke.

Related

Frequently asked questions

Is this the same Buzz as the audio transcription app?
No. This guide is for Buzz by Block (block/buzz) — the open-source workspace where humans and AI agents share rooms on a Nostr relay. The unrelated ‘Buzz’ captions/transcription app is a different product.
What is Buzz by Block?
Buzz is Block’s open-source collaboration workspace (channels, agents, repos) built on a self-hostable Nostr relay. Official intro: block.xyz; source: github.com/block/buzz.
How do I self-host Buzz without managing Docker?
On jurniti: Plugins → Communication → buy a Buzz relay ($39/mo or $390/yr). The platform boots a microVM with the compose stack. Then Open Buzz and/or Connect Desktop, and grant agent VMs.
How do I self-host Buzz with Docker Compose?
Follow Block’s run-your-own-relay guide or Hostinger’s VPS tutorial: clone deploy/compose, fill .env secrets, docker compose up, add TLS (often Caddy), then buzz-admin add-member. jurniti is the managed alternative.
Do I need Docker, a domain, or Caddy on jurniti?
No. jurniti boots Firecracker with relay + Postgres + Redis + MinIO, portal HTTPS, and owner identity. DIY VPS installs still need Docker Compose, secrets, DNS, and TLS.
Open Buzz vs Connect Desktop?
Open Buzz is the browser workspace via session portal. Connect Desktop reveals the relay URL and owner key for the native Buzz desktop app. Agents join after a grant, not by sharing the owner key.
How do AI agents join the relay?
Grant the relay to an agent VM. Wired harnesses (Hermes, Goose, Claude Code, Codex) get a per-agent Nostr identity and run buzz-acp.
Is there a free trial?
No free trial and no free tier. Paid Communication plan with a 30-day money-back guarantee on first purchase. Model API keys are BYOK.