services: frame-stream-player: build: . image: frame-stream-player:latest container_name: frame-stream-player restart: unless-stopped ports: - "3000:3000" environment: PORT: "3000" NODE_ENV: production # split: smoothest, two upstream connections. # relay: one upstream connection, separate audio/frame ffmpeg workers. # single: one upstream connection and one ffmpeg worker; fallback only. PLAYBACK_CONNECTION_MODE: relay FFMPEG_LOG_LEVEL: warning FFMPEG_INPUT_SEEKABLE: "0" MAX_WS_BUFFER_BYTES: "2097152" MAX_AUDIO_QUEUE_BYTES: "16777216" MAX_RELAY_BRANCH_QUEUE_BYTES: "16777216" RECENT_URLS_PATH: /app/data/recent-urls.json extra_hosts: - "host.docker.internal:host-gateway" volumes: - frame-stream-data:/app/data # CPU decoding is the default and does not need device passthrough. # # Optional Intel/AMD VAAPI device passthrough: # devices: # - "/dev/dri:/dev/dri" # # Optional NVIDIA passthrough with Docker Compose v2: # gpus: all volumes: frame-stream-data: