media-rip/docker-compose.yml
xpltd f5b7a8b9ff README: recommended settings table, collapsible full reference, zero-config compose
- Quickstart emphasizes zero-config: defaults are production-ready
- 'Most Useful Settings' table with 5 knobs operators actually touch,
  each with 'when to change' context instead of just descriptions
- Full settings reference in collapsible <details> block
- Consolidated duplicate Admin Panel / Session Modes sections
- docker-compose.yml: environment section fully commented out,
  organized with inline explanations for each setting
2026-03-21 22:34:13 -05:00

46 lines
1.5 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$...
#
## YouTube tuning — change player client if downloads fail:
# - MEDIARIP__YTDLP__EXTRACTOR_ARGS={"youtube":{"player_client":["web_safari"]}}
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: