79 lines
3.6 KiB
Markdown
79 lines
3.6 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
|
||
|
||
## 🪪 Lizenz
|
||
Dieses Projekt steht unter der **Bratonien Proprietary License 1.0**.
|
||
Alle Rechte vorbehalten © 2025 Thomas Dannenberg – Bratonien.
|
||
Nutzung, Weitergabe oder Modifikation nur mit ausdrücklicher Genehmigung. |