mirror of
https://github.com/xpltdco/media-rip.git
synced 2026-04-03 02:53:58 -06:00
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)
30 lines
792 B
YAML
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:
|