69 lines
2.3 KiB
YAML
69 lines
2.3 KiB
YAML
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:
|