Doku: 15 Troubleshooting-Leichen raus, SAVEPOINT v3.0 + ROADMAP Etappe 11
Ampel / ampel (push) Failing after 29s
Ampel / ampel (push) Failing after 29s
ARCAN-*.md, Setup-/Fix-Skripte (u.a. install-rippy.sh fuer ein nie existentes "LXC 106"), proxmox-add-drive.sh (scsi-Passthrough war der falsche Weg — richtig ist USB-Passthrough per Vendor-ID, siehe SAVEPOINT) und die udev-Rules (referenzierten ein nie gebautes udev_daemon.py). SAVEPOINT dokumentiert Kernumbau + Hardware-Kette + Firmware-Befund (BU40N 1.05 kann kein UHD — Crossflash 1.03-MK ist der dokumentierte Weg). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
+25
-3
@@ -222,10 +222,32 @@
|
||||
**Ziel:** DVD/Blu-ray-Ripping auf `makemkvcon` umstellen (verlustfrei), wie im
|
||||
KONZEPT als Muss definiert. HandBrake fliegt aus dem Ripp-Pfad (bleibt ggf. als
|
||||
optionaler Transcode-Schritt NACH dem verlustfreien Rip).
|
||||
- [ ] Worker-Dockerfile: makemkv-oss/makemkv-bin bauen + Beta-Key-Handling (Env/Cron)
|
||||
- [ ] ripping.py: rip_dvd/rip_bluray auf `makemkvcon --all --progress mkv` umstellen
|
||||
(Fortschritts-Parsing anpassen, Tests zuerst!)
|
||||
- [x] Worker-Dockerfile: makemkv-oss/makemkv-bin 1.18.4 multi-stage gebaut,
|
||||
Beta-Key via MAKEMKV_APP_KEY-Env (entrypoint.sh) — 23.07.
|
||||
- [x] ripping.py: auf `makemkvcon -r --progress=-same mkv dev:… all` umgestellt,
|
||||
PRGV-Fortschritts-Parsing laut makemkv.com/developers/usage.txt, Tests dabei — 23.07.
|
||||
- [ ] E2E mit echter Disc verifizieren (Commander, Laufwerk nötig)
|
||||
**Fertig wenn:** eine echte DVD landet verlustfrei als MKV im Output, Ampel grün.
|
||||
**Entstanden aus:** Review 22.07. — HandBrake-lossy war eine stille Abweichung vom
|
||||
Konzept; Entscheid 22.07. abends: Konzept gilt, Umbau als eigene Etappe.
|
||||
|
||||
---
|
||||
|
||||
## Etappe 11 (23.07.2026): Kernumbau — der Zweck funktioniert erstmals wirklich
|
||||
|
||||
**Befund des Komplett-Audits (Claude):** Der Kern „Disc rein → gerippt raus"
|
||||
hatte NIE einen Code-Pfad: kein POST /jobs, kein udev-Daemon (das referenzierte
|
||||
udev_daemon.py existierte nirgends), kein Ripping-Tool im Worker-Image,
|
||||
Disc-Erkennung strukturell tot (`file -L` auf Block-Device), Geräte als
|
||||
Bind-Mounts statt devices: (EPERM), UI rief hartkodiert localhost:8000 auf.
|
||||
|
||||
**Gebaut:**
|
||||
- [x] POST /jobs (API → Celery → Worker) + Job-Persistenz in Postgres
|
||||
- [x] Disc-Watcher in der API (ioctl-Poll statt udev — Container-tauglich)
|
||||
- [x] Disc-Erkennung neu über Kernel-ioctls (detection.py, in API+Worker)
|
||||
- [x] /logs-Endpoint + echte Logs-Seite (Mock-Daten raus)
|
||||
- [x] /settings-Endpoints (Settings-Seite sprach vorher ins Leere)
|
||||
- [x] UI: Vite-Build + nginx mit /api-Proxy statt Dev-Server; relative API-Pfade
|
||||
- [x] compose: devices: statt Bind-Mounts; Ausgabe aufs media-Volume
|
||||
- [ ] Jellyfin-Post-Processing an den Worker anbinden (NFO/Poster nach dem Rip)
|
||||
- [ ] Auth vor die schreibenden Endpoints (JWT existiert, schützt aber nichts)
|
||||
|
||||
Reference in New Issue
Block a user