Commit graph

256 commits

Author SHA1 Message Date
Auto-Sync
7a37b749f3 Auto-Sync: 2026-04-17 21:15 2026-04-17 21:15:08 +02:00
Auto-Sync
a760e66b73 Auto-Sync: 2026-04-17 05:15 2026-04-17 05:15:09 +02:00
Auto-Sync
cca3d908d6 Auto-Sync: 2026-04-16 02:15 2026-04-16 02:15:09 +02:00
Homelab Cursor
33a5895225 fix: terror-URLs nicht als Fehler zaehlen in Loki-Query 2026-04-15 20:46:32 +02:00
Homelab Cursor
2db5db267c Seafile Health-Check: HTTP-Ping statt Log-Silence
- Seafile (CT 103) als HTTP-Health-Check hinzugefügt (https://seafile.orbitalo.net/api2/ping/)
- Seafile aus SILENCE_IGNORED_HOSTS ausgenommen (Logs nur im Container)
- 3 Retries mit 10s Timeout für robuste Erkennung
2026-04-13 13:42:21 +02:00
Homelab Cursor
bd53ff9094 monitor: CT 103 Intercity-Taxi aus EXPECTED_STOPPED entfernt (läuft als Seafile) 2026-04-13 04:21:22 +02:00
Auto-Sync
4de44a53b6 Auto-Sync: 2026-04-11 14:45 2026-04-11 14:45:18 +02:00
Homelab Cursor
8011145904 feat: Hausmeister-Bot Text-Modell auf Grok 4.1 Fast (OpenRouter) umgestellt
- MODEL_LOCAL: qwen3:30b-a3b (Ollama lokal) -> x-ai/grok-4.1-fast (OpenRouter)
- OLLAMA_MODELS geleert — kein lokales Ollama mehr fuer Text
- warmup_ollama() als No-Op (kein VRAM-Warmup mehr noetig)
- Vision bleibt auf gpt-4o-mini (OpenRouter, kein GPU)
- Ref: Issue #75 Phase 1
2026-04-11 07:33:57 +02:00
Auto-Sync
be84354360 Auto-Sync: 2026-04-09 17:15 2026-04-09 17:15:36 +02:00
Homelab Cursor
c4454e1c4d docs: Jellyfin Infrastruktur vollständig dokumentiert
- SSH-Zugang (michael@192.168.178.149 via lokalem Netz)
- NAS-Struktur: 192.168.178.170/Medien mit allen Mount-Punkten
- Save.TV → Jellyfin Workflow
- Synology NAS Shares und Zugang
- Staging-Ordner Filme zum nachbearbeiten erklaert
- Duplikat-Check Prozess dokumentiert
2026-04-06 16:57:43 +02:00
0ec7ae7407 monitor: HTTP-Checks mit GET statt HEAD
Grafana /api/health ist für GET dokumentiert; HEAD kann 405 liefern.
2026-04-01 09:29:11 +00:00
723196fe64 monitor: Grafana-Healthcheck auf /api/health umstellen
Stabiler als die Root-URL; reduziert False Positives bei kurzzeitigen 5xx auf /.
2026-04-01 09:24:11 +00:00
80b7b0681d monitor: groesszuegigeres Timeout fuer Flugscanner-Agent (Tailscale-KH→DE) 2026-03-31 19:31:39 +00:00
f5c0b5e445 fix(telegram_bot): httpx/httpcore Log-Level auf WARNING (Token nicht mehr in Logs) 2026-03-31 14:30:43 +00:00
1cc27b877f fix(telegram_bot): Forecast ask_with_tools mit tool_handlers; sauberes Task-Shutdown 2026-03-31 13:05:08 +00:00
e08c820f15 hausmeister: LLM in Hintergrund-Task — Polling blockiert nicht mehr (toter Bot)
python-telegram-bot verarbeitet Updates nacheinander, solange der Handler
nicht zurueckkehrt. Die Warteschleife auf ask_with_tools blockierte alle
weiteren Telegram-Updates (kein abbruch, keine Befehle, 'tot').

- Freitext und Sprache: Pipeline in asyncio.create_task ausgelagert
- concurrent_updates(True) zusaetzlich
2026-03-31 13:02:09 +00:00
Auto-Sync
32c6b97a02 Auto-Sync: 2026-03-31 15:00 2026-03-31 15:00:10 +02:00
2cab0af536 hausmeister: schnellere Fortschritts-Meldungen (10s), Folgenachricht bricht LLM ab 2026-03-31 12:58:45 +00:00
3776f4ff71 savetv: Archiv-Tool filtert DE/FR-Produktionslaender wie Web-UI 2026-03-31 12:54:30 +00:00
4aaa206147 savetv: Web-UI API filtert DE/FR-Produktionslaender (Wikidata-Cache) 2026-03-31 12:54:27 +00:00
03f67af781 hausmeister: Forgejo-Fehlerquote-Schwelle (Scanner-Traffic) 2026-03-31 12:54:26 +00:00
Auto-Sync
56959a1219 Auto-Sync: 2026-03-31 14:45 2026-03-31 14:45:09 +02:00
a1fa212da4 fix regex typo: allemagne 2026-03-31 11:24:22 +00:00
218858314d fix: should_exclude_production_country calls load_filminfo_cache 2026-03-31 11:24:16 +00:00
830682945b Add savetv_country_filter: exclude DE/FR production countries from film selection 2026-03-31 11:24:04 +00:00
Auto-Sync
d3097ece29 Auto-Sync: 2026-03-30 15:45 2026-03-30 15:45:09 +02:00
Homelab Cursor
89eca6c388 docs: Save.TV Pipeline Doku + CT 116 RAM/DNS-Fix in homelab.conf 2026-03-28 20:59:25 +01:00
Homelab Cursor
eb47bcb8d1 feat(savetv): Jellyfin-Filter, Archiv-Cache, Stabilitäts-Fixes
- savetv_web.py: Archiv-Cache mit Hintergrund-Refresh (kein Blockieren bei Save.TV-Login)
- savetv_web.py: Flask threaded=True für parallele Requests
- savetv_web.py: Jellyfin-Duplikate-Filter (Checkbox, default: ein)
- tools/savetv.py: Login-Timeout (8s connect, 20s read) + modernerer User-Agent
- savetv_sync.py: Dateien unter 700 MB werden übersprungen (kein SD-Schrott)
- CT 116: www.save.tv statisch in /etc/hosts → kein DNS-GIL-Block mehr
- CT 116: RAM von 512 MB auf 1 GB erhöht (war der Hauptgrund für Einfrieren)
2026-03-28 20:55:12 +01:00
Homelab Cursor
afada512d6 fix(savetv): Wartezeit auf 24h erhöht (Save.TV Werbeschnitt) 2026-03-28 19:43:50 +01:00
Homelab Cursor
8c1e810204 feat(savetv): Pipeline-Dashboard mit 3 Blöcken (Warten/Bereit/NAS)
- /downloads ersetzt durch Pipeline-Dashboard
- /api/pipeline: Status aller Filme (pending/bereit/auf NAS)
- /api/nas_synced: Callback wenn Jellyfin-Sync fertig
- Sync-Script meldet sich nach erfolg zurück ans CT
2026-03-28 19:39:53 +01:00
Homelab Cursor
fad6b145ff fix(savetv): user:pass@ aus URL entfernen (Chrome strippt Credentials) 2026-03-28 19:12:35 +01:00
Homelab Cursor
73332bfc14 fix(savetv): Basic-Auth in Direct-Download-URL einbetten
Credentials (mike:astral66) direkt im href-Link, damit kein Browser-Auth-Dialog erscheint.
SAVETV_DIRECT_USER/PASS als env-ueberschreibbare Konstanten.
2026-03-28 19:05:07 +01:00
Homelab Cursor
ba13fc2659 feat(savetv): direkter Download via Hetzner-IP statt Cloudflare
- SAVETV_DIRECT_BASE / SAVETV_TUNNEL_BASE Konstanten eingefuegt
- Downloads-Seite: gruener Download-Button -> Hetzner :9443 (ohne CF, Basic-Auth mike)
- CF-Fallback-Link pro Zeile -> savetv.orbitalo.net (Cloudflare-Tunnel)
- Infobox mit URL, Auth-Hinweis und CF-Erlaeuterung unterhalb der Dateianzahl
2026-03-28 18:43:08 +01:00
Homelab Cursor
6989b5c07b feat(savetv): Jellyfin-Abgleich im Archiv
- API /api/jellyfin_library: Jellyfin-Filme via Tailscale, 1h Cache
- Archiv-Karten: Badge Jellyfin wenn Titel in Mediathek (normalisierter Vergleich)
- Entfernt: /opt/savetv_extra_routes.py Doppelung (nur noch Repo-Modul)
2026-03-28 17:28:37 +01:00
Homelab Cursor
902441bbbc feat(savetv): add savetv_extra_routes.py to repo — sortable downloads page
Downloads page now has sort buttons (date/name/size) with toggle asc/desc.
Default: newest first. Client-side JS sorting, no page reload needed.
Previously this file was only in /opt/ outside git.
2026-03-28 17:17:46 +01:00
Homelab Cursor
3b6ee14b37 fix(rag): timeout 45s, RRF rank-map bug fix 2026-03-28 16:54:20 +01:00
Homelab Cursor
a3735bf265 fix(rag): RRF fusion, 512-char snippets, 15 candidates — speed+quality 2026-03-28 16:51:06 +01:00
Homelab Cursor
da0d1cd16c feat(rag): Cross-Encoder Reranking via CT123 bge-reranker-v2-m3 2026-03-28 16:37:56 +01:00
Homelab Cursor
7a371944b4 docs: Jellyfin Server Zugangsdaten und API-Key 2026-03-28 13:18:45 +01:00
Homelab Cursor
53b63ee8fe savetv: Hetzner-Speicherindikator im Archiv, Datumssortierung Downloads 2026-03-28 12:59:27 +01:00
Homelab Cursor
2c9f07dbb7 docs: Save.TV Enricher Dokumentation (Enricher, Web-UI, Umbenennung) 2026-03-27 14:54:47 +01:00
Homelab Cursor
9f60a9e292 savetv_web: Neueste Filme zuerst, Aufnahmedatum anzeigen 2026-03-27 14:15:56 +01:00
Homelab Cursor
8751b42724 savetv_enrich: Sleep auf 0.5s reduziert für schnellere Verarbeitung 2026-03-27 13:57:44 +01:00
Homelab Cursor
e204edf2ea savetv_enrich: File-Lock + Debug-Logging + robusterer Cache-Save
- fcntl.flock verhindert parallele Enricher-Instanzen
- Atomarer Cache-Save über tmp-Datei
- Debug-Logs bei leerer/gefilterter Beschreibung
- Sleep auf 2s erhöht für stabilere Ollama-Antworten
2026-03-27 13:49:21 +01:00
cf1a0ccdd1 fix: qwen2.5:14b als Primärmodell, robustes JSON-Parsing
- qwen3 schreibt Reasoning in Content trotz think=false
- qwen2.5 liefert zuverlässig JSON
- Actors-Feld: Strings oder Objekte werden beides akzeptiert
- Prompt explizit auf Deutsch eingeschränkt
2026-03-27 12:39:34 +00:00
caa2883a66 fix: Ollama native API nutzen statt OpenAI-compat für Enricher
Qwen3 via /v1/chat/completions verbraucht max_tokens fürs
Reasoning und liefert leeren Content. Umstellung auf /api/chat
mit think=false löst das Problem.
2026-03-27 12:36:38 +00:00
0b495c3544 feat: Web-UI zeigt KI-Filmbeschreibungen, Darsteller und Regisseur
Die filmCard-Funktion rendert jetzt die angereicherten Daten:
- 3-6 Sätze Beschreibung
- Hauptdarsteller + Regisseur
- Land, Jahr, Genre als Metadaten-Zeile
2026-03-27 12:27:58 +00:00
45b2903fb6 feat: KI-Enricher für Save.TV Filmdatenbank
Nutzt Ollama (qwen3:30b) um Filme im Archiv automatisch
mit Beschreibung, Hauptdarstellern, Land und Genre anzureichern.
Läuft als Cronjob alle 3h, Ergebnis sofort in der Web-UI sichtbar.
2026-03-27 12:25:58 +00:00
Homelab Cursor
8b78cf0854 rag: docnm_search (Boost 5.0) — Dateinamen als Volltext durchsuchbar (#52)
ES-Index: neues Feld docnm_search (custom analyzer mit path_splitter,
__ und _ werden zu Leerzeichen). docnm_kwd bleibt als Keyword.
Hybrid-Suche nutzt jetzt docnm_search mit Boost 5.0 —
Arakawa/Wohnung/Kambodscha etc. finden direkt ueber den Dateinamen
ohne handverdrahtete Subqueries.

Closes #52
2026-03-27 10:41:00 +01:00
Homelab Cursor
70469cfbc5 rag: Fix toter Code — Immobilien-Wide-Check war nach return unreachbar 2026-03-26 19:04:23 +01:00