Files
StreamHall/docker-compose.yml
T
Stardream 2b0aaf3a5d
Build and Push Docker Image / build (push) Successful in 12s
fix: security hardening and code review improvements
- hls proxy now signs full URL instead of hostname only (SSRF)
- viewer token required to start session (prevents stats forgery and password bypass)
- weak SECRET_KEY placeholder replaced with REPLACE_ME, startup warning added
- api key auth drops query-string fallback, Bearer header only
- hls variant playlist DRM detection fetches first variant
- dash manifest DRM detection added
- android webview detection restricted to Telegram only
- privacy comment removed from ip hash (ip is stored in plaintext)
- csv export adds range filter (today/7d/30d/all), defaults to 30d
- analytics export button integrated as dropdown with range selection
- docker-compose placeholder defaults updated
- readme and readme.zh-cn updated for v1.2.0 changes
2026-05-24 01:40:03 +10:00

56 lines
1.5 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
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