Files
Multichat/README.md

79 lines
3.6 KiB
Markdown
Raw Permalink 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.

# 🦉 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.