# SAVEPOINT — Rippy ## Aktueller Stand **v1.0 — Etappe 1 abgeschlossen (21.07.2026).** Container-Infrastruktur und udev-Erkennung erfolgreich implementiert: - ✅ Docker Compose mit 5 Containern (api, worker, ui, postgres, redis) - ✅ Basis-Dockerfiles für jeden Service (Python/FastAPI, Python/Celery, Node/Vite, PostgreSQL, Redis) - ✅ udev-Regel + Python-Daemon für Disc-Einwurf-Erkennung - ✅ Device-Resolver (UUID/Serial → /dev/disc/) - ✅ Celery-Worker mit Dummy-Job-Task (Disc-Erkennung) - ✅ `.env.example` mit allen notwendigen Variablen - ✅ `.gitignore` für Docker, .env, node_modules - ✅ Commit: `5d23b1e` — "Etappe 1: Container-Infrastruktur + udev-Erkennung" - ✅ Commit: `e3e4b0e` — SAVEPOINT v1.0 aktualisiert - ✅ Commit: `5ca67b1` — ARCAN-INTEGRATION.md erstellt - ✅ Commit: `a032860` — Git Sync konfiguriert - ✅ Commit: `853d6dc` — Arcane Git Sync Fix + Install-Skript ### Git Sync Konfiguration für Arcane | Einstellung | Wert | |-------------|------| | Repository URL | `https://git.tobisniceshomelab.ddnsfree.com/Hitonabi/rippy.git` | | Branch | `main` | | Compose File Path | `docker-compose.yml` | | Sync Name | `rippy` | **Achtung:** Arcane Git Sync hat einen Bug (Issue #2978). Workaround: 1. Deaktiviere "Sync sibling files" 2. Starte Sync → erfolgreich 3. Deploy 4. Aktiviere "Sync sibling files" wieder ### Alternative: Direkte Docker Compose Installation Skript: `install-rippy.sh` auf LXC 106 ausführen. ### Docker-Container | Container | Port | Beschreibung | |-----------|------|--------------| | rippy-api | 8000 | FastAPI-Backend | | rippy-worker | - | Celery-Worker | | rippy-ui | 80 | React-UI (Vite) | | rippy-postgres | 5432 | PostgreSQL-Datenbank | | rippy-redis | 6379 | Redis (mit AOF-Persistence) | ### udev-Integration 1. Kopiere `udev/99-disc-ripper.rules` nach `/etc/udev/rules.d/` 2. Kopiere `udev/udev_daemon.py` nach `/app/` (im Worker-Container) 3. Lade udev-Regeln neu: `sudo udevadm control --reload-rules && sudo udevadm trigger` ## Nächste Schritte ### Etappe 2: Ripping-Pipeline - CD-Ripping via `abcde` → FLAC + AcoustID + MusicBrainz - DVD/Blu-ray-Ripping via `makemkvcon` → MKV - Ripping-Status über Celery an SSE-Stream - Fortschritts-Reporting an UI ## Offene Fragen - Wie soll die udev-Integration konkret aussehen? (Host-System vs. Container) - Soll MakeMKV im Worker-Container integriert werden? - Soll HandBrake für Transcoding integriert werden (Etappe 2+)?