74 lines
3.3 KiB
Markdown
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 |