How to Self-Host a Community Relay in Buzz (Complete Local Setup)

The video explains the benefits and setup process of self-hosting a Buzz community relay, highlighting that it allows full local control, offline functionality, and access to backend components like Postgres and MinIO, unlike Block-hosted relays which depend on external servers and have limitations. The presenter provides a step-by-step guide using Docker, shares a self-hosting skill for troubleshooting, and emphasizes that while self-hosting requires more maintenance, it offers greater data control and administrative features.

In this video, the presenter demonstrates the difference between a self-hosted community relay in Buzz and one hosted by Block. He shows that with no internet connection, a self-hosted community still functions fully, allowing creation of channels and access to projects locally. In contrast, a community hosted by Block becomes inaccessible without internet, as it relies on Block’s infrastructure. This highlights the key distinction: self-hosting means running the relay on your own machine or server, giving you full control over data and uptime, whereas Block-hosted communities depend on their servers and have limitations like a cap on the number of communities.

The presenter explains that both hosted and self-hosted relays use the same Buzz Relay binary, and user keys and event signing remain consistent across both setups. The main difference lies in custody and control—Block-hosted relays store data, backups, and logs on Block’s infrastructure with zero operational overhead for the user, while self-hosted relays require you to manage backups, uptime, TLS, and other maintenance tasks yourself. Self-hosting offers additional administrative controls such as closed relay owner mode, membership enforcement, and moderation dashboards, which are not available in the hosted version.

To set up a self-hosted relay, the presenter outlines the prerequisites including Docker Desktop, Docker Compose, and WSL enabled on your machine. The process involves cloning the Buzz GitHub repository, configuring environment variables with generated secrets and your public key, and running the relay using Docker Compose. He demonstrates starting the relay locally, adding agents, creating channels, and interacting with projects—all running entirely on his local machine without internet access. This setup is suitable for local tinkering or running on a VPS for 24/7 availability with a custom domain.

The video also covers how to inspect and manage the self-hosted relay’s backend components such as Postgres, Redis, MinIO, and the relay itself through Docker. The presenter shows how to access the Postgres database using Adminer to view channels, events, and project data stored locally. He also highlights the MinIO console for managing media files uploaded to the relay. This visibility into the backend infrastructure is a key advantage of self-hosting, allowing users to back up, inspect, and control their data directly.

Finally, the presenter acknowledges that self-hosting Buzz is still early-stage and can be complex or buggy. To assist users, he has created a Buzz self-hosting skill in his Buzz skills repository, which provides a detailed guide and troubleshooting tips based on his own experiences. He encourages viewers to ask questions and engage in the comments, emphasizing that while self-hosting requires more effort, it offers greater control and independence compared to relying on Block’s hosted infrastructure.