Files

59 lines
1.4 KiB
YAML

services:
# Default service: works on Docker Desktop (Windows/macOS) and Linux.
# Exposes HTTP and a *range* of UDP ports for triggers.
# Keep your Event UDP ports within this published range.
syncplayer:
build: .
ports:
- "5000:5000/tcp"
# UDP trigger ports (edit range if needed)
- "7000-7999:7000-7999/udp"
environment:
# Persistent data root inside container (mounted below)
DATA_DIR: /data
MEDIA_DIR: /data/media
LOG_DIR: /data/logs
# Flask-SocketIO async backend for Linux containers
ASYNC_MODE: eventlet
# App bind settings (when using host networking, PORT must match gunicorn bind)
HOST: 0.0.0.0
PORT: 5000
# Change this in production
SECRET_KEY: change-me
# Keep CORS permissive for LAN kiosk browsers
CORS_ORIGINS: "*"
volumes:
- ./data:/data
restart: unless-stopped
# Optional: host-networked service for Linux hosts.
# Use: docker compose --profile hostnet up -d --build
# This avoids needing to pre-declare UDP ports (dynamic ports just work).
syncplayer-host:
profiles: ["hostnet"]
build: .
network_mode: host
environment:
DATA_DIR: /data
MEDIA_DIR: /data/media
LOG_DIR: /data/logs
ASYNC_MODE: eventlet
HOST: 0.0.0.0
PORT: 5000
SECRET_KEY: change-me
CORS_ORIGINS: "*"
volumes:
- ./data:/data
restart: unless-stopped