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
Homelab Cursor
0a76bee464
rag: Breitensuche fuer Wohnungen/Immobilien/Kambodscha
...
- _is_wide_recall_query: erkennt jetzt Wohnung+welche/alle, Kambodscha+Wohnung
- _WIDE_SUBQUERIES_IMMOBILIEN: Arakawa-Wohnungen, Mietvertraege, Kaufvertrag, Hard Title etc.
- handle_rag_search waehlt Subquery-Pool je nach Thema (Immo vs. Versicherung)
2026-03-26 19:00:28 +01:00
Homelab Cursor
00283a6268
llm+rag: RAG-Pflicht fuer Wohnung/Immobilie/Kambodscha; generische Forced-Prompts
...
- _DOC_KW: wohnung, immobilie, condo, kambodscha, takeo, phnom, haus, ...
- Bei Geo/Wohnung: RAG-Query mit Zusatz-Keywords
- Forced-RAG: Finanz-Fokus vs. allgemeine Unterlagen (Gedaechtnis nicht Prioritaet)
- rag.py: Tool-Prompt Wohnungen/Ausland explizit
2026-03-26 18:53:06 +01:00
Homelab Cursor
031b8d6c65
llm: RAG-Unterlagen — STIL-OVERRIDE und Struktur (Kurzfassung + je Dokument)
...
Globaler Prompt fordert sonst knappe Antworten; bei forciertem rag_search
jetzt explizit ausfuehrlicher. User-Zeile: strukturierte Kosten-Antwort statt
nur Quellen-Hinweis. Markdown ** um Dateiname entfernt (Telegram).
2026-03-26 18:39:14 +01:00
Homelab Cursor
93aabf3fc5
monitor: CT 115/Shop-VMIDs als erwartet gestoppt unabhängig vom Proxmox-Host-Key
...
Die API setzt _host je nach homelab.conf (z.B. pve-hetzner); (115,pve-ka-1)
griff dann nicht. Erwartete stopped-VMIDs jetzt host-unabhängig bei status stopped.
2026-03-26 18:31:23 +01:00
Homelab Cursor
40d6badfc7
fix(rag+llm): Kfz-Kosten mit Quelle; kein nackter EUR-Betrag
...
- Forciertes RAG: Prompt verbietet Ein-Zahl-Antwort; Dateiname Pflicht.
- User-Nachtrag [Quelle: ...] bei forced RAG.
- rag: kostet/wie viel in wide recall; Subqueries Ford Transit / Kfz jährlich.
2026-03-26 17:18:32 +01:00