media-rip/docker-compose.yml
xpltd efc2ead796 M001: media.rip() v1.0 — complete application
Full-featured self-hosted yt-dlp web frontend:
- Python 3.12+ / FastAPI backend with async SQLite, SSE transport, session isolation
- Vue 3 / TypeScript / Pinia frontend with real-time progress, theme picker
- 3 built-in themes (cyberpunk/dark/light) + drop-in custom theme system
- Admin auth (bcrypt), purge system, cookie upload, file serving
- Docker multi-stage build, GitHub Actions CI/CD
- 179 backend tests, 29 frontend tests (208 total)

Slices: S01 (Foundation), S02 (SSE+Sessions), S03 (Frontend),
        S04 (Admin+Auth), S05 (Themes), S06 (Docker+CI)
2026-03-18 20:00:17 -05:00

30 lines
792 B
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/
services:
mediarip:
image: ghcr.io/jlightner/media-rip:latest
# build: . # Uncomment to build from source
ports:
- "8080:8000"
volumes:
- ./downloads:/downloads # Downloaded files
- ./themes:/themes # Custom themes (optional)
- mediarip-data:/data # Database + internal state
environment:
- MEDIARIP__SESSION__MODE=isolated
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: