version: "3.9" services: # Proxy Cloudflare WARP (HTTP + SOCKS5 sur le port 1080) utilisé par yt-dlp warp: image: caomingjun/warp container_name: subsonics-warp restart: unless-stopped # Requis pour que WARP puisse créer son interface TUN device_cgroup_rules: - "c 10:200 rwm" cap_add: - MKNOD - AUDIT_WRITE - NET_ADMIN sysctls: - net.ipv6.conf.all.disable_ipv6=0 - net.ipv4.conf.all.src_valid_mark=1 environment: - WARP_SLEEP=2 # - WARP_LICENSE_KEY= # optionnel : clé WARP+ # Exposé uniquement en local (pour le dev hors Docker), jamais sur l'extérieur : ce serait un proxy ouvert ports: - "127.0.0.1:1080:1080" volumes: - subsonics-warp-data:/var/lib/cloudflare-warp # Fournisseur de PO tokens pour yt-dlp (plugin bgutil installé dans l'image du backend) # Aucun port publié : le serveur n'a pas d'authentification, il reste sur le réseau interne. # Il reçoit le --proxy de yt-dlp dans chaque requête : warp:1080 lui est joignable sur ce même réseau. # La version doit correspondre à BGUTIL_VERSION dans le Dockerfile. bgutil-provider: image: brainicism/bgutil-ytdlp-pot-provider:2.0.1 container_name: subsonics-bgutil restart: unless-stopped init: true subsonics-backend: build: context: . # dossier backend dockerfile: Dockerfile args: - BGUTIL_VERSION=2.0.1 container_name: subsonics-backend # Init minimal (tini) : node n'est pas PID 1, les enfants orphelins de yt-dlp (node, ffmpeg) sont bien récupérés init: true ports: - "4000:4000" environment: - WARP_PROXY=http://warp:1080 # Si WARP tombe ou se fait bloquer, on retente en connexion directe - WARP_FALLBACK_DIRECT=true # PO tokens (verrouillé dans l'administration tant que la variable est définie) - YTDLP_POT_PROVIDER=http://bgutil-provider:4416 depends_on: - warp - bgutil-provider volumes: # Contient aussi data/youtube/ : cookies YouTube, réglages et cache de yt-dlp - subsonics-backend-data:/app/data # Logs persistés (consultables depuis l'interface d'administration) - subsonics-backend-logs:/app/logs restart: unless-stopped volumes: subsonics-backend-data: subsonics-backend-logs: subsonics-warp-data: