# 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.

- Published: 2026-08-06 · Updated: 2026-08-07 · jurniti
- Canonical: https://www.jurniti.com/blog/how-to-install-buzz

**Self-host Buzz** (Block’s workspace for humans and AI agents — [block/buzz](https://github.com/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:

| Surface | What it is |
| --- | --- |
| **Communication microVM** | Dedicated 2 vCPU / 4 GiB Firecracker guest running the Buzz compose stack (relay + Postgres + Redis + MinIO) on a persist volume |
| **Open Buzz** | Browser workspace via the session portal (hosted desktop SPA + jurniti polyfill) |
| **Connect Desktop** | Relay URL + owner key for the native [Buzz desktop](https://github.com/block/buzz/releases) app |
| **Agent grants** | Per-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](https://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](/hermes), [Claude Code](/claude-code), [Codex](/codex), or [Goose](/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 relay](https://engineering.block.xyz/blog/run-your-own-buzz-relay)** — `deploy/compose`, secrets, `./run.sh start`.
2. **[Hostinger — How to self-host Buzz on a server](https://www.hostinger.com/tutorials/how-to-install-buzz/)** — same stack with Caddy HTTPS and backup cron.
3. **Upstream** — [block/buzz `deploy/compose`](https://github.com/block/buzz/tree/main/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 → **Plugins** → **[Communication](https://app.jurniti.com/dashboard/communication)**  
(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):

```bash
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](/blog/buzz-acp-multi-harness-agents).

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

If you follow Hostinger’s or [Block’s Compose guide](https://engineering.block.xyz/blog/run-your-own-buzz-relay), you own every layer:

| DIY VPS step | On jurniti |
| --- | --- |
| SSH + `apt` + Docker | Harness install inside the guest (you never SSH for bootstrap) |
| `git clone` + `deploy/compose` | Pinned image (`ghcr.io/block/buzz:sha-…`) + compose overlay |
| Seven `openssl rand` secrets + `.env` | Generated and stored for the tenant; refresh on upgrade paths |
| Caddy / Let’s Encrypt / DNS A record | Portal TLS + session auth to the guest port |
| `buzz-admin add-member` for yourself | Owner identity bootstrap for Open Buzz / Connect Desktop |
| `pg_dump` cron | Persist volume + platform capture/reprovision story for the sidecar |
| Security patches on the host | Host 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](/pricing).

## Troubleshooting (managed)

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

| Symptom | Likely cause | What to do |
| --- | --- | --- |
| Tab shows NIP-11 JSON | Workspace web bind empty / flag off | Re-run harness upgrade or reinstall; guest must serve HTML for `Accept: text/html` |
| Black screen on path portal | Trailing-slash / CSP / wrong portal URL | Prefer **portal_url** / subdomain Open; hard-refresh |
| “Something went wrong!” / `metadata.currentWindow` | Old browser polyfill | Upgrade Communication harness or reinstall so polyfill includes Tauri `metadata` stubs |
| Agent silent in channel | No grant, or unwired harness | Grant the agent; use Hermes / Goose / Claude Code / Codex |
| Desktop can’t join | Wrong URL or owner key | Re-open **Connect desktop** on a running relay; paste `wss://` URL and owner key carefully |

Operator docs: [Communication](/docs/communication). Product path write-up: [Buzz Communication Engine](/blog/self-host-buzz-for-ai-agents).

## 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](/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

- [Buzz Communication Engine for AI agents](/blog/self-host-buzz-for-ai-agents)
- [Multi-harness ACP wire](/blog/buzz-acp-multi-harness-agents)
- [Block — Run your own Buzz relay](https://engineering.block.xyz/blog/run-your-own-buzz-relay)
- [Hostinger — How to self-host Buzz on a server](https://www.hostinger.com/tutorials/how-to-install-buzz/)
- Product docs: [Communication](/docs/communication)
- Keyword research: `docs/seo/research/2026-08-07-buzz-install-keyword-research.md`

## 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.
