SAVEPOINT v1.1: Etappe 2 in Arbeit
- Ripping-Pipeline mit HandBrake für DVD/Blu-ray - Output-Verzeichnis /output/<disc-type>/<disc-id>/ implementiert - Detect-disc-type-Funktion in ripping.py
This commit is contained in:
+20
-32
@@ -2,22 +2,16 @@
|
|||||||
|
|
||||||
## Aktueller Stand
|
## Aktueller Stand
|
||||||
|
|
||||||
**v1.0 — Etappe 1 abgeschlossen (21.07.2026).**
|
**v1.1 — Etappe 2 in Arbeit (21.07.2026).**
|
||||||
|
|
||||||
Container-Infrastruktur und udev-Erkennung erfolgreich implementiert:
|
Ripping-Pipeline implementiert:
|
||||||
- ✅ Docker Compose mit 5 Containern (api, worker, ui, postgres, redis)
|
- ✅ DockerfileWorker erweitert: abcde, flac, ffmpeg, handbrake-cli
|
||||||
- ✅ Basis-Dockerfiles für jeden Service (Python/FastAPI, Python/Celery, Node/Vite, PostgreSQL, Redis)
|
- ✅ ripping.py: Ripping-Module für DVD/Blu-ray mit HandBrake
|
||||||
- ✅ udev-Regel + Python-Daemon für Disc-Einwurf-Erkennung
|
- ✅ tasks.py: Disc-Typ-Erkennung + passendes Ripping-Modul
|
||||||
- ✅ Device-Resolver (UUID/Serial → /dev/disc/<uuid>)
|
- ✅ Output-Verzeichnis: /output/<disc-type>/<disc-id>/
|
||||||
- ✅ Celery-Worker mit Dummy-Job-Task (Disc-Erkennung)
|
- ✅ Commit: `9e73d06` — Etappe 2: Ripping-Pipeline — Erste Implementierung
|
||||||
- ✅ `.env.example` mit allen notwendigen Variablen
|
- ✅ Commit: `42f19a0` — ripping.py: HandBrakeCLI-Check + Typ-Erkennung
|
||||||
- ✅ `.gitignore` für Docker, .env, node_modules
|
- ✅ Commit: `90e6f81` — tasks.py: detect_disc_type wieder importieren
|
||||||
- ✅ 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
|
|
||||||
- ✅ Commit: `e0c4a35` — Arcane VM Setup abgeschlossen
|
|
||||||
|
|
||||||
### Arcane VM (192.168.178.162)
|
### Arcane VM (192.168.178.162)
|
||||||
|
|
||||||
@@ -42,27 +36,21 @@ Container-Infrastruktur und udev-Erkennung erfolgreich implementiert:
|
|||||||
| Container | Port | Beschreibung |
|
| Container | Port | Beschreibung |
|
||||||
|-----------|------|--------------|
|
|-----------|------|--------------|
|
||||||
| rippy-api | 8000 | FastAPI-Backend |
|
| rippy-api | 8000 | FastAPI-Backend |
|
||||||
| rippy-worker | - | Celery-Worker |
|
| rippy-worker | - | Celery-Worker (mit HandBrake) |
|
||||||
| rippy-ui | 80 | React-UI (Vite) |
|
| rippy-ui | 80 | React-UI (Vite) |
|
||||||
| rippy-postgres | 5432 | PostgreSQL-Datenbank |
|
| rippy-postgres | 5432 | PostgreSQL-Datenbank |
|
||||||
| rippy-redis | 6379 | Redis (mit AOF-Persistence) |
|
| rippy-redis | 6379 | Redis (mit AOF-Persistence) |
|
||||||
|
|
||||||
### udev-Integration
|
### Ripping-Status
|
||||||
|
|
||||||
1. Kopiere `udev/99-disc-ripper.rules` nach `/etc/udev/rules.d/`
|
| Disc-Typ | Status | Bemerkung |
|
||||||
2. Kopiere `udev/udev_daemon.py` nach `/app/` (im Worker-Container)
|
|----------|--------|-----------|
|
||||||
3. Lade udev-Regeln neu: `sudo udevadm control --reload-rules && sudo udevadm trigger`
|
| CD | 🚧 In Arbeit | abcde noch nicht implementiert |
|
||||||
|
| DVD | ✅ Implementiert | HandBrakeCLI |
|
||||||
|
| Blu-ray | ✅ Implementiert | HandBrakeCLI |
|
||||||
|
|
||||||
## Nächste Schritte
|
### Nächste Schritte
|
||||||
|
|
||||||
### Etappe 2: Ripping-Pipeline
|
- Progress-Reporting: Celery-Signale an SSE-Stream senden
|
||||||
- CD-Ripping via `abcde` → FLAC + AcoustID + MusicBrainz
|
- CD-Ripping mit abcde implementieren
|
||||||
- DVD/Blu-ray-Ripping via `makemkvcon` → MKV
|
- Testen mit `docker compose up`
|
||||||
- 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+)?
|
|
||||||
|
|||||||
Reference in New Issue
Block a user