08a985b9891d4b67cb89398f4f0fa54046a1ca87
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
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
- Etappe 1: Container-Infrastruktur
- Etappe 2: Ripping-Pipeline
- Etappe 3: Metadaten-Lookup + Pre-Scan
- Etappe 4: Jellyfin-Formatierung
- Etappe 5: API + Auth + WebUI
- Etappe 6: Sicherheit + Compliance
- Etappe 7: Proxmox-Integration
License
GPL-v3
Credits
- Commander: Projekt-Idee, Anforderungen, Testing
- AI-Box: Entwicklung, Architektur, Dokumentation
Description
Modernes automatisches CD/DVD/Blu-ray-Ripping-System mit WebUI und Proxmox-Integration
Languages
Python
63.7%
TypeScript
32.5%
Shell
2.5%
Dockerfile
1%
CSS
0.2%