2026-06-13 13:28:25 -04:00
|
|
|
# Buzz production Docker Compose environment.
|
|
|
|
|
# Copy to .env and replace every CHANGE_ME value before running.
|
|
|
|
|
# The bootstrap script should generate this file for normal users.
|
|
|
|
|
|
|
|
|
|
# Image published by the public image pipeline. Use `:main` for pre-release testing. Pin `:sha-<7>` or a semver release tag for production.
|
|
|
|
|
BUZZ_IMAGE=ghcr.io/block/buzz:main
|
|
|
|
|
|
|
|
|
|
# Public host name. Used by compose.caddy.yml and URL-derived settings below.
|
|
|
|
|
BUZZ_DOMAIN=buzz.example.com
|
|
|
|
|
RELAY_URL=wss://buzz.example.com
|
|
|
|
|
BUZZ_MEDIA_BASE_URL=https://buzz.example.com/media
|
|
|
|
|
BUZZ_MEDIA_SERVER_DOMAIN=buzz.example.com
|
|
|
|
|
BUZZ_CORS_ORIGINS=https://buzz.example.com
|
|
|
|
|
|
|
|
|
|
# Production defaults. Closed relay mode requires RELAY_OWNER_PUBKEY and a stable relay key.
|
|
|
|
|
BUZZ_REQUIRE_AUTH_TOKEN=true
|
|
|
|
|
BUZZ_REQUIRE_RELAY_MEMBERSHIP=true
|
|
|
|
|
BUZZ_ALLOW_NIP_OA_AUTH=true
|
|
|
|
|
BUZZ_AUTO_MIGRATE=true
|
|
|
|
|
BUZZ_GIT_CONFORMANCE_PROBE=true
|
|
|
|
|
RUST_LOG=buzz_relay=info,buzz_db=info,buzz_auth=info,buzz_pubsub=info,tower_http=info
|
|
|
|
|
|
|
|
|
|
# Owner identity. Set to a 64-character hex Nostr pubkey.
|
|
|
|
|
RELAY_OWNER_PUBKEY=CHANGE_ME_OWNER_PUBKEY_HEX
|
|
|
|
|
|
|
|
|
|
# Stable secrets. Generate once, keep in .env, and back up securely.
|
|
|
|
|
BUZZ_RELAY_PRIVATE_KEY=CHANGE_ME_64_HEX_PRIVATE_KEY
|
|
|
|
|
BUZZ_GIT_HOOK_HMAC_SECRET=CHANGE_ME_RANDOM_64_HEX
|
|
|
|
|
POSTGRES_DB=buzz
|
|
|
|
|
POSTGRES_USER=buzz
|
|
|
|
|
POSTGRES_PASSWORD=CHANGE_ME_RANDOM_PASSWORD
|
|
|
|
|
REDIS_PASSWORD=CHANGE_ME_RANDOM_PASSWORD
|
|
|
|
|
BUZZ_S3_ACCESS_KEY=CHANGE_ME_RANDOM_ACCESS_KEY
|
|
|
|
|
BUZZ_S3_SECRET_KEY=CHANGE_ME_RANDOM_SECRET_KEY
|
|
|
|
|
BUZZ_S3_BUCKET=buzz-media
|
2026-07-29 17:00:41 -07:00
|
|
|
# Bundled MinIO uses path-style URLs; deploy/compose/compose.yml pins this.
|
|
|
|
|
BUZZ_S3_ADDRESSING_STYLE=path
|
2026-06-13 13:28:25 -04:00
|
|
|
|
2026-08-10 19:37:23 -04:00
|
|
|
# Optional private moderation dashboard. Set BUZZ_ADMIN_HOST plus BUZZ_ADMIN_AUTH:
|
|
|
|
|
# BUZZ_ADMIN_AUTH=token (default) — bearer token, recommended for public deployments.
|
|
|
|
|
# BUZZ_ADMIN_TOKEN must be exactly 64 hex characters (openssl rand -hex 32).
|
|
|
|
|
# Every API request requires Authorization: Bearer.
|
|
|
|
|
# BUZZ_ADMIN_AUTH=disabled — no auth. Use only behind a VPN or private ingress.
|
|
|
|
|
# Relay logs a WARN on boot. BUZZ_ADMIN_TOKEN must NOT also be set.
|
|
|
|
|
# BUZZ_ADMIN_AUTH=nip98 — NIP-98 HTTP Auth via Nostr pubkey-based auth.
|
|
|
|
|
# Authorized principals resolve from RELAY_OPERATOR_PUBKEYS (config Operators),
|
|
|
|
|
# RELAY_OWNER_PUBKEY (implicit Operator fallback when operator list is empty),
|
|
|
|
|
# and the relay_operators table (DB-managed Operator/Moderator roster).
|
|
|
|
|
# Dashboard requires a NIP-07 browser extension (nos2x or Alby).
|
|
|
|
|
# Any unrecognised BUZZ_ADMIN_AUTH value, or conflicting combinations, aborts startup.
|
2026-08-10 20:06:41 -04:00
|
|
|
# When BUZZ_ADMIN_HOST is set, the relay advertises the admin origin in its NIP-11
|
|
|
|
|
# document (`admin_api` field) so clients auto-discover the console without manual entry.
|
|
|
|
|
# Setting RELAY_OPERATOR_PUBKEYS for the console does NOT require RELAY_OPERATOR_API_ORIGIN;
|
|
|
|
|
# that origin is only for community provisioning (POST /operator/communities), which fails
|
|
|
|
|
# closed at request time until it is set (the relay boots with a WARN in the meantime).
|
2026-08-10 19:37:23 -04:00
|
|
|
# BUZZ_ADMIN_HOST=admin.buzz.example.com
|
|
|
|
|
# BUZZ_ADMIN_AUTH=token
|
|
|
|
|
# BUZZ_ADMIN_TOKEN=CHANGE_ME_RANDOM_64_HEX
|
|
|
|
|
# RELAY_OPERATOR_PUBKEYS=<64-char hex pubkey>[,<64-char hex pubkey>...]
|
2026-08-10 20:06:41 -04:00
|
|
|
# RELAY_OPERATOR_API_ORIGIN=https://admin.buzz.example.com
|
2026-08-10 19:37:23 -04:00
|
|
|
|
2026-06-13 13:28:25 -04:00
|
|
|
# Optional host ports. Base compose publishes the relay directly on BUZZ_HTTP_PORT.
|
|
|
|
|
BUZZ_HTTP_PORT=3000
|
|
|
|
|
|
|
|
|
|
# Caddy host ports. Only used with compose.caddy.yml.
|
|
|
|
|
CADDY_HTTP_PORT=80
|
|
|
|
|
CADDY_HTTPS_PORT=443
|
|
|
|
|
|
|
|
|
|
# Dev override ports. Only used with compose.dev.yml.
|
|
|
|
|
POSTGRES_PORT=5432
|
|
|
|
|
REDIS_PORT=6379
|
|
|
|
|
MINIO_API_PORT=9000
|
|
|
|
|
MINIO_CONSOLE_PORT=9001
|
|
|
|
|
ADMINER_PORT=8082
|
|
|
|
|
PROMETHEUS_PORT=9090
|