Ein osTicket-Plugin zur Inventarverwaltung von PCs/Servern und Telefonen, direkt im Agenten-Bereich. Diese Fassung modernisiert das ursprüngliche Plugin von bcombs18 für osTicket 1.18 und PHP 8.1–8.3, ist vollständig deutsch lokalisiert und enthält eine kombinierte Übersicht, eine verbesserte Suche sowie zahlreiche Fehlerbehebungen.
Basiert auf
bcombs18:inventoryv1.1.6. Die Plugin-ID bleibt bewusst unverändert, damit ein Upgrade bestehender Installationen ohne Neuinstallation funktioniert (siehe Migration).
- Zwei Gerätetypen: PCs/Server und Telefone, jeweils mit eigenen Listen, Spalten und Warteschlangen (aktiv / abgeschaltet / nicht zugewiesen).
- Kombinierte Übersicht als Startseite mit beiden Listen, Direktsuche und „Neuen Eintrag erstellen"-Menü.
- Benutzer-Zuweisung: Geräte an Endbenutzer zuweisen; zugewiesene Geräte erscheinen als Tab am Endbenutzer und an der Organisation.
- Benutzerdefinierte Felder über osTickets dynamische Formulare (pro Typ).
- CSV-Import für PCs/Server und Telefone.
- Teilstring-Suche (
LIKE %…%) über mehrere Felder (Hostname, Modell, Hersteller, Seriennummer, Standort, Zugewiesen an bzw. Telefonnummer, Modell, IMEI, Zugewiesen an). - Notizen und optionales Audit-Log (created/updated/retired/…).
- Deutsche Oberfläche (~590 Strings). Datenbank-Werte bleiben englisch; die Anzeige wird über einen eigenen Übersetzungskatalog gedeutscht.
| Komponente | Version |
|---|---|
| osTicket | 1.18.x |
| PHP | 8.1 – 8.3 |
| MySQL/MariaDB | wie von osTicket 1.18 gefordert |
- Das gebaute Plugin
inventory_manager.pharnachinclude/plugins/im osTicket-Web-Root kopieren. - Im Admin-Bereich unter Verwalten → Plugins auf Add New Plugin → Inventory Manager installieren.
- Plugin aktivieren. Beim ersten Start legt es Tabellen, Formulare und Warteschlangen automatisch an.
- Ab- und wieder anmelden (osTicket cacht Plugin-Code und Übersetzungen).
Danach erscheint oben der Reiter Inventarverwaltung.
Der Wechsel ist ein Upgrade, keine Neuinstallation, weil die Plugin-ID
(bcombs18:inventory) unverändert bleibt. Konkret:
- Bestehende Geräte-Daten bleiben erhalten. Die Kern-Tabellen
inventory_assetundinventory_phonehaben in beiden Versionen ein identisches Schema und werden nur mitCREATE TABLE IF NOT EXISTSangefasst — vorhandene Datensätze werden nicht überschrieben. - Benutzerdefinierte Felder bleiben erhalten. Das Upgrade führt die
Installations-Skripte nicht erneut aus (diese enthalten ein
DELETE FROM form …, das nur bei einer echten Neuinstallation läuft). Der Upgrade-Pfad legt lediglich die neue Audit-Tabelle an (CREATE TABLE IF NOT EXISTS). - Plugin-Konfiguration und -Instanz bleiben erhalten (gleiche Plugin-ID).
Technisch entscheidend: Beim Start prüft das Plugin
SHOW TABLES LIKE 'inventory_asset'. Da die Tabelle existiert, läuft der
Upgrade-Pfad statt der Erstinstallation.
Unabhängig von obiger Analyse gilt die Standardregel: Vor dem Upgrade ein Datenbank-Backup anlegen.
mysqldump -u <user> -p <osticket_db> > osticket_backup_$(date +%F).sql- Datenbank sichern (siehe oben).
- Die alte
inventory*.pharininclude/plugins/durch die neueinventory_manager.pharersetzen. - osTicket öffnen — das Plugin erkennt die vorhandene Installation und führt den Upgrade-Pfad automatisch aus (legt nur die Audit-Tabelle an).
- Ab- und wieder anmelden, damit der neue Code und die Übersetzungen geladen werden.
Ändere die Plugin-ID nicht. Bleibt sie bcombs18:inventory, erkennt osTicket
eine bestehende 1.1.6-Installation als Upgrade. Würde die ID geändert, behandelte
osTicket das Plugin als neu — dann liefe die Erstinstallation samt
DELETE FROM form …, was benutzerdefinierte Felder verwerfen könnte.
- Reiter Inventarverwaltung / Übersicht lädt.
- Bestehende PCs/Server und Telefone sind vorhanden.
- Anlegen mehrerer Einträge (auch ohne Seriennummer/IMEI) funktioniert.
- „Anwendungen"-Seite lädt ohne Fehler.
- Suche findet Teilbegriffe.
Sollten benutzerdefinierte Werte nach dem Upgrade nicht sofort in der Liste erscheinen, genügt in der Regel ein einmaliges Speichern des betreffenden Datensatzes (die materialisierten Anzeigedaten werden pro Datensatz aktualisiert).
Im Plugin (Instanz-Einstellungen):
- Backend aktivieren — zeigt den Inventar-Reiter im Agenten-Bereich.
- Telefone aktivieren — schaltet die Telefon-Verwaltung frei.
- Audit-Log aktivieren — protokolliert Änderungen (optional).
Benutzerdefinierte Felder werden wie bei osTicket üblich über die zugehörigen dynamischen Formulare („Inventory" / „Inventory Phone") gepflegt.
Voraussetzung: PHP 8.3 CLI.
Syntaxprüfung aller Dateien:
find . -name '*.php' -not -path './vendor/*' -exec php -l {} \;Natives PHAR bauen (Beispielskript):
php -d phar.readonly=0 build_phar.php <quellverzeichnis> inventory_manager.pharDas PHAR nutzt den Stub Phar::mapPhar('inventory_manager.phar'), den Alias
inventory_manager.phar und eine SHA-1-Signatur.
Hinweis zu Tests: Die Modell-Logik (z. B. Anlegen/Deduplizieren) lässt sich mit einem DB-freien PHP-Harness (ORM-Stubs) verhaltensmäßig testen. Such-/ Queue-Verhalten hängt dagegen an osTickets SQL-Schicht und sollte auf einer echten osTicket-Instanz geprüft werden.
Siehe CHANGELOG.md für die vollständige Historie von v1.1.6 bis v2.8.3.
- Ursprüngliches Plugin: bcombs18/osTicket-Inventory-Manager
- Diese Fassung: Modernisierung für osTicket 1.18 / PHP 8, deutsche Lokalisierung, kombinierte Übersicht, verbesserte Suche, Refactoring und Fehlerbehebungen.
Es gilt die Lizenz des ursprünglichen Projekts (siehe LICENSE).