Etappe 1: Container-Infrastruktur + udev-Erkennung
- Docker Compose mit 5 Containern (api, worker, ui, postgres, redis) - Basis-Dockerfiles für FastAPI, Celery, React/Vite, PostgreSQL, Redis - udev-Regel + Python-Daemon für Disc-Einwurf-Erkennung - Device-Resolver (UUID/Serial → /dev/disc/<uuid>) - Celery-Worker mit Dummy-Job-Task (Disc-Erkennung) - .env.example mit Umgebungsvariablen - .gitignore für Docker, .env, node_modules - README, SAVEPOINT, ROADMAP aktualisiert
This commit is contained in:
+34
-29
@@ -2,38 +2,43 @@
|
||||
|
||||
## Aktueller Stand
|
||||
|
||||
**vorbereitet — Bau beginnt in Zed.**
|
||||
**v1.0 — Etappe 1 abgeschlossen.**
|
||||
|
||||
Das Repo enthält das gehärtete Konzept und den Meilenstein-Plan. Kein Code ist bisher geschrieben.
|
||||
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/<uuid>)
|
||||
- ✅ Celery-Worker mit Dummy-Job-Task (Disc-Erkennung)
|
||||
- ✅ `.env.example` mit allen notwendigen Variablen
|
||||
- ✅ `.gitignore` für Docker, .env, node_modules
|
||||
|
||||
### 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
|
||||
|
||||
1. **Etappe 1: Fundament** — Container-Infrastruktur + udev-Erkennung.
|
||||
- Docker Compose mit 5 Containern (api, worker, ui, postgres, redis)
|
||||
- udev-Regel + Daemon für Disc-Einwurf-Erkennung
|
||||
- Device-Resolver (UUID/Serial)
|
||||
- Basis-Celery-Job-Erstellung
|
||||
### 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 für den Bau
|
||||
## Offene Fragen
|
||||
|
||||
- Welches Tool für DVD/Blu-ray? `makejungles` (OpenSource) oder `makemkvcon` (MakeMKV, kostenpflichtig nach Beta-Phase)?
|
||||
- Go oder Python für den udev-Daemon? Go ist schneller, Python ist einfacher.
|
||||
- Welche Port-Nummern? Standard (80/443/5432/6379) oder custom?
|
||||
- TMDB API-Key: woher bekommt der Commander seinen?
|
||||
|
||||
## Technologien (bereits festgelegt)
|
||||
|
||||
| Komponente | Wahl | Quelle |
|
||||
|------------|------|--------|
|
||||
| API | FastAPI (Python) | KONZEPT.md |
|
||||
| Worker | Celery + Redis (Python) | KONZEPT.md |
|
||||
| UI | React + Vite → statisch | KONZEPT.md |
|
||||
| DB | PostgreSQL | KONZEPT.md |
|
||||
| Cache | Redis (AOF) | KONZEPT.md |
|
||||
| Ripping CD | abcde + chromaprint | KONZEPT.md |
|
||||
| Ripping DVD/BR | makejungles / makemkvcon | KONZEPT.md |
|
||||
| Metadaten | TMDB + MusicBrainz + TheTVDB | KONZEPT.md |
|
||||
| NFO | Kodi/NFO-Schema | KONZEPT.md |
|
||||
| Deployment | Docker Compose | KONZEPT.md |
|
||||
| Build-System | Dockerfile (multi-stage) | KONZEPT.md |
|
||||
| CI | Gitea Pipelines | KONZEPT.md |
|
||||
- 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