One-click deploy for Buzz, Block's hive-mind workspace where humans and AI agents share channels, code review, and git events on a Nostr relay.
This repo holds two things: the Railway template definition, and a thin wrapper image that makes a zero-input deploy actually work.
The relay with its bundled web UI, Postgres, Redis, and MinIO for media. Five services, one URL, no configuration required.
Upstream's container is used as-is except for one boot step.
buzz-relay requires RELAY_OWNER_PUBKEY — 64 hex characters identifying the
relay's owner — and warn-and-ignores anything malformed, starting up regardless.
The result is a relay that runs, serves a UI, and cannot be administered by
anyone, with only a WARN line to explain it. Someone clicking Deploy is also
unlikely to have a Nostr keypair to hand.
So buzz-boot runs first and either:
- validates the pubkey you supplied, refusing to start if it isn't hex (an
npubis bech32, and pasting one is the obvious mistake), or - generates a keypair with
buzz-admin generate-key, persists it to the data volume, and prints the secret key once in the deploy logs.
It then execs the relay. The behaviour is pinned by
test/boot_test.sh, which runs in CI before publish.
Upstream publishes no semver tags to GHCR — only :main, :latest and
:sha-<7> — and ships roughly daily. The wrapper pins upstream by digest so a
deploy is reproducible, and the digest moves when it is tested, not whenever
main does.
docker build -t buzz-railway:test .
./test/boot_test.shNeeds Docker. Takes about a minute.
Buzz is built by Block, Inc. and licensed Apache-2.0. This repo only packages it for Railway.