Administrator-Panel
Das Administrator-Panel ist eine erweiterte Ansicht, die ausschließlich für Bot-Entwickler verfügbar ist. Es bietet vollständigen Einblick in den Bot-Betrieb auf allen Servern, System-Logs, Nutzungsstatistiken und das Broadcast-System.
Zugang
Das Administrator-Panel ist nur für als Entwickler definierte Benutzer verfügbar:
- Benutzer mit der in der Umgebungsvariablen
DEVELOPER_USER_IDfestgelegten ID - Benutzer, die zur Tabelle
developersin der Datenbank hinzugefügt wurden
Normale Server-Administratoren haben keinen Zugang zu diesem Panel.
Globale Statistiken
Der Hauptbereich des Panels zeigt aktuelle Bot-Statistiken:
| Metrik | Beschreibung |
|---|---|
| Total Guilds | Anzahl aktiver Server mit dem Bot |
| Total Users | Anzahl eindeutiger Benutzer (aus command_stats) |
| Commands (24h) | In den letzten 24 Stunden ausgeführte Befehle |
| Command Breakdown | Befehlsranking nach Häufigkeit (24h) |
| Uptime | Laufzeit des API-Prozesses seit dem letzten Neustart |
| Last Restart | Zeitstempel des letzten Neustarts |
System-Gesundheit
Das Panel zeigt Infrastruktur-Gesundheitsmetriken:
| Metrik | Beschreibung |
|---|---|
| Bot Status | Online/Offline (geprüft über Health-Check Port 8080) |
| DB Size | Größe der PostgreSQL-Datenbank |
| DB Connections | Genutzte/maximale Verbindungen im Pool |
| Process Memory | Vom API-Prozess genutzter RAM |
| System Memory | System-RAM (genutzt/gesamt) |
| CPU | Prozessorauslastung |
| Disk | Belegter/gesamter Speicherplatz |
| Python Version | Python-Version auf dem VPS |
| OS Info | Betriebssystem des VPS |
Serverliste (detailliert)
Tabelle aller aktiven Server mit Informationen:
- Servername (über Discord-API abgerufen)
- Server-Icon
- Mitgliederzahl
- Sprache
- Embed-Farbe
- Aktivierte Module
- Installationsdatum
Ein Klick auf einen Server öffnet die vollständige Konfiguration (cog_settings, dashboard_users, broadcast_channel usw.).
Befehlsstatistiken
Diagramme und Daten zur Befehlsnutzung:
- Tägliche Statistiken — Nutzungsdiagramm im gewählten Zeitraum (bis 90 Tage)
- Filter nach Befehl — Nutzungsansicht eines bestimmten Befehls
- Cog Usage — wie viele Server ein bestimmtes Modul aktiviert haben
Operative Logs
Log-Tabelle mit Filterung:
| Filter | Optionen |
|---|---|
| Severity | info, warning, error |
| Event Type | Ereignistyp (z.B. guild_join, config_update, error) |
| Limit | Maximal 500 Einträge |
Jeder Eintrag enthält: Timestamp, Severity, Event-Typ, guild_id, Nachricht.
Broadcast-System
Broadcasts sind Nachrichten, die vom Entwickler an alle Server mit dem Bot gesendet werden (auf deren Broadcast-Kanal).
Broadcast erstellen
- Kategorie wählen:
- changelog — Update-Informationen
- announcement — Ankündigungen
- maintenance — geplante Wartungen
- Titel eingeben (max 256 Zeichen)
- Optional: Inhalt hinzufügen (max 4000 Zeichen)
- Optional: visuellen Embed-Editor verwenden
- Optional: für bestimmten Zeitpunkt planen (scheduled_at)
- Senden — Bot stellt Broadcast innerhalb von 30 Sekunden zu
Broadcast-Historie
Tabelle gesendeter Broadcasts mit Zustellberichten:
| Feld | Beschreibung |
|---|---|
| Title | Broadcast-Titel |
| Category | changelog / announcement / maintenance |
| Sent At | Wann gesendet |
| Success Rate | % der Server, die erreicht wurden |
| Targeted | Wie viele Server anvisiert wurden |
| Successful | Wie viele Zustellungen erfolgreich waren |
| Skipped | Wie viele übersprungen wurden (kein Kanal) |
| Failed | Wie viele fehlgeschlagen sind (Fehler) |
Zustellbericht
Ein Klick auf einen Broadcast zeigt Details:
- Wie viele Server anvisiert wurden
- Wie viele Zustellungen erfolgreich waren
- Wie viele übersprungen wurden (z.B. kein Broadcast-Kanal)
- Wie viele fehlgeschlagen sind + Fehlerdetails
Entwicklerverwaltung
Das Panel ermöglicht die Verwaltung der Bot-Entwicklerliste:
- Liste — alle Entwickler (aus DB + Env-Variable)
- Hinzufügen — neuer Entwickler per Discord User ID
- Entfernen — Entwickler entfernen (man kann sich selbst oder den Primary Developer aus der Env-Variable nicht entfernen)
Der Primary Developer (aus DEVELOPER_USER_ID) kann nicht entfernt werden — dies ist ein Schutz gegen Zugangsverlust.