Create Home wiki page for media-rip

xpltd_admin 2026-04-03 23:03:31 -06:00
commit 7f897b6e26

73
Home.md Normal file

@ -0,0 +1,73 @@
# media-rip
| Meta | Value |
|------|-------|
| **Repo** | `xpltdco/media-rip` |
| **Page** | `Home` |
| **Audience** | developers, agents, newcomers |
| **Last Updated** | 2026-04-04 |
| **Status** | current |
## What is media-rip?
media-rip is a self-hosted media downloader with a web UI. It wraps yt-dlp to provide a clean, themeable browser interface for downloading video and audio from YouTube, SoundCloud, and hundreds of other platforms. It features per-session download isolation, real-time progress via Server-Sent Events, an admin panel, automatic cleanup, and a custom theme system.
## Current Status
**Actively developed.** Published as multi-arch Docker images (amd64 + arm64) on GitHub Container Registry. Features are production-ready with comprehensive test coverage and CI/CD.
## Key URLs
| Resource | URL |
|----------|-----|
| **Application** | `https://mediarip.xpltd.co` |
| **Repository** | `https://git.xpltd.co/xpltdco/media-rip` |
| **Container Image** | `ghcr.io/xpltdco/media-rip:latest` |
| **Health Check** | `https://mediarip.xpltd.co/api/health` |
## Core Features
- **Web UI** — Clean Vue 3 interface for submitting URLs and monitoring downloads
- **Format Selection** — Browse available formats (video resolutions, audio codecs) before downloading
- **Playlist Support** — Automatically splits playlists into individual download jobs
- **Real-Time Progress** — SSE-based live progress (percentage, speed, ETA) in the browser
- **Session Isolation** — Three modes: isolated (per-browser), shared (all users), open (single session)
- **9 Built-in Themes** — Cyberpunk, dark, midnight, hacker, neon, light, paper, arctic, solarized
- **Custom Themes** — Mount your own CSS themes via `/themes` volume
- **Admin Panel** — Password-protected settings management, storage stats, error logs
- **Auto-Purge** — Scheduled cleanup of old downloads with configurable retention
- **Privacy Mode** — Aggressive cleanup of downloads and logs
- **API Keys** — Optional key-based authentication for non-browser access
- **Cookie Support** — Upload cookies.txt for authenticated downloads (per-session)
## Tech Stack
| Component | Technology |
|-----------|------------|
| Backend | Python 3.12, FastAPI, Uvicorn |
| Frontend | Vue 3, TypeScript, Pinia, Vite |
| Database | SQLite (async via aiosqlite) |
| Downloader | yt-dlp + ffmpeg |
| Real-time | Server-Sent Events (SSE) |
| Testing | pytest (backend), Vitest (frontend) |
| Deployment | Docker (multi-arch), Caddy (optional TLS) |
## Wiki Pages
| Page | Description |
|------|-------------|
| [Architecture](Architecture) | System design, data flow, SSE broker, design decisions |
| [Getting Started](Getting-Started) | Docker quick start, local dev setup |
| [Data Model](Data-Model) | SQLite schema, session management |
| [API Reference](API-Reference) | Complete REST + SSE endpoint inventory |
| [Deployment](Deployment) | Docker, Caddy, volumes, health checks |
| [Configuration](Configuration) | All environment variables and YAML config |
| [Development Guide](Development-Guide) | Code patterns, testing, CI/CD |
| [Agent Context](Agent-Context) | Structured metadata for LLM agents |
## Infrastructure Context
- **ub01** (10.0.0.10) — Server running all Docker services
- **nginx01** (10.0.0.9) — Reverse proxy with TLS for `*.xpltd.co`
- **AdGuard Home** — Internal DNS rewriting to nginx01
- **Cloudflare** — External DNS