# PeerTube instance for Tactical Media Broadcast Hub — DESIGNED TO RUN ON A DIFFERENT SERVER. # Deploy: copy this directory to the media server, create .env from .env.example, then `docker compose up -d`. # Docs: docs/peertube-setup.md (S3, branding sync, connector bridge, livechat) services: peertube: image: chocobozzz/peertube:production-bookworm # Pin to a specific tag in production, e.g. chocobozzz/peertube:v7.x env_file: .env ports: - "80:9000" # put behind your reverse proxy (nginx/caddy) with HTTPS - "1935:1935" # RTMP ingest — the Tactical Media Broadcast Hub media worker pushes live here volumes: - peertube_assets:/app/storage/client-overrides # custom logo/emoji live here too, but BRAND SYNC via API is canonical - peertube_config:/app/config depends_on: - redis - postfix restart: unless-stopped redis: image: redis:7-alpine restart: unless-stopped postfix: image: mwader/postfix-relay environment: - POSTFIX_myhostname=${PEERTUBE_WEBSERVER_HOSTNAME} restart: unless-stopped volumes: peertube_assets: peertube_config: