streamflow/docker-compose.yml

67 lines
1.7 KiB
YAML
Raw Normal View History

#version: '3.8'
services:
streamflow:
image: ghcr.io/aiulian25/streamflow-iptv:latest
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}
- SESSION_SECRET=${SESSION_SECRET:-change_this_in_production}
- DISABLE_SIGNUPS=true
- MAX_RECORDING_SIZE=100GB
- ENABLE_GPU=${ENABLE_GPU:-false}
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