# === Copy to .env on the PeerTube server and fill in === PEERTUBE_WEBSERVER_HOSTNAME=peertube.example.com PEERTUBE_WEBSERVER_PORT=443 PEERTUBE_WEBSERVER_HTTPS=true # Initial admin (set on first boot only) PEERTUBE_ADMIN_EMAIL=admin@example.com # --- S3 object storage (REQUIRED per project decision) --- # Works with any S3-compatible endpoint: MinIO on the same server, another server, or a cloud provider. # Tactical Media Broadcast Hub's own media plane already speaks S3 (StorageService) — use the same bucket infra # but a DEDICATED bucket for PeerTube (e.g. tactical-media-broadcast-hub-peertube) with its own credentials. PEERTUBE_OBJECT_STORAGE_ENABLED=true PEERTUBE_OBJECT_STORAGE_WEB_ENDPOINT=https://s3.example.com PEERTUBE_OBJECT_STORAGE_WEB_REGION=us-east-1 PEERTUBE_OBJECT_STORAGE_ACCESS_KEY_ID=CHANGEME PEERTUBE_OBJECT_STORAGE_SECRET_ACCESS_KEY=CHANGEME PEERTUBE_OBJECT_STORAGE_VIDEOS_BUCKET=tactical-media-broadcast-hub-peertube-videos PEERTUBE_OBJECT_STORAGE_STREAMING_PLAYLISTS_BUCKET=tactical-media-broadcast-hub-peertube-playlists PEERTUBE_OBJECT_STORAGE_REDUNDANCY_BUCKET=tactical-media-broadcast-hub-peertube-redundancy # Same credentials/endpoint config repeated for the internal (non-web) endpoints if different: # PEERTUBE_OBJECT_STORAGE_ENDPOINT=... # --- Livestreaming (fed by the Tactical Media Broadcast Hub compositor via RTMP) --- PEERTUBE_TRANSCODING_ENABLED=true PEERTUBE_LIVE_ENABLED=true PEERTUBE_LIVE_ALLOW_REPLAY=true PEERTUBE_LIVE_MAX_DURATION=-1 PEERTUBE_LIVE_TRANSCODING_ENABLED=true PEERTUBE_LIVE_RTMP_PORT=1935 # --- Database (use the container's postgres or point at your own) --- PEERTUBE_DB_USERNAME=peertube PEERTUBE_DB_PASSWORD=CHANGEME PEERTUBE_DB_HOSTNAME=postgres # For an external DB, add a postgres service or set PEERTUBE_DB_HOSTNAME to the server. # --- Federation --- PEERTUBE_FEDERATION_ENABLED=true # --- Trust the Tactical Media Broadcast Hub API server for connector/bridge calls --- PEERTUBE_TRUST_PROXY=127.0.0.1,::1