Skip to content

Self-Hosting Overview

Run Buzz on infrastructure you control with Docker Compose or Coolify. This section covers the public DNS, TLS, authentication, persistent data, and operational settings needed for a production installation.

Before exposing Buzz, decide who may sign in. By default, any reachable GitHub user can create sites and consume storage. Use BUZZ_ALLOWED_GITHUB_USERS for a username allowlist. Buzz has no built-in rate limiting or total or per-user storage quota.

If Buzz is for a closed group, configure and verify access controls and rate limits at an upstream proxy, virtual private network, or firewall before deployment. Review Buzz’s security boundaries for the controls the upstream layer must provide.

Upstream access controls compared with authentication and limits provided by Buzz

You need:

  • A Linux server with Docker Engine and Docker Compose, or a Coolify server.
  • A domain whose DNS records you can change. These guides use buzz.example.com as the Buzz domain.
  • Public access to TCP port 443. Port 80 is used by the bundled HTTP-to-HTTPS redirect.
  • A GitHub account that can create an OAuth app.
  • A backup destination outside the Docker host.

The bundled standalone deployment uses Cloudflare DNS for Let’s Encrypt DNS-01 validation. If your DNS is hosted elsewhere, you must adapt the Traefik certificate resolver yourself. That configuration isn’t provided or tested by this repository.

  • Use Docker Compose when you manage Docker and Traefik on the host.
  • Use Coolify when Coolify already manages the host and its Traefik proxy.

Both paths build the Buzz server from the repository and mount the named volume buzz_buzz-data at /data. The volume contains deployed site files, the SQLite database, users, sessions, deployment tokens, and analytics.

Buzz routes requests by hostname:

  • https://buzz.example.com serves the dashboard and API.
  • https://my-site.buzz.example.com serves the site named my-site.

The base hostname and wildcard hostname must both resolve to the server. TLS must cover buzz.example.com and *.buzz.example.com.

  1. Decide whether the server may be public. Configure upstream controls first if access must be restricted.
  2. Choose the Buzz domain and configure DNS and TLS for the base and wildcard hostnames.
  3. Create the GitHub OAuth app for the intended dashboard URL.
  4. Deploy Buzz with Docker Compose or Coolify using the domain and GitHub credentials.
  5. Follow the selected deployment guide’s success checks.
  6. Configure deployment limits for the host.
  7. Create and verify a backup.

Google Search Console is an optional advanced integration. It isn’t required to deploy or operate Buzz.

Use the configuration reference for the complete environment variable list.