Mit Plugins rüstet ihr Funktionen nach, ohne DeskHub selbst zu verändern. Alles läuft unter Adminportal → Plugins (nur echte Administratoren).
Die Seite hat drei Reiter:
Berechtigungen nennen, welche Erweiterungspunkte ein Plugin nutzt: Ticket-Ereignisse (hooks.tickets), Hintergrundläufe (hooks.cron), Menüpunkte (ui.menu), Seitenleistenbausteine (ui.sidebar), eigene Datenbank-Tabellen (db.migrations), öffentliche Adressen (api.public), Anmeldung für Mitarbeiter (auth.login) und Kunden (auth.customer). Fordert eine neue Version zusätzliche Berechtigungen an, wird das Plugin automatisch angehalten, bis ihr sie bestätigt habt – auch wenn jemand Dateien per FTP austauscht.
.disabled im Ordner plugins verhindert, dass irgendein Plugin geladen wird.Alle außer dem Discord/Telegram-Bot laufen auf jedem DeskHub ohne Änderung am Server. Jedes Plugin bringt eine eigene Seite im Menü mit.
| Plugin | Was es tut |
|---|---|
| Tagesbericht per E-Mail | Morgens eine Übersicht: offene, unzugewiesene, überfällige und eigene Tickets, Zu- und Abgänge der letzten 24 Stunden, die fünf ältesten offenen Tickets |
| Anhänge-Virenscan | Prüft Anhänge und sperrt Gefährliches (Quarantäne, Notiz, Tag „Virus-Verdacht“, Mail) |
| VirusTotal-Anhangsprüfung | Hält Anhänge zurück, bis VirusTotal sie anhand des Fingerabdrucks geprüft hat |
| Spam- und Missbrauchsfilter | Bewertet neue Tickets mit Punkten; legt Spam automatisch ab |
| Discord- und Telegram-Bot | Mitglieder legen per /ticket Tickets an und werden benachrichtigt |
| Urlaub und Vertretung | Abwesenheit mit Vertretung; Tickets wandern zur Vertretung und zurück |
| Schichtübergabe | Notizen für die nächste Schicht, sichtbar nach der Anmeldung |
| Störungsmitteilung und Rundmail | Eine Nachricht an viele Kunden gleichzeitig |
| Website- und Server-Überwachung | Prüft Webseiten, Ports und Zertifikate; legt bei Ausfall Tickets an |
| Datenschutz | Anonymisiert Kundendaten nach einer wählbaren Frist; löscht auf Antrag |
| authentik-Anmeldung | Anmeldung von Mitarbeitern und Kunden über authentik (OpenID Connect) |
| Synology NAS Backup | Kopiert Backups automatisch auf eine Synology NAS (WebDAV) |
| Cloudflare-Schutz | Prüft Cloudflare-Anfragen und gleicht die Cloudflare-Proxy-Netze ab, damit Besucher-IP und HTTPS sicher erkannt werden |
| Cache & Performance | Beschleunigt die öffentliche Wissensdatenbank mit einem einstellbaren Datenbankcache und zeigt den PHP-OPcache-Status |
| Code-Issue-Synchronisierung | Gibt einzelne Git-Repositories frei, importiert Issues als Tickets (mit gewählter Abteilung und Priorität) und gleicht den Ticketstatus ab |
Sprachpakete (lang-en, lang-de) | Weitere Sprachen für Portal und Mitarbeiterbereich |
Die folgenden Abschnitte zeigen die Seiten der Plugins mit Beispieldaten.
Im Menü „Tagesbericht“ schaltet ihr den Versand ein, legt Uhrzeit, Rhythmus (täglich, nur Werktage oder einmal pro Woche mit Wochentag) und Empfänger fest und schickt einen Testbericht. Standardmäßig kommt der Bericht nur, wenn es etwas zu tun gibt (unzugewiesene oder überfällige Tickets). Jeder Mitarbeiter wählt unter „Mein Tagesbericht“: wie eingestellt, nur wenn Tickets überfällig sind, nur einmal pro Woche (montags) oder gar nicht mehr; jede Mail enthält dazu einen Link. Jeder sieht nur Tickets seiner Abteilungen.
Der Virenscan braucht nichts auf dem Server: Die eingebaute Analyse erkennt Programme, Skripte, getarnte Dateien (eine .exe als PDF), doppelte Endungen, Office-Makros, PDF-Tricks, Skripte in HTML/SVG und Archive mit solchen Dateien. Optional gleicht er per Hash-Abfrage bei VirusTotal ab, und ClamAV wird mitgenutzt, falls vorhanden. Er erkennt keine ganz neuen Viren in normal aussehenden Dokumenten.
Die VirusTotal-Anhangsprüfung sperrt dagegen zuerst: Jeder neue Anhang bleibt [IN PRÜFUNG], bis der SHA-256-Fingerabdruck abgefragt wurde – sauber: frei; ab der Schwelle (Standard 3 Scanner) Schadsoftware: gesperrt mit Tag, Notiz und Mail; unbekannt: zurückgehalten, bis ein Administrator freigibt oder löscht. Standardmäßig verlässt keine Datei den Server. Der kostenlose API-Schlüssel erlaubt 4 Abfragen pro Minute und 500 pro Tag; das Plugin hält sich daran.
Bewertet jedes neue Ticket (Phishing-Wendungen, Marken-Nachahmung im Absendernamen, Link-Verkürzer, Wegwerf-Adressen, Wiederholungen; bekannte Absender bekommen Abzug). Ab 70 Punkten wird das Ticket als Spam abgelegt, ab 35 erhält es den Tag „Spam-Verdacht“. Freigabe- und Sperrliste, eigene Wörter, Protokoll mit „Kein Spam“ / „Doch Spam“ und eine Bewertung in der Seitenleiste des Tickets.
Mitglieder legen mit /ticket im Discord oder in Telegram ein Ticket an, bekommen die Nummer zurück und werden bei Antworten und Lösung benachrichtigt; weitere Befehle /status und /antwort. Der Server nimmt die Anfragen direkt entgegen (kein eigener Bot-Server); sie werden per Signatur (Discord) bzw. Geheimtoken (Telegram) geprüft, je Person gilt eine Stundenobergrenze. Braucht Server 1.0.30 oder neuer, für Discord die PHP-Erweiterung sodium und die Berechtigung api.public.
Vertretung: Abwesenheit mit Vertretung eintragen; zum Beginn gehen offene und neue Tickets an die Vertretung, am Ende kommen die noch offenen zurück; die Vertretung sieht währenddessen auch die Abteilungen des Abwesenden (Ketten bis drei Stufen). Schichtübergabe: Am Schichtende eine kurze Notiz (für alle oder eine Abteilung); die nächste Schicht sieht sie als Hinweis oben auf jeder Seite (rot bei wichtigen), mit „neu“-Zähler im Menü; der Verfasser sieht, wer sie gelesen hat. Rundmail: eine Nachricht an Kunden mit offenen Tickets, einer Abteilung oder Organisation, mit Vorlagen, Empfängerprüfung, Probemail und Protokoll; jede Mail geht einzeln raus (höchstens 200 Empfänger, 5 Rundmails pro Stunde).
Die Website- und Server-Überwachung prüft Webseiten, Ports und Zertifikate; bei Ausfall (nach 2 Fehlschlägen in Folge) oder einem Zertifikat, das in 14 Tagen abläuft, legt das Plugin ein Ticket an und schickt eine Mail; nach der Behebung kommt die Entwarnung und das Ticket wird gelöst. Das Datenschutz-Plugin anonymisiert Kundendaten aus Tickets ohne Registrierung nach einer wählbaren Frist (Name, E-Mail oder beides, auch IP, Mitleser, Zusatzfelder, Nachrichten, Anhänge); die automatische Anonymisierung ist nach der Installation aus. Daten registrierter Kunden löscht der Administrator auf Antrag mit einem Klick.
Mitarbeiter und Kunden melden sich mit authentik an (OpenID Connect mit PKCE). In authentik legt ihr einen OAuth2/OpenID-Provider an und tragt die Rückkehr-Adresse https://<DeskHub>/staff/plugin_login.php?p=authentik&e=callback ein; in DeskHub tragt ihr Issuer-Adresse, Client-ID und Geheimnis ein und prüft mit „Verbindung testen“. Mitarbeiter verknüpfen ihr Konto selbst („Mein authentik-Konto“); Mitarbeiterkonten werden nie automatisch angelegt, Kundenkonten bei Bedarf schon. E-Mail und Passwort funktionieren weiter, auch wenn authentik ausfällt. Braucht Server 1.0.52.
Kopiert die Backups des Servers automatisch per WebDAV auf eine Synology NAS (oder einen anderen WebDAV-Server) und erscheint als Reiter „Synology NAS Backup“ auf der Seite „Backup“. Einstellbar: Verbindung (Adresse, Port 5005/5006, Benutzer, Passwort, HTTPS, Zielverzeichnis) mit „Verbindung testen“, Aufbewahrung (maximales Alter und maximale Anzahl), einzelnes Verschieben von Backups, eigene Backups mit Zeitplan und – für große Backups hinter Proxys mit Größengrenze – Hochladen in Stücken. Jedes Backup wird nach dem Hochladen auf vollständige Größe geprüft; das Passwort wird verschlüsselt gespeichert.
Cloudflare-Schutz und Cache & Performance sind reine Betriebs-Zusätze mit je einer Statusseite. Die Code-Issue-Synchronisierung braucht mehrere Berechtigungen (u. a. api.public, hooks.cron), weil sie Issues aus Git-Repositories abholt und Statusänderungen zurückmeldet.
Ein Plugin ist ein ZIP mit plugin.json (Name, Version, Berechtigungen, optional Sprachpaket-Angaben), plugin.php (Code), optionalen Seiten, Migrationen und lang/<Code>.json für Übersetzungen. Es registriert Menüpunkte, Seiten, Ereignisse (Hooks), Hintergrundjobs, API-Endpunkte oder Anmeldeverfahren – jeweils nur mit der entsprechenden Berechtigung. Pakete lassen sich mit dem Herausgeber-Schlüssel signieren. Die technische Dokumentation steht im Abschnitt „Plugins entwickeln“ der README.
Die Plugin-Webseite ist der Katalog für Plugins, Themes und App-Dateien. Betreiber veröffentlichen dort signierte Pakete; DeskHub-Installationen lesen den Katalog, prüfen Prüfsumme und Signatur und installieren per Klick. Dort liegen auch die Apps (Windows, Android, Chrome-Erweiterung, WordPress- und Minecraft-Plugin), die der Update-Hinweis der Apps abfragt, und der Push-Dienst für die Android-Benachrichtigungen.