Self-hosted multi-platform broadcast newsroom for activist collectives: publishing pipeline with group approval and DST-proof scheduling, TweetDeck-style column wall with hostile-content-safe rendering, live control room with Auto Director, bridged chat governance with polls and quorum, distributed sandboxed transcode workers, encrypted content-addressed archive, monthly analytics. MIT licensed. See README.md and docs/.
33 lines
1.1 KiB
YAML
33 lines
1.1 KiB
YAML
# 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:
|