Files
Multichat/README.md

74 lines
3.3 KiB
Markdown

# 🦉 Multichat
Zentraler Multiplattform-Chatserver mit lokaler GUI und Plugin-Schnittstelle
## 🧩 Übersicht
**Multichat** ist ein eigenständiges System zur Verwaltung und Anzeige mehrerer Chat-Plattformen in einer Oberfläche.
Es ermöglicht das gleichzeitige Empfangen und Senden von Nachrichten über **Twitch**, **YouTube**, **Kick** und weitere Dienste.
Das Projekt besteht aus einem gemeinsamen Code-Kern, einer universellen GUI und zwei Laufzeitvarianten:
> **Server-Version (LXC / Linux):**
> Dauerhaft laufender Dienst mit Web-GUI und API für externe Tools.
> **Desktop-Version (Windows / macOS / Linux):**
> Electron-basierte Anwendung mit integrierter GUI, ideal für Streamer ohne Serverumgebung.
## ⚙️ Aufbau
Die Projektstruktur ist modular aufgebaut, um Server- und Desktop-Variante auf derselben Codebasis zu betreiben.
```
core/
├─ adapters/ → Plattformadapter (Twitch, YouTube, Kick, Generic)
├─ messageHandler/ → Verarbeitung, Parsing und Routing von Chatnachrichten
├─ storage/ → Temporäre Speicherung (Redis / Lokale JSON-Dateien)
├─ api/ → REST- und WebSocket-Schnittstellen
└─ utils/ → Logging, Error Handling, Helper-Funktionen
gui/
├─ components/ → UI-Elemente (Chatfenster, Tabs, Einstellungsdialoge)
├─ views/ → Reiter / Seiten (Chat, Verbindungen, Einstellungen)
├─ services/ → Verbindung zur Core-API via WebSocket
└─ assets/ → Icons, CSS, Branding
server/
├─ index.js → Einstiegspunkt für Headless-Start
├─ webserver.js → Express-Server für Web-GUI
└─ config.json → Serverkonfiguration (Ports, Tokens, Plattformen)
desktop/
├─ main.js → Electron-Main-Prozess
├─ preload.js → Brücke zwischen GUI und Node.js-Core
└─ package.json → App-Metadaten und Build-Skripte
config/
├─ connections.yml → Plattform-Logins und Tokens
├─ preferences.yml → GUI-Layout, Sprache, Moderationsoptionen
└─ license.json → Lizenz- und Aktivierungsinformationen
```
## 🎛️ Funktionen
- Gleichzeitige Verbindung zu mehreren Plattformen
- Einheitliche Darstellung aller Chats
- Live-Moderation (Clear, Timeout, Mods-Only, Ban)
- Reconnect- und Fehlerhandling
- Plugin-Schnittstelle (WebSocket / API) für **OBS** und **TouchPortal**
- Lizenzmodell: **Light** (Anzeige) und **Premium** (volle Steuerung)
- Erweiterbare Plattformadapter über `core/adapters/`
## 🧠 Zielsetzung
Ziel ist eine stabile, lokal ausführbare Lösung zur Chatverwaltung für Streamer,
die unabhängig von Cloud-Diensten und externer Software arbeiten möchten.
Alle Daten verbleiben ausschließlich auf der eigenen Instanz oder im lokalen System.
Der modulare Aufbau ermöglicht langfristig auch die Einbindung zusätzlicher Dienste oder APIs.
## 📦 Lizenz / Versionen
| Variante | Beschreibung |
|-----------|--------------|
| **Light** | Nur Anzeige des Chats (lesend) |
| **Premium** | Voller Funktionsumfang inkl. Verwaltung und Moderation |
| **Server** | Für LXC / Homelab-Installationen |
| **Desktop** | Für Windows / macOS / Linux (Electron) |
## 🔧 Status
> **Projektphase:** Initialentwicklung (Core-Struktur + Basis-Adapter)
> **Laufzeitumgebung:** Node.js 20 LTS
> **Maintainer:** Thomas Dannenberg