# README — Rippy > **Moderner Ripping-Daemon mit Metadaten-Preview, Jellyfin-Formatierung und JWT-Auth.** --- ## Features | Feature | Status | |---------|--------| | Disc-Erkennung (CD/DVD/Blu-ray) | ✅ | | Metadaten-Lookup (TMDB/MusicBrainz/TheTVDB) | ✅ | | Pre-Scan ohne Ripping | ✅ | | Jellyfin-Formatierung (NFO + Images) | ✅ | | JWT-Auth + Rate-Limiting | ✅ | | React-UI mit Dashboard | ✅ | | SQLite-Cache für API-Rate-Limits | ✅ | | Multi-Disc-Set-Handling | ✅ | --- ## Architektur ``` ┌─────────────────────────────────────────────┐ │ Proxmox LXC (Debian 12) │ │ │ │ ┌──────────┐ ┌──────────┐ ┌──────────┐ │ │ │ API │ │ Worker │ │ UI │ │ │ │ FastAPI │◄─►│ Celery+ │ │ React+ │ │ │ │ │ │ Redis │ │ Nginx │ │ │ └──────────┘ └──────────┘ └──────────┘ │ │ │ │ │ │ │ ▼ ▼ ▼ │ │ ┌──────────┐ ┌──────────┐ ┌──────────┐ │ │ │ PostgreSQL│ │ udev │ │ Media │ │ │ │ │ │ Daemon │ │ Store │ │ │ └──────────┘ └──────────┘ └──────────┘ │ └─────────────────────────────────────────────┘ ``` --- ## Installation ### Docker Compose ```bash git clone https://git.tobisniceshomelab.ddnsfree.com/Hitonabi/rippy.git cd rippy docker compose up -d ``` ### Port-Übersicht | Service | Port | URL | |---------|------|-----| | UI | 80 | http://localhost:80 | | API | 8000 | http://localhost:8000 | | PostgreSQL | 5432 | localhost:5432 | | Redis | 6379 | localhost:6379 | --- ## API ### Endpoints | Endpoint | Method | Description | |----------|--------|-------------| | `/health` | GET | Health check | | `/jobs` | GET | Alle Jobs | | `/devices` | GET | Alle Geräte | | `/prescan` | POST | Pre-Scan durchführen | | `/metadata/lookup` | POST | Metadaten lookup | | `/metadata/confirm` | POST | Metadaten bestätigen | | `/jellyfin/format` | POST | Für Jellyfin formatieren | | `/token` | POST | Login (JWT) | | `/token/refresh` | POST | Refresh Token | | `/api-keys` | POST/GET/DELETE | API-Key Management | --- ## Tech-Stack | Layer | Tech | |-------|------| | Backend | Python, FastAPI, Celery | | Database | PostgreSQL, SQLite, Redis | | Frontend | React, Vite, TailwindCSS | | Ripping | MakeMKV, abcde, FFmpeg, HandBrake | | Auth | JWT, OAuth2 | --- ## Roadmap - [x] Etappe 1: Container-Infrastruktur - [x] Etappe 2: Ripping-Pipeline - [x] Etappe 3: Metadaten-Lookup + Pre-Scan - [x] Etappe 4: Jellyfin-Formatierung - [x] Etappe 5: API + Auth + WebUI - [x] Etappe 6: Sicherheit + Compliance - [ ] Etappe 7: Proxmox-Integration --- ## License GPL-v3 --- ## Credits - **Commander**: Projekt-Idee, Anforderungen, Testing - **AI-Box**: Entwicklung, Architektur, Dokumentation