95c1f9b105
- Theme Context ausgelagert (ThemeContext.tsx + useDarkMode.ts) - Config Validation mit TMDB-API-Key Pflicht (config_validation.py) - Cache Key Centralization (cache/keys.py) - CD-Ripping mit abcde implementiert (Worker) - Docker Compose mit Healthchecks & LOG_LEVEL - ROADMAP.md & SAVEPOINT.md aktualisiert
2.5 KiB
2.5 KiB
SAVEPOINT — Rippy
Aktueller Stand
v1.9 — SoC Refactoring & Config Validation (22.07.2026)
Rippy läuft auf Arcane VM (192.168.178.162):
- ✅ Arcane WebUI: http://192.168.178.162:3552
- ✅ Rippy UI: http://192.168.178.162:80
- ✅ Rippy API: http://192.168.178.162:8000
- ✅ Theme Context ausgelagert (App.tsx → ThemeContext.tsx + useDarkMode.ts)
- ✅ Config Validation mit TMDB-API-Key Pflicht
- ✅ Cache Key Centralization (cache/keys.py)
- ✅ Dark Mode mit Theme-Toggle und localStorage persistence (UI-Only)
- ✅ Sidebar Navigation mit Dark Mode Support
- ✅ Einstellungen-Page mit Tab-Struktur
- ✅ Doppelte Arcane-Einträge behoben (
rippystattRippy) - ✅ Import-Fixes (relative → absolute Imports)
- ✅ Git Sync in Arcane konfiguriert
- ✅ Commit:
43dfce5— Dark Mode Implementation - ✅ Commit:
v1.9— SoC Refactoring
Docker-Container
| Container | Port | Status |
|---|---|---|
| rippy-api | 8000 | Healthy |
| rippy-worker | - | Running |
| rippy-ui | 80 | Running |
| rippy-postgres | 5432 | Healthy |
| rippy-redis | 6379 | Healthy |
Features
- ✅ Etappe 3: SQLite-Cache, TMDB/MusicBrainz/TheTVDB Clients, Pre-Scan, Metadaten-Preview
- ✅ Etappe 4: Jellyfin-Formatierung (NFO-Generator, Image-Downloader)
- ✅ Etappe 5: JWT-Auth (15min/7T), Rate-Limiting (100/min), API-Key-Management
- ✅ Etappe 6: Docker read_only, tmpfs, healthchecks, minimale Images
- ✅ Etappe 7: API UI Modernisiert, Import-Fixes, Doppelte Einträge behoben
- ✅ Etappe 8: Dark Mode mit Theme-Toggle, Separation of Concerns
- ✅ Dokumentation: README, KONZEPT.md, ROADMAP.md, SAVEPOINT.md
Nächste Schritte
- Job-Verlauf UI (aktuell nur leere Listen)
- TMDB API Schlüssel in Arcane Environment konfigurieren
- Proxmox LXC Template
- Ansible Playbooks
SoC Refactoring — Abgeschlossen (Etappe 9)
- ✅ Theme-Context: Theme-Logik aus App.tsx ausgelagert
- ✅ Dark Mode Utility: useDarkMode Hook implementiert
- ✅ Component-Struktur: Dark Mode props von inneren Komponenten versteckt
- ✅ Config Validation: TMDB-API-Key ist Pflicht
- ✅ Cache Key Centralization: cache/keys.py erstellt
- ✅ CD-Ripping: abcde-Integration implementiert
Git-Log
43dfce5 - feat(ui): implement dark mode with theme toggle
rippy-ui-modern - UI Modernisiert & Import-Fixes
3d87c8c - Dokumentation aktualisiert
bdb9f8d - SAVEPOINT v1.5: Sicherheit abgeschlossen
efa642e - Etappe 6: Sicherheit