Files

76 lines
3.5 KiB
Bash
Raw Permalink Normal View History

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
# 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
# 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.
# 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).
# 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>...]
# RELAY_OPERATOR_API_ORIGIN=https://admin.buzz.example.com
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