media-rip/docker-compose.yml
xpltd bfc7eba03f Demote extractor_args to troubleshooting — yt-dlp defaults work out of the box
The 403 was a VPN IP issue, not a client selection issue. yt-dlp already
picks the right player clients (android_vr + web_safari). Moved
YTDLP__EXTRACTOR_ARGS out of 'Most Useful Settings' into a
'Troubleshooting: YouTube 403 Errors' section that explains the actual
common causes (VPN IPs, private content) before the escape hatch.
2026-03-21 22:36:18 -05:00

43 lines
1.4 KiB
YAML

# media.rip() — Docker Compose
#
# Usage:
# docker compose up
#
# Open http://localhost:8080 and paste a URL.
# On first run, you'll be prompted to set an admin password.
services:
mediarip:
image: ghcr.io/xpltdco/media-rip:latest
# build: . # Uncomment to build from source
ports:
- "8080:8000"
volumes:
- ./downloads:/downloads # Downloaded media — browsable on host
- mediarip-data:/data # Database, sessions, logs (persist this)
# - ./themes:/themes:ro # Custom theme CSS (optional)
# - ./config.yaml:/app/config.yaml:ro # Full config file (optional)
# environment:
## ── Uncomment to customize (all have sane defaults) ──
#
## Session isolation: isolated (default) | shared | open
# - MEDIARIP__SESSION__MODE=isolated
#
## Max parallel downloads (default: 3)
# - MEDIARIP__DOWNLOADS__MAX_CONCURRENT=3
#
## Auto-purge completed downloads after N minutes (default: 1440 = 24h)
# - MEDIARIP__PURGE__MAX_AGE_MINUTES=1440
#
## Pre-set admin password (skip first-run wizard):
# - MEDIARIP__ADMIN__PASSWORD_HASH=$2b$12$...
restart: unless-stopped
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8000/api/health"]
interval: 30s
timeout: 5s
retries: 3
start_period: 10s
volumes:
mediarip-data: