Commit Graph

22 Commits

Author SHA1 Message Date
Hitonabi ab75134931 feat: Download-Knopf fuer fertige Rips — Dateien direkt im Browser statt scp
Ampel / ampel (push) Successful in 29s
- GET /jobs/{id}/files: Dateiliste aus job.output_path (Name + Groesse)
- GET /jobs/{id}/files/{name}: FileResponse-Stream; Validierung strikt —
  output_path muss unter /app/media liegen, nackter Dateiname (kein
  Slash/.., kein Dotfile), realpath-Check gegen Symlink-Ausbrueche.
  Mit Test (test_dateiname_validierung_blockt_pfad_tricks).
- UI: 'Download'-Knopf in der Aktion-Spalte bei fertigen Jobs; die
  Dateiliste mit Groessen + Download-Links lebt im Job-Detail-Popup
  (ein Dropdown wuerde im overflow-x-auto-Tabellencontainer clippen).
- nginx: proxy_buffering off + proxy_read_timeout 3600s waren fuer SSE
  schon gesetzt — grosse Downloads brauchen keine Aenderung.

Wunsch aus der Uebernahme-Session (Commander-Sammelliste 24.07.).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-24 09:01:38 +02:00
Hitonabi 5d9be4d046 docs: SAVEPOINT v3.2, ROADMAP Etappe 13 + Ideen-Katalog, README-Ausbau, KONZEPT-Fortschreibungen
Ampel / ampel (push) Successful in 29s
- README: Media-Server-Ablage, Benachrichtigungen (Tabelle je Dienst),
  System/MakeMKV-Key, UHD-Arbeitsverzeichnis, neuer Abschnitt 'Rippy
  woanders bereitstellen' (beliebiger Docker-Host, was NICHT mitmuss).
- ROADMAP: Etappe 13 (Universal-Komfort-Runde) dokumentiert, erledigte
  Punkte aus Etappe 11/12 abgehakt, priorisierter Ideen-Katalog.
- KONZEPT: Abschnitt 10 'Fortschreibungen' — Media-Server-Neutralitaet
  erweitert das Jellyfin-Muss (keine Abweichung), Benachrichtigungen,
  udev->ioctl.
- SAVEPOINT v3.2 mit dem Kernbefund: Ampel war seit 23.07. rot, stable
  hing 10 Commits zurueck (bcrypt/passlib + veralteter Test) — behoben.
- AGENTS: Stand-Sektion entschlackt (Details leben im SAVEPOINT).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-24 08:55:55 +02:00
Hitonabi 731ed316df SAVEPOINT v3.1: E2E bewiesen (BD-50 -> 4,8 GB) + Universal-Runde dokumentiert
Ampel / ampel (push) Failing after 28s
Uebergabe-Stand fuer die naechste Session — naechste Schritte im SAVEPOINT.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-24 08:25:29 +02:00
Hitonabi cf2f65c567 Doku: 15 Troubleshooting-Leichen raus, SAVEPOINT v3.0 + ROADMAP Etappe 11
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>
2026-07-23 15:02:39 +02:00
Hitonabi 0b93276302 Gruen-Gate: Ampel gruen auf main -> automatische Befoerderung auf stable
Ampel / ampel (push) Successful in 31s
Arcane-GitSync deployt kuenftig von stable (rot deployt NIE).
deploy.sh wird zum Notfall-Hebel. MakeMKV-Entscheid: Konzept gilt,
lossless als Etappe 10 in der ROADMAP verankert.
2026-07-22 22:45:46 +02:00
Hitonabi 0ea5f10b31 Fix-Runde nach Review: alle Befunde behoben + echte Tests
Ampel / ampel (push) Failing after 12m31s
- Metadaten-Preview WIEDERHERGESTELLT (Stub ueberschattete echte
  prescan-Implementierung), tote Altmodule geloescht
- Celery update_state statt Phantom-Task/erfundener API
- abcde-Kommando korrigiert (CD-Ripping war nie funktionsfaehig)
- JWT: fester Schluessel Pflicht, echtes Logout, Cleanup nur Abgelaufene
- main.py: crashende Endpoints (Path/secrets/api_keys), year-Bug,
  Admin-Login aus .env
- Ruff gruen (29 Funde), Tests: auth/cache_keys/ripping_helpers,
  Placebo-test_health raus
- SAVEPOINT: offene MakeMKV-Entscheidung SICHTBAR gemacht (Regel B)
2026-07-22 19:31:48 +02:00
Hitonabi 24326e49b7 docs: update SAVEPOINT.md with v1.10 and complete dark mode 2026-07-22 17:02:08 +02:00
Hitonabi 95c1f9b105 feat(ui): SoC Refactoring & Config Validation
- 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
2026-07-22 16:38:19 +02:00
Hitonabi 9be0592942 docs: SAVEPOINT v1.8 — Dark Mode & SoC 2026-07-21 22:19:32 +02:00
Hitonabi ba2429612a rippy-ui-modern: API UI Modernisiert & Import-Fixes
- Doppelte Arcane-Einträge behoben (rippy statt Rippy) - Import-Fixes: relative → absolute imports in main.py, cache/__init__.py, prescan/__init__.py, clients/__init__.py - Neue Dateien: cache.py, prescan.py, Settings.tsx - API-Port 8000 in docker-compose.yml gemappt - UI mit Sidebar, Dark Mode, Einstellungen-Tabs

Fixes: #2978 (doppelte Einträge), #2888 (Import-Fehler)
2026-07-21 22:08:03 +02:00
Hitonabi 66d0600146 SAVEPOINT v1.6: Komplett! 2026-07-21 17:29:20 +02:00
Hitonabi bdb9f8d405 SAVEPOINT v1.5: Sicherheit abgeschlossen
- Docker read_only + tmpfs
- Healthchecks für Postgres/Redis
- requirements.txt optimiert
- .dockerignore für __pycache__
2026-07-21 17:26:20 +02:00
Hitonabi 343eccb543 SAVEPOINT v1.4: Komplett!
- Metadaten-Lookup (TMDB, MusicBrainz, TheTVDB)
- Pre-Scan-Modul
- Jellyfin-Formatierung (NFO + Images)
- JWT-Auth + Rate-Limiting
- API-Key-Management
- Dokumentation (README, KONZEPT, ROADMAP)
2026-07-21 17:23:24 +02:00
Hitonabi 5464d8acc7 SAVEPOINT v1.3: Etappe 3-5 abgeschlossen
- Metadaten-Lookup (TMDB, MusicBrainz, TheTVDB)
- Pre-Scan-Modul
- Jellyfin-Formatierung (NFO + Images)
- JWT-Auth + Rate-Limiting
- API-Key-Management
2026-07-21 17:19:52 +02:00
Hitonabi a505415898 SAVEPOINT v1.2: UI läuft!
- Rippy UI auf Port 80
- Git Sync in Arcane
- Alle Container healthy
2026-07-21 17:07:54 +02:00
Hitonabi e62ff83e17 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
2026-07-21 16:49:21 +02:00
Hitonabi 594f07f7a3 SAVEPOINT v1.0: Etappe 1 abgeschlossen 2026-07-21 16:46:03 +02:00
Hitonabi 4f0c9e9fa6 SAVEPOINT v1.0: Arcane Git Sync Fix + Install-Skript hinzugefügt
- Bug #2978 beschrieben
- install-rippy.sh erstellt
2026-07-21 15:19:15 +02:00
Hitonabi a032860a65 SAVEPOINT v1.0: Git Sync mit Arcane konfiguriert
- Git Repo: https://git.tobisniceshomelab.ddnsfree.com/Hitonabi/rippy.git
- Branch: main
- Compose File: docker-compose.yml
2026-07-21 15:13:45 +02:00
Hitonabi e3e4b0eda8 SAVEPOINT v1.0: Etappe 1 abgeschlossen
- Commit 5d23b1e: Container-Infrastruktur + udev-Erkennung
- README, ROADMAP, SAVEPOINT aktualisiert
2026-07-21 14:59:28 +02:00
Hitonabi 5d23b1e6c8 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
2026-07-21 14:59:09 +02:00
Hitonabi cbe7d2b9c3 Doku: KONZEPT.md, ROADMAP.md, AGENTS.md, README.md, SAVEPOINT.md, .aiexclude 2026-07-21 10:11:42 +02:00