Files
abdulive/README.md
T
ZeasyAlexandClaude Opus 5 92f14eaa62 Doku: Installation mit einem Befehl
Getestet wie Abdu es tippt, in frischer Umgebung: laedt, prueft die
Pruefsumme, installiert, legt die Aufgaben an. check-env danach ohne
harte Fehler.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AhVSfMFdWnXKCv5JfLnArZ
2026-09-09 18:01:50 +02:00

109 lines
4.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# abdulive-toolkit
Werkzeugkasten für den Twitch-Kanal **abdulive_**. Ein Monorepo mit mehreren
kleinen Diensten, die sich einen gemeinsamen Kern teilen: Twitch-Auth,
Helix-Client, EventSub/IRC-Ingest und eine SQLite-Datenbank.
TypeScript auf Node 24, **ohne Laufzeitabhängigkeiten und ohne Build-Schritt** —
Node führt die `.ts`-Dateien direkt aus, SQLite und WebSocket sind eingebaut.
Betrieb über Docker Compose.
Zielgröße des Kanals: ~5–30 gleichzeitige Zuschauer. Alles hier ist auf diese
Phase optimiert — nicht auf Skalierung, sondern auf **Wachstum und Bindung**.
## Die neun Tools
| # | Tool | Ordner | Zweck | Status |
|---|------|--------|-------|--------|
| 1 | Clip-to-Shorts | `apps/clipper` | Clips → 9:16 mit Untertiteln, Upload-fertig | geplant |
| 2 | Go-Live-Broadcaster | `apps/broadcaster` | Stream-Start → Discord/Bluesky/Instagram | geplant |
| 3 | Raid- & Netzwerk-Tool | `apps/raid-scout` | Raid-Ziele finden, Raid-Historie führen | geplant |
| 4 | Analytics-Dashboard | `apps/dashboard` | Viewer vs. Chat, Titel-Performance, Retention | geplant |
| 5 | VOD-Kapitel | `apps/vod-chapters` | Szenen-/Kategoriewechsel → Timestamps | geplant |
| 6 | Community-Gedächtnis | `apps/community` | Chatter-Profile, Begrüßungen, Overlay-Hinweise | geplant |
| 7 | Chat steuert Dinge | `apps/overlay-server` + `apps/overlay-web` | Overlay, Soundboard, Minigames, Umfragen | geplant |
| 8 | Punktesystem + Shop | `apps/loyalty` | Punkte mit echten Konsequenzen | geplant |
| 9 | Stream-Recap | `apps/recap` | Zusammenfassung nach Streamende in Discord | geplant |
Dazu der Dienst, der unter allen anderen liegt:
| — | **Ingest-Daemon** | `apps/ingest` | IRC + Helix → DB, Einrichtungsseite | **läuft** |
## Doku
- [`docs/00-overview.md`](docs/00-overview.md) — Was hier gebaut wird und warum
- [`docs/01-architecture.md`](docs/01-architecture.md) — Aufbau, Datenfluss, Prozesse
- [`docs/02-twitch-integration.md`](docs/02-twitch-integration.md) — Auth, Scopes, EventSub, Rate Limits
- [`docs/03-data-model.md`](docs/03-data-model.md) — Datenbankschema
- [`docs/04-roadmap.md`](docs/04-roadmap.md) — Reihenfolge und Meilensteine
- [`docs/05-setup.md`](docs/05-setup.md) — Lokal einrichten
- [`docs/06-hebel-analyse.md`](docs/06-hebel-analyse.md) — **Womit anfangen und warum**
- [`docs/07-mvp-plan.md`](docs/07-mvp-plan.md) — **MVP „Clip-Knopf": Umfang, Scheiben, Zeitplan**
- [`docs/handoff.md`](docs/handoff.md) — **Übergabe: Stand, Fallstricke, wo weitermachen**
- [`docs/offene-punkte.md`](docs/offene-punkte.md) — was noch fehlt
- [`docs/obs-layout.md`](docs/obs-layout.md) — die Layout-Vorgabe für OBS
- [`docs/projects/`](docs/projects/) — je ein Spec-Dokument pro Tool
- [`docs/decisions/`](docs/decisions/) — Architekturentscheidungen (ADRs)
## Auf dem Stream-PC installieren
Eine native Windows-Anwendung. Node, ffmpeg, whisper.cpp und die Schriften
sind mitgeliefert — vorausgesetzt wird nur OBS. Kein Docker, kein WSL2, nichts
zu übersetzen ([ADR-0007](docs/decisions/ADR-0007-native-windows.md)).
Ein Befehl, ohne Administratorrechte. Programm und Daten landen im
Benutzerprofil.
```powershell
irm https://git.zeasy.dev/ZeasyAlex/abdulive/raw/branch/main/scripts/install.ps1 | iex
```
Kein Netz auf dem Stream-PC? Dann das Paket von der Releases-Seite laden,
entpacken und darin `install.ps1` ausführen.
Danach einmalig:
```powershell
abdulive fetch-model # Sprachmodell, ca. 465 MB
abdulive check-env # Selbsttest
Start-ScheduledTask -TaskName abdulive
```
Dann **http://localhost:4792/setup** öffnen und die Twitch-Zugangsdaten
eintragen. Sie werden verschlüsselt abgelegt, nicht in einer Datei im Projekt
([ADR-0005](docs/decisions/ADR-0005-zugangsdaten.md)).
Ausführlich: [`docs/05-setup.md`](docs/05-setup.md).
## Paket bauen und ausliefern
```powershell
node scripts/build-package.ts --version 0.5.0
```
Lädt Node, ffmpeg und whisper.cpp bei ihren Herausgebern, packt alles nach
`dist/` und schreibt `abdulive.json` — das Manifest, das der Updater auf
Abdus Rechner abfragt. Läuft auch in der CI unter Linux.
Auf dem Stream-PC sieht `abdulive update` täglich nach und legt eine neue
Fassung bereit; eingespielt wird sie beim nächsten Start, nie mitten im
Stream.
## Aktueller Stand
Vier von sieben Scheiben des MVP „Clip-Knopf" sind gebaut: Toolchain,
Einrichtung im Browser, Twitch-Auth, Datenbank, Chat-Aufnahme, OBS-Anbindung mit
`!clip`, 9:16-Render und Untertitel. Dazu die native Auslieferung mit Installer
und Updater. 79 Tests grün.
Offen: die Abnahme der OBS-Anbindung an einem laufenden OBS, dann S5 —
Onboarding-Assistent und Sichtungsseite.
Details: [`docs/handoff.md`](docs/handoff.md)
## Tests
```powershell
node --test "packages/**/*.test.ts" "apps/**/*.test.ts"
```