# 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: