Docs: close the gaps an audit turned up
Audited README, BEDIENUNGSANLEITUNG and CLAUDE.md against what the repo and the running stack actually do. Findings, all fixed: - CLAUDE.md claimed the repo holds "only deployment config (docker-compose.yml, .env, .gitignore)". It has not been that for a while: services/ is our own source (TTS/STT servers + systemd units), scripts/ is tooling, and prompts/podcast/ + config/content_core.yaml are overlays bind-mounted over the image. Those overlays are the fragile part, so the section now says so and points at smoke_test.sh. - CLAUDE.md still described the image as a moving tag and argued against patching app code "because it would rot against pull_policy: always" — both obsolete since the digest pin. - README listed neither yt-dlp (needed by add_video_source.py) nor smoke_test.sh in the verification step, and section 2.3 still told you to `docker compose pull` as if the tag moved. - BEDIENUNGSANLEITUNG had nothing at all about updates — the very thing a user has to do periodically. New section 8 covers check_updates / update_stack / smoke_test and, importantly, why updating is not automatic (DB migration is one-way without a backup; the local adaptations can break silently without crashing). - Renumbered the ad-hoc "3a. Updates" in README into a real section 4, and the BEDIENUNGSANLEITUNG sections after the new 8 accordingly. Verified mechanically: every scripts//services//config//prompts/ path named in the docs exists, and all internal and cross-document anchors resolve (0 dead links — one was already broken before this change: README pointed at BEDIENUNGSANLEITUNG.md#stimmklonung instead of #5-stimmklonung). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
parent
4805fe75ed
commit
09c6d910a7
3 changed files with 82 additions and 16 deletions
23
README.md
23
README.md
|
|
@ -49,6 +49,8 @@ Der `open_notebook`-Container erreicht Ollama und die TTS/STT-Wrapper über
|
|||
in Schritt 2)
|
||||
- **`ufw`** (falls als Firewall aktiv) — Standardrichtlinie „deny incoming“ wird vorausgesetzt
|
||||
- **`openssl`**, **`ffmpeg`**, **`curl`**, **`python3`**
|
||||
- **`yt-dlp`** — nur für `scripts/add_video_source.py` (Videos ohne Untertitel); der übrige Stack
|
||||
läuft auch ohne
|
||||
|
||||
---
|
||||
|
||||
|
|
@ -80,11 +82,14 @@ chmod 600 .env
|
|||
### 2.3 Container starten
|
||||
|
||||
```bash
|
||||
docker compose pull
|
||||
docker compose up -d
|
||||
docker compose ps # beide Container sollten "Up" sein
|
||||
```
|
||||
|
||||
Die Images sind in `docker-compose.yml` auf einen **Digest gepinnt** (`pull_policy: missing`) —
|
||||
`up -d` lädt sie beim ersten Mal und danach nie wieder unbemerkt eine andere Version. Aktualisiert
|
||||
wird bewusst, siehe [Abschnitt 4](#4-updates).
|
||||
|
||||
Web-UI: `http://localhost:8502` · REST-API: `http://localhost:5055` (beide nur `127.0.0.1`).
|
||||
|
||||
### 2.4 Firewall öffnen für TTS/STT
|
||||
|
|
@ -123,7 +128,7 @@ journalctl --user -u open-notebook-tts -f
|
|||
|
||||
Für Stimmklonung mindestens eine Referenz-WAV in `services/voices/default.wav` ablegen (z. B.
|
||||
Symlink auf eine eigene Sprachaufnahme, 10–30s, WAV) — siehe
|
||||
[`BEDIENUNGSANLEITUNG.md`](BEDIENUNGSANLEITUNG.md#stimmklonung).
|
||||
[`BEDIENUNGSANLEITUNG.md`](BEDIENUNGSANLEITUNG.md#5-stimmklonung).
|
||||
|
||||
### 2.6 KI-Provider und Modelle registrieren
|
||||
|
||||
|
|
@ -161,6 +166,12 @@ curl -s http://127.0.0.1:8901/health # Chatterbox TTS
|
|||
curl -s http://127.0.0.1:8902/health # faster-whisper STT
|
||||
```
|
||||
|
||||
Gründlicher — prüft API, TTS, STT, YouTube-Extraktion und alle lokalen Anpassungen auf einmal:
|
||||
|
||||
```bash
|
||||
./scripts/smoke_test.sh
|
||||
```
|
||||
|
||||
UI öffnen (`http://localhost:8502`), ein Notebook anlegen, eine Quelle hinzufügen und chatten —
|
||||
siehe [`BEDIENUNGSANLEITUNG.md`](BEDIENUNGSANLEITUNG.md) für die weitere Bedienung.
|
||||
|
||||
|
|
@ -194,7 +205,7 @@ Ersteinrichtung bzw. nach Änderungen an den Unit-Dateien nötig.
|
|||
|
||||
---
|
||||
|
||||
## 3a. Updates
|
||||
## 4. Updates
|
||||
|
||||
Die Images sind **auf einen Digest gepinnt** — es läuft immer genau der Stand, der im Repo steht.
|
||||
Weder ein `docker compose up -d` noch ein Reboot tauscht die Anwendung unbemerkt aus.
|
||||
|
|
@ -223,7 +234,7 @@ typischerweise Wochen voraus, aber unveröffentlicht. Wer den will, müsste selb
|
|||
|
||||
---
|
||||
|
||||
## 4. Verzeichnisstruktur
|
||||
## 5. Verzeichnisstruktur
|
||||
|
||||
```
|
||||
open-notebook/
|
||||
|
|
@ -256,7 +267,7 @@ open-notebook/
|
|||
|
||||
---
|
||||
|
||||
## 5. Bekannte Stolpersteine
|
||||
## 6. Bekannte Stolpersteine
|
||||
|
||||
Kurzreferenz — Details jeweils in [`CLAUDE.md`](CLAUDE.md):
|
||||
|
||||
|
|
@ -297,4 +308,4 @@ Kurzreferenz — Details jeweils in [`CLAUDE.md`](CLAUDE.md):
|
|||
Vorlagen enthalten zusätzlich `/no_think`, damit `qwen3.5:27b` bei langem Quellinhalt nicht
|
||||
durch überlange Reasoning-Blöcke ungültiges JSON liefert. Änderst du die Vorlagen, danach
|
||||
`docker compose up -d --force-recreate open_notebook`. Details:
|
||||
[`BEDIENUNGSANLEITUNG.md`](BEDIENUNGSANLEITUNG.md#10-troubleshooting) und [`CLAUDE.md`](CLAUDE.md).
|
||||
[`BEDIENUNGSANLEITUNG.md`](BEDIENUNGSANLEITUNG.md#11-troubleshooting) und [`CLAUDE.md`](CLAUDE.md).
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue