From 891886b6e86da3e367073474faa672a3fb4d742c Mon Sep 17 00:00:00 2001 From: Claude Fable 5 Date: Sat, 29 Aug 2026 21:36:35 +0200 Subject: [PATCH] Update Handoff: yt-dlf deployed on Gisela (systemd user unit, 172.30.1.11:3300) Co-Authored-By: Claude Fable 5 Claude-Session: https://claude.ai/code/session_01P1w53ybPWArpZpcei9JPYX --- Handoff.md | 73 ++++++++++++++++++++++++++++++++++++++++-------------- 1 file changed, 54 insertions(+), 19 deletions(-) diff --git a/Handoff.md b/Handoff.md index 426e495..45eb83a 100644 --- a/Handoff.md +++ b/Handoff.md @@ -1,34 +1,41 @@ # yt-dlf — Handoff > Übergabedokument für die Fortsetzung in einer Claude-Code-Session. -> Stand: 2026-08-29 — Untertitel-Dedup-Fix live an realen Dateien verifiziert -> und nach Gitea gepusht (`stwaidele/yt-dlf`, main auf `a7d7d1c`). +> Stand: 2026-08-29 — App läuft produktiv auf Gisela unter +> http://172.30.1.11:3300 (nur internes Netz), Downloads nach +> `/home/stwaidele/YouTube//`; live verifiziert per Testdownload. > Dauerhafte Fakten stehen in `README.md`/`INSTALL.md`; hier steht nur, was > **nicht** aus Code und Git-Historie ersichtlich ist. -**🔜 NÄCHSTE SESSION:** Weiterentwicklung findet künftig auf **Gisela** -statt — dort von Gitea klonen (`git clone git@gitea-:stwaidele/yt-dlf.git` -bzw. Stefans eigener Zugang) und diesen Handoff als Einstieg nehmen. -Kein konkreter inhaltlicher Auftrag hinterlegt. +**🔜 NÄCHSTE SESSION:** Kein konkreter inhaltlicher Auftrag hinterlegt. +Arbeitskopie auf Gisela: `/home/stwaidele/Claude/yt-dlp` (Verzeichnisname +≠ Repo-Name `yt-dlf`!). ## Offene Punkte -- [ ] Deploy-Status klären — `build/` und `users.txt` liegen lokal (auf dem - Mac) vor, beide gitignored; ob und wo die App produktiv läuft, ist - nirgends festgehalten. Wichtig beim Umzug auf Gisela: gitignorte Dateien - (`users.txt`, `build/`, `ads-*.html`-Anpassungen) kommen **nicht** über - den Clone mit. +- [ ] `users.txt` auf Gisela anlegen, falls Login gewünscht + (`python3 scripts/add_user.py `, danach + `systemctl --user restart yt-dlf`); ohne Login zeigen `ads-*.html` + Platzhalter-Werbung. +- [ ] Leeres Repo `stwaidele/yt-dlp` auf Gitea existiert neben `yt-dlf` — + Stefan entscheidet: löschen oder Projekt dorthin umziehen. +- [ ] Mac-Instanz: ob die App auf dem Mac weiterlaufen soll, ist offen; + die dortigen gitignorten Dateien (`users.txt`, `ads-*.html`-Anpassungen) + wurden nicht nach Gisela übernommen. +- [x] Deploy-Status klären (erledigt 29.08. — läuft jetzt auf Gisela, + siehe Session-Block) ## Stolperfallen -- **Git-Konten-Mix** — Bestandsprojekt: Remote `origin` zeigt direkt auf - `git@gitea.101010.cloud:stwaidele/yt-dlf.git`; dieser Host-Eintrag in - `~/.ssh/config` (Mac) nutzt noch den alten generischen `claude`-Key. - Claude-Commits daher per Author-Override - (`git -c user.name="Claude " -c user.email="@waidele.info" commit …`), - Repo-Config nicht umbiegen. Push konventionsgemäß über den Modell-Alias: - `git push git@gitea-fable-5:stwaidele/yt-dlf.git main` — `fable-5` hat - Write-Recht am Repo (live verifiziert 29.08.). +- **Port 3000 ist auf Gisela belegt** (Open-WebUI bindet + `172.30.1.11:3000`) — yt-dlf läuft deshalb auf **3300**. Bei + Port-Änderungen zuerst `ss -tlnp` prüfen. +- **Git-Konten-Mix (nur Mac)** — auf dem Mac zeigt `origin` direkt auf + `git@gitea.101010.cloud:stwaidele/yt-dlf.git` mit dem alten generischen + `claude`-Key; dort Claude-Commits per Author-Override und Push über den + Modell-Alias. Auf **Gisela** ist das gelöst: Clone über + `git@gitea-fable-5:stwaidele/yt-dlf.git`, Repo-Config steht auf + `Claude Fable 5` / `fable-5@waidele.info`. - **Rollende Auto-Captions** — YouTube-Auto-Untertitel wiederholen in jedem Cue die letzte Zeile des Vorgänger-Cues; kurze Fortsetzungen (einzelne Wörter) tragen dabei **keine** Inline-Timing-Tags. Ein Filter rein über @@ -36,6 +43,25 @@ Kein konkreter inhaltlicher Auftrag hinterlegt. führende Wiederholungszeilen (`src/lib/subtitle.js`, `scripts/subtitle_to_markdown.py`, beide identisch halten!). +## Session 2026-08-29 — Deploy auf Gisela (Claude Fable 5) + +Auftrag: yt-dlf auf Gisela betreiben, Weboberfläche nur im +WireGuard-/internen Netz, Downloads unter `/home/stwaidele/YouTube/`. +Umsetzung: Build im Repo-Checkout (`npm install && npm run build`), +systemd-**User**-Unit `~/.config/systemd/user/yt-dlf.service` +(enabled, Linger war bereits aktiv → Autostart ohne Login). Die Unit +setzt `HOST=172.30.1.11`, `PORT=3300`, `DOWNLOAD_DIR`, `YTDLP_PATH` +(yt-dlp kommt aus Linuxbrew, nicht auf dem systemd-PATH). Gisela hat +**kein eigenes wg-Interface** — sie hängt direkt im internen Netz +`172.30.1.0/24`, in das die WireGuard-Peers geroutet werden; „nur +WG-Netz" heißt hier also: exakt an die LAN-IP binden (localhost, +Docker-Bridges und IPv6 nachweislich nicht erreichbar). Live +verifiziert: Testdownload „Me at the zoo" über die API komplett +durchgelaufen, Dateien inkl. deduplizierter MDs unter +`~/YouTube/Me at the zoo/`. Nebenbei: `package-lock.json` durch npm +auf Gisela normalisiert (nur `libc`-Felder entfernt, kein +Versions-Update). + ## Session 2026-08-29 — Untertitel-Dedup-Fix & Push nach Gitea (Claude Fable 5) Stefans Befund: MD-Dateien aus VTT-Untertiteln enthielten jeden Satz ~3×. @@ -62,6 +88,15 @@ Beide bisherigen Commits (16.05.) stammen von Stefan; seither keine Dev-Server, Deployment und User-Verwaltung sind vollständig in `README.md` und `INSTALL.md` dokumentiert — dort nachschlagen, hier nicht duplizieren. +Betrieb auf Gisela (systemd-User-Dienst, läuft als `stwaidele`): + +```bash +systemctl --user status|restart|stop yt-dlf +journalctl --user -u yt-dlf -f +# Nach Code-Änderungen: +npm run build && systemctl --user restart yt-dlf +``` + ## Verwandte Handoffs _keine_