Files
StreamHall/docker-compose.yml
T
Stardream 6d39c512d7
Build and Push Docker Image / build (push) Successful in 15s
feat: upstream cookie proxy, HLS connection pool, multi-link TG notifications
- Add upstream Cookie support for HLS full-proxy mode (CloudFront signed cookies
  stored server-side as opaque tokens; never exposed in proxy URLs)
- Add HTTP connection pool for HLS proxy upstream requests to avoid per-request
  TLS handshake overhead; introduce HLS_PROXY_TIMEOUT separate from probe timeout
- Add per-link TG start notification with 30s merge window: each newly-live link
  fires independently, links that come online within the window are merged into
  one message with names joined by ' & '
- Fix TG reconnect grace period (TG_RECONNECT_GRACE_SECS=60): suppress both
  stop and start notifications for brief RTMP disconnects
- Fix stream probe to check all links for TG-enabled streams; non-TG streams
  still stop at first valid link to avoid unnecessary probes
- Filter high-frequency HTTP access log entries (HLS segments, heartbeat, etc.)
- Add json-file logging driver config to docker-compose for reliable log access
2026-05-31 01:16:48 +10:00

61 lines
1.6 KiB
YAML

services:
streamhall:
image: git.stdm.moe/stardream/streamhall:latest
# To build from source instead: comment out image above and uncomment below
# build: .
container_name: streamhall
restart: unless-stopped
depends_on:
- postgres
ports:
- "8085:8080"
environment:
# Generate with: openssl rand -hex 32
SECRET_KEY: "REPLACE_ME"
DATABASE_URL: "postgresql://streamhall:REPLACE_DB_PASSWORD@postgres:5432/streamhall"
TZ: "UTC"
RTMP_HOST: "srs"
# Comma-separated list of video directories (optional label:path format)
# Example for multiple dirs: "movies:/app/media/movies,anime:/app/media/anime"
VIDEOS_DIRS: "/app/videos"
volumes:
- ./videos:/app/videos
# Mount additional directories as needed:
# - /local/path:/app/media/label
logging:
driver: json-file
options:
max-size: "10m"
max-file: "3"
postgres:
image: postgres:16-alpine
container_name: streamhall-postgres
restart: unless-stopped
environment:
POSTGRES_DB: "streamhall"
POSTGRES_USER: "streamhall"
POSTGRES_PASSWORD: "REPLACE_DB_PASSWORD"
TZ: "UTC"
volumes:
- ./postgres-data:/var/lib/postgresql/data
srs:
image: ossrs/srs:6
container_name: streamhall-srs
restart: unless-stopped
ports:
- "1935:1935"
- "18088:8080"
nginx-hls:
image: nginx:alpine
container_name: streamhall-nginx-hls
restart: unless-stopped
depends_on:
- streamhall
ports:
- "8889:80"
volumes:
- ./nginx-hls.conf:/etc/nginx/conf.d/default.conf:ro