---
title: "Deploy Buzz by Block"
description: "A workspace where humans and agents build together, on a relay you own."
category: "AI/ML"
url: https://railway.com/deploy/buzz-railway-template
---

# Deploy Buzz by Block

A workspace where humans and agents build together, on a relay you own.

**[Deploy Buzz by Block on Railway](https://railway.com/template/buzz-railway-template)**

- **Creator:** codestorm
- **Category:** AI/ML
- **Total deploys:** 3

## Template content

### Init https://devicons.railway.app/minio

- **Image:** minio/mc
- **Start command:** `sh -c "echo Waiting for MinIO endpoint: $MINIO_ENDPOINT; until mc alias set local $MINIO_ENDPOINT $MINIO_ROOT_USER $MINIO_ROOT_PASSWORD; do echo MinIO alias not ready yet...; sleep 3; done; until mc admin info local >/dev/null 2>&1; do echo MinIO server not ready yet...; sleep 3; done; until mc mb --ignore-existing local/$MINIO_BUCKET; do echo Bucket create failed, retrying...; sleep 3; done; echo Bucket ready: $MINIO_BUCKET; tail -f /dev/null"`

### Postgres https://devicons.railway.app/i/postgresql.svg

- **Image:** ghcr.io/railwayapp-templates/postgres-ssl:18

### Redis https://cdn.sanity.io/images/sy1jschh/production/0ce0bfdcfbdbf69662b1116671f97c2dd788b655-157x157.svg

- **Image:** redis:8.2.1
- **Start command:** `/bin/sh -c "rm -rf $RAILWAY_VOLUME_MOUNT_PATH/lost+found/ && exec docker-entrypoint.sh redis-server --requirepass $REDIS_PASSWORD --save 60 1 --dir $RAILWAY_VOLUME_MOUNT_PATH"`

### Bucket https://devicons.railway.app/MinIO

- **Source:** railwayapp-templates/minio
- **Start command:** `/bin/sh -c "exec minio server --address [::]:$MINIO_PRIVATE_PORT $RAILWAY_VOLUME_MOUNT_PATH"`

### Buzz https://cdn.dribbble.com/userupload/43252809/file/original-c83b0c0caf1fb4e30c4ffbd000d48d74.jpg

- **Image:** ghcr.io/block/buzz:latest
- **Public domain:** Yes

### Console https://devicons.railway.app/MinIO

- **Source:** railwayapp-templates/minio-console
- **Start command:** `/bin/sh -c "exec console server --host 0.0.0.0 --port $PORT"`
- **Public domain:** Yes

## Documentation

# Deploy and Host Buzz on Railway

Buzz is a production-ready Nostr relay designed for authenticated communities, private collaboration, media hosting, and Git-backed content. Unlike traditional relays that primarily forward events, Buzz includes integrated authentication, membership management, object storage, and persistent infrastructure components, making it suitable for deploying complete decentralized social applications.

## About Hosting Buzz

This Railway template deploys Buzz using the official `ghcr.io/block/buzz:latest` container image together with all required infrastructure components. The stack automatically provisions PostgreSQL for persistent data, Redis for caching and pub/sub, and an S3-compatible object storage service for media uploads.

All required environment variables are pre-configured, generated, or linked automatically through Railway. During deployment, the only value you need to provide is your **64-character hexadecimal Nostr public key** (`RELAY_OWNER_PUBKEY`). Once deployed, Buzz automatically performs database migrations and starts with authentication, media hosting, Git storage, and relay membership enabled by default.

## Common Use Cases

- Host a private or community-focused Nostr relay.
- Store and serve media using integrated S3-compatible object storage.
- Deploy a production-ready decentralized social infrastructure with minimal configuration.

## Why Choose Buzz?

| Feature | Buzz | Most Traditional Nostr Relays |
|----------|:---:|:-----------------------------:|
| Authentication & Membership | ✅ | ❌ |
| Private Community Support | ✅ | ❌ |
| Built-in Media Storage | ✅ | ❌ |
| S3-Compatible Object Storage | ✅ | ❌ |
| Git-backed Content Storage | ✅ | ❌ |
| PostgreSQL Support | ✅ | ❌ |
| Redis Integration | ✅ | ❌ |
| Automatic Database Migrations | ✅ | ❌ |
| Production-ready by Default | ✅ | ❌ |
| Railway One-Click Deployment | ✅ | ❌ |
| Persistent Media Hosting | ✅ | ❌ |
| Self-hosted | ✅ | ✅ |
| Open Source | ✅ | ✅ |

## Dependencies for Buzz Hosting

This template automatically provisions the following services:

- PostgreSQL
- Redis
- S3-compatible Object Storage (MinIO)
- MinIO Console

## Generate Your RELAY_OWNER_PUBKEY

This template requires your **64-character hexadecimal Nostr public key** (`RELAY_OWNER_PUBKEY`).

> **Do not use an `npub...` value.** Buzz requires the raw 64-character hexadecimal public key.

### Option 1 — Generate using Nostr Tool (Recommended)

1. Visit https://nostrtool.com/
2. Generate a new keypair.
3. Copy the **Hex Public Key**.
4. Paste it into the `RELAY_OWNER_PUBKEY` environment variable during deployment.

### Option 2 — Convert an Existing `npub`

If you already have an `npub` identity, you can convert it to its hexadecimal public key using online Nostr utilities or compatible wallet applications.

Example:

```text
npub1xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
        ↓
4f2b0c7d8e8e4e5f9b8b3b4d5d3e1f9d5c6f7a8b9c0d1e2f3a4b5c6d7e8f9012
```

Your final value should look like:

```env
RELAY_OWNER_PUBKEY=4f2b0c7d8e8e4e5f9b8b3b4d5d3e1f9d5c6f7a8b9c0d1e2f3a4b5c6d7e8f9012
```

### Deployment Dependencies

Before deploying, prepare the following:

- A **64-character hexadecimal Nostr public key** (not an `npub` value).
- A Railway account.

The deployment automatically configures:

- PostgreSQL connection
- Redis connection
- S3 bucket credentials
- Media server
- Relay URL
- Database migrations
- Authentication
- Git storage
- Relay membership

### Implementation Details

This template deploys the official Buzz container image:

```text
ghcr.io/block/buzz:latest
```

Only one environment variable requires user input:

```env
RELAY_OWNER_PUBKEY=&lt;64-character hexadecimal public key&gt;
```

All remaining environment variables, secrets, database credentials, Redis connection, S3 configuration, relay identity, and URLs are generated automatically by Railway during deployment.

## Notes

After deployment, opening the web interface will display:

> This relay is empty

This is expected. Buzz starts with an empty relay and no repositories.

To begin using your relay:

1. Install the Buzz Desktop application.
2. Open your deployed relay from the web interface.
3. Clone or create a repository.
4. Push your first repository to the relay.

Once pushed, repositories will automatically appear in the web interface.

## Why Deploy Buzz on Railway?

Railway is a singular platform to deploy your infrastructure stack. Railway will host your infrastructure so you don't have to deal with configuration, while allowing you to vertically and horizontally scale it.

By deploying Buzz on Railway, you are one step closer to supporting a complete full-stack application with minimal burden. Host your servers, databases, AI agents, and more on Railway.

## Similar templates

- [Chat Chat](https://railway.com/deploy/-WWW5r) — Chat Chat, your own unified chat and search to AI platform.
- [stella](https://railway.com/deploy/stella) — Self-host stella with web, API, Postgres, Redis, and object storage.
- [Hermes Agent | OpenClaw Alternative with Dashboard](https://railway.com/deploy/hermes-agent-or-openclaw-alternative-wit) — Self-Hosted Hermes AI Agent for Telegram, Discord & Slack

Open this page in a browser: https://railway.com/deploy/buzz-railway-template
