2025-12-17 00:42:43 +00:00
|
|
|
#version: '3.8'
|
|
|
|
|
|
|
|
|
|
services:
|
|
|
|
|
streamflow:
|
2025-12-24 23:57:41 +00:00
|
|
|
build: .
|
|
|
|
|
image: tv-streamflow
|
2025-12-17 00:42:43 +00:00
|
|
|
container_name: streamflow
|
|
|
|
|
restart: unless-stopped
|
|
|
|
|
ports:
|
|
|
|
|
- "0.0.0.0:12345:12345"
|
|
|
|
|
- "0.0.0.0:9000:9000"
|
|
|
|
|
environment:
|
|
|
|
|
- NODE_ENV=production
|
|
|
|
|
- PORT=12345
|
|
|
|
|
- DB_PATH=/app/data/streamflow.db
|
|
|
|
|
- JWT_SECRET=${JWT_SECRET:-change_this_in_production}
|
2025-12-24 23:57:41 +00:00
|
|
|
- SESSION_SECRET=${SESSION_SESSION:-change_this_in_production}
|
2025-12-17 00:42:43 +00:00
|
|
|
- DISABLE_SIGNUPS=true
|
|
|
|
|
- MAX_RECORDING_SIZE=100GB
|
|
|
|
|
- ENABLE_GPU=${ENABLE_GPU:-false}
|
2025-12-24 23:57:41 +00:00
|
|
|
- ALLOWED_ORIGIN=${ALLOWED_ORIGIN:-https://your-domain.com,http://your-domain.com}
|
2025-12-17 00:42:43 +00:00
|
|
|
volumes:
|
|
|
|
|
- streamflow-data:/app/data
|
|
|
|
|
- streamflow-logs:/app/logs
|
|
|
|
|
- streamflow-uploads:/app/uploads
|
|
|
|
|
# Uncomment the following lines to enable GPU acceleration
|
|
|
|
|
# For Intel Quick Sync (recommended for most users):
|
|
|
|
|
devices:
|
|
|
|
|
- /dev/dri:/dev/dri # Intel Quick Sync / VAAPI
|
|
|
|
|
# For NVIDIA GPU (requires nvidia-docker):
|
|
|
|
|
# deploy:
|
|
|
|
|
# resources:
|
|
|
|
|
# reservations:
|
|
|
|
|
# devices:
|
|
|
|
|
# - driver: nvidia
|
|
|
|
|
# count: 1
|
|
|
|
|
# capabilities: [gpu, video]
|
|
|
|
|
security_opt:
|
|
|
|
|
- no-new-privileges:true
|
|
|
|
|
cap_drop:
|
|
|
|
|
- ALL
|
|
|
|
|
privileged: true # Required for VPN operations
|
|
|
|
|
sysctls:
|
|
|
|
|
- net.ipv4.conf.all.src_valid_mark=1
|
|
|
|
|
- net.ipv6.conf.all.disable_ipv6=0
|
|
|
|
|
read_only: false
|
|
|
|
|
tmpfs:
|
|
|
|
|
- /tmp:size=1G,mode=1777
|
|
|
|
|
networks:
|
|
|
|
|
- streamflow-network
|
|
|
|
|
healthcheck:
|
|
|
|
|
test: ["CMD", "node", "backend/healthcheck.js"]
|
|
|
|
|
interval: 30s
|
|
|
|
|
timeout: 10s
|
|
|
|
|
retries: 3
|
|
|
|
|
start_period: 40s
|
|
|
|
|
|
|
|
|
|
volumes:
|
|
|
|
|
streamflow-data:
|
|
|
|
|
driver: local
|
|
|
|
|
streamflow-logs:
|
|
|
|
|
driver: local
|
|
|
|
|
streamflow-uploads:
|
|
|
|
|
driver: local
|
|
|
|
|
|
|
|
|
|
networks:
|
|
|
|
|
streamflow-network:
|
|
|
|
|
driver: bridge
|