diff --git a/docs/SETUP.md b/docs/SETUP.md new file mode 100644 index 0000000..0a773ee --- /dev/null +++ b/docs/SETUP.md @@ -0,0 +1,151 @@ +# tüit Transkriptor — Setup-Anleitung + +## Architektur + +``` +┌─────────────────────────┐ ┌──────────────────────────────┐ +│ Client (Linux) │ │ Beastix (LAN-Server) │ +│ │ WAV │ │ +│ Transkriptor-App │ ──────► │ faster-whisper-server :8000 │ +│ Browser-UI :8765 │ Text │ Ollama :11434 │ +│ │ ◄────── │ │ +└─────────────────────────┘ └──────────────────────────────┘ +``` + +Jeder Client läuft komplett unabhängig. Die KI-Verarbeitung (Whisper + Ollama) kann +entweder lokal oder auf Beastix ausgeführt werden — konfigurierbar über die +Einstellungsseite. + +--- + +## Beastix (Server-Setup, einmalig) + +### 1. faster-whisper-server installieren + +```bash +sudo pacman -S python-pipx # Arch Linux +pipx install faster-whisper-server +pipx ensurepath +``` + +**Bekannter Bug in Version 0.0.2** — fehlende `pyproject.toml` im pipx-venv: + +```bash +cat > ~/.local/share/pipx/venvs/faster-whisper-server/lib/python*/site-packages/pyproject.toml << 'EOF' +[project] +name = "faster-whisper-server" +version = "0.0.2" +EOF +``` + +### 2. Als systemd-User-Service einrichten + +```bash +cat > ~/.config/systemd/user/faster-whisper-server.service << 'EOF' +[Unit] +Description=faster-whisper-server (OpenAI-compatible Whisper API) +After=network.target + +[Service] +ExecStart=%h/.local/bin/faster-whisper-server --host 0.0.0.0 --port 8000 --model large-v3 +Restart=on-failure +RestartSec=5 + +[Install] +WantedBy=default.target +EOF + +systemctl --user daemon-reload +systemctl --user enable --now faster-whisper-server.service +``` + +### 3. Ollama installieren (falls noch nicht vorhanden) + +```bash +curl -fsSL https://ollama.com/install.sh | sh +ollama pull gemma3:12b +``` + +### 4. Firewall — Ports freigeben (LAN-intern) + +```bash +# Whisper-Server +sudo ufw allow from 192.168.0.0/16 to any port 8000 +# Ollama +sudo ufw allow from 192.168.0.0/16 to any port 11434 +``` + +Ports nur für LAN freigeben — nicht ins Internet exponieren. + +--- + +## Client-Setup (jeder Linux-Rechner) + +### 1. Transkriptor installieren + +```bash +git clone git@git.tueit.de:tueit_GmbH/tueit_Transkriptor.git +cd tueit_Transkriptor +python -m venv .venv +.venv/bin/pip install -r requirements.txt +``` + +### 2. App starten + +```bash +.venv/bin/python main.py +``` + +Beim ersten Start: Browser öffnet sich automatisch (oder manuell: http://localhost:8765). +Einmal Admin-Account anlegen, dann einloggen. + +### 3. Beastix konfigurieren (Einstellungen → ⚙) + +Als Admin einloggen → Zahnrad-Icon im Header → Einstellungen: + +| Feld | Wert (Beispiel) | +|------|-----------------| +| Whisper Server URL | `http://beastix:8000` | +| Whisper Modell | `large-v3` | +| Ollama Server URL | `http://beastix:11434` | +| Ollama Modell | `gemma3:12b` (aus Dropdown wählen) | + +Leer lassen = lokale Verarbeitung (benötigt lokales Whisper-Modell). + +### 4. Als systemd-User-Service einrichten (optional) + +```bash +cat > ~/.config/systemd/user/tueit-transcriber.service << 'EOF' +[Unit] +Description=tüit Transkriptor +After=network.target + +[Service] +WorkingDirectory=%h/work/tueit_Transkriptor +ExecStart=%h/work/tueit_Transkriptor/.venv/bin/python main.py +Restart=on-failure +RestartSec=5 + +[Install] +WantedBy=default.target +EOF + +systemctl --user daemon-reload +systemctl --user enable --now tueit-transcriber.service +``` + +--- + +## Audio — PipeWire Combined Source + +Um Mikrofon + System-Audio gleichzeitig aufzunehmen (z.B. für Konferenzen): + +Einstellungen → Audio → **Combined Source erstellen** + +- Mikrofon auswählen +- System-Audio Monitor auswählen (z.B. `alsa_output.*.monitor`) +- Erstellen → neues Device `transkriptor-combined.monitor` erscheint in der Liste +- Als Aufnahmequelle auswählen und speichern + +Die PipeWire-Module werden in `~/.config/tueit-transcriber/pipewire-modules.json` +gespeichert. Bei App-Stop können sie mit `pactl unload-module ` entladen werden.