media-rip/docker-compose.yml
xpltd 61ee8d4eff Clean up docs: fix config defaults, remove redundant vars, add missing ones
README Configuration section:
- Organized into logical groups (Core, Admin, Purge, UI, yt-dlp)
- Fixed wrong defaults: admin.enabled (true not false), purge.enabled
  (true not false), purge field is max_age_minutes not max_age_hours,
  purge.cron is '* * * * *' not '0 3 * * *'
- Removed redundant internal-path vars (DB_PATH, DATA_DIR, OUTPUT_DIR)
  that are pre-set in the Dockerfile and shouldn't be changed
- Added missing vars: LOG_LEVEL, UI settings, PRIVACY_MODE, YTDLP
- Added extractor_args usage examples (YAML and env var)

docker-compose files:
- Switched healthcheck from python urllib to curl (already in image)
- Removed stale PURGE__MAX_AGE_HOURS references
- Added commented yt-dlp extractor_args example
- Simplified comments to reflect actual defaults
2026-03-21 22:28:31 -05:00

41 lines
1.3 KiB
YAML

# media.rip() — Zero-Config Docker Compose
#
# Usage:
# docker compose up
#
# The app will be available at http://localhost:8080
# Downloads are persisted in ./downloads/
# Database + session state persisted in the mediarip-data volume.
services:
mediarip:
image: ghcr.io/xpltdco/media-rip:latest
# build: . # Uncomment to build from source
ports:
- "8080:8000"
volumes:
- ./downloads:/downloads # Downloaded media files (browsable)
- mediarip-data:/data # Database, sessions, error logs
# Optional:
# - ./themes:/themes:ro # Custom theme CSS overrides
# - ./config.yaml:/app/config.yaml:ro # YAML config file
environment:
- MEDIARIP__SESSION__MODE=isolated
# Admin panel (enabled by default — set password on first run in browser):
# - MEDIARIP__ADMIN__PASSWORD_HASH=$2b$12$...your.bcrypt.hash...
#
# Auto-purge (enabled by default — 24h retention):
# - MEDIARIP__PURGE__MAX_AGE_MINUTES=1440
#
# yt-dlp tuning (optional):
# - 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: