Releases: teris/Server-Management-Framework
Releases · teris/Server-Management-Framework
3.2.7
3.2.7
Hinzugefügt
Erweiterte ISPConfig-API-Funktionen
Mail-Funktionen (12 Funktionen)
Sites-Funktionen (12 Funktionen)
ISPConfig-API-Erweiterungen
- ISPConfigGet-Klasse erweitert: 37 neue GET-Methoden für DNS, Mail und Sites
- ISPConfigPost-Klasse erweitert: 37 neue POST/PUT/DELETE-Methoden für DNS, Mail und Sites
- Vollständige DNS-Record-Unterstützung: A, AAAA, CNAME, MX, TXT, NS, PTR, SRV, HINFO, NAPTR, RP, DS, Alias
- Erweiterte Mail-Funktionalität: Domains, Aliases, Forwards, Catchalls, Blacklists, Whitelists, Spamfilter
- Sites-Management: FTP-Users, Shell-Users, Cron-Jobs, Database-Users, Web-Subdomains, Aliasdomains
Dokumentation und Beispiele
- ISPConfig_Funktionen_Übersicht.md: Vollständige Dokumentation aller neuen Funktionen
- Beispiel-Verwendung: Detaillierte Code-Beispiele für alle Funktionskategorien
- API-Referenz: Strukturierte Übersicht mit GET/POST-Funktionen
Technische Verbesserungen
- Konsistente API-Struktur: Alle Funktionen folgen dem gleichen Muster
- Erweiterte Fehlerbehandlung: Strukturierte Antworten mit Erfolg/Fehler-Status
- API-Validierung: Automatische Prüfung ob ISPConfig aktiviert ist
- Sichere Aufrufe: Verwendung der
safeAPICall-Methode für alle neuen Funktionen - Filter-Unterstützung: Alle GET-Funktionen unterstützen optionale Filter-Parameter
Behoben
ServiceManager-Integration
- safeAPICall-Parameter korrigiert: Alle neuen Funktionen verwenden korrekte Parameter-Reihenfolge
- API-Name-Validierung: Konsistente Verwendung von 'ispconfig' als API-Name
- Linter-Fehler behoben: Alle Type-Hint-Warnungen für safeAPICall-Aufrufe behoben
Technische Details
- Framework-Erweiterung: 37 neue Methoden in der ServiceManager-Klasse
- ISPConfig-API-Abdeckung: Vollständige Abdeckung der ISPConfig 3.x Remote-API
- Rückwärtskompatibilität: Alle bestehenden Funktionen bleiben unverändert
- Code-Qualität: Keine neuen Linter-Fehler, konsistente Code-Struktur
[3.2.6]
Behoben
Windows-spezifische Fehler
- "Undefined array key 'node'" Fehler behoben: Kritischer Fehler in
framework.phpZeilen 557 und 577 behoben - getNodes() Methode korrigiert: Gibt jetzt nur das
dataArray zurück statt der gesamten API-Antwort - Array-Key-Prüfung hinzugefügt:
isset($nodeData['node'])Prüfung verhindert "Undefined array key" Warnungen - Konsistente Datenstruktur: Einheitliche Behandlung von Node-Daten zwischen
getVMs()undgetLXCs()Methoden - Disk-Space-Funktionen Windows-kompatibel:
disk_free_space()unddisk_total_space()Fehler inAdminCore.phpbehoben - Windows-Pfade hinzugefügt: XAMPP, WAMP, Laragon und Benutzer-Pfade für Windows-Umgebungen
- Robuste Pfad-Prüfung:
is_dir()undis_readable()Prüfungen vor Disk-Space-Abfragen - Array to String Conversion behoben: "Array to string conversion" Fehler in
DatabaseManager.phpZeile 170 behoben - Robuste Parameter-Verarbeitung: Arrays werden automatisch zu JSON-Strings konvertiert in execute-Methoden
Technische Verbesserungen
- Robuste Fehlerbehandlung: Verbesserte Behandlung von API-Fehlern in der Proxmox-Integration
- Windows-Kompatibilität: Spezifische Behebung für Windows-Umgebungen (XAMPP, etc.)
- Code-Stabilität: Verhindert PHP-Warnungen bei fehlenden Array-Keys
Geändert
- getNodes() Rückgabewert: Gibt jetzt
$response['data']statt$responsezurück - Node-Datenverarbeitung:
isset()Prüfung für 'node' Key in allen Node-Iterationen - Fehlerbehandlung: Leere Arrays statt Fehler-Objekte bei API-Problemen
Technische Details
- Betroffene Methoden:
getNodes(),getVMs(),getLXCs(),getDiskUsage(),execute() - Betroffene Dateien:
framework.php(Zeilen 528-545, 552, 572),src/core/AdminCore.php(Zeilen 844-890),src/core/DatabaseManager.php(alle execute-Methoden) - Windows-Pfade: C:, XAMPP, WAMP, Laragon, Benutzer-Desktop und -Dokumente
- Fehlerbehandlung: @ Operator für disk-Space-Funktionen, Pfad-Existenz-Prüfung, Array-zu-JSON-Konvertierung
- Datenbanktreiber: MySQL, PostgreSQL, SQLite - alle mit robuster Parameter-Verarbeitung
- Kompatibilität: Rückwärtskompatibel, keine Breaking Changes
3.2.5
[3.2.5] - 2024-12-19
Proxmox-Modul - Erweiterte VM/Container-Verwaltung
Hinzugefügt
- LXC-Container-Unterstützung: Vollständige Unterstützung für LXC-Container neben QEMU VMs
- Node-Management: Detaillierte Node-Übersicht mit Status-Informationen und VM/Container-Zählung
- Storage-Details: Umfassende Storage-Informationen mit Inhalt und Verfügbarkeit
- Bestätigungs-Modals: Sichere Bestätigung für kritische Aktionen (Start/Stop/Delete)
- Erweiterte VM-Aktionen: Reset, Resume und intelligente Button-Zustände
- RAM-Formatierung: Anzeige von RAM-Größen in GB mit Dezimalstellen
- Uptime-Berechnung: Automatische Berechnung und Anzeige der Laufzeit
- Framework-Erweiterungen: ServiceManager-Unterstützung für QEMU und LXC
Geändert
- Tab-basierte Navigation: Ersetzt Modal-Overlays durch intuitive Tab-Navigation
- VM/Container-Liste: Verbesserte Darstellung mit Typ-Unterscheidung
- Button-Logik: Intelligente Aktivierung/Deaktivierung basierend auf Status und Typ
- API-Integration: Optimierte Nutzung der Proxmox VE REST API
- Fehlerbehandlung: Verbesserte Fehlermeldungen und Benutzer-Feedback
Technische Verbesserungen
- Framework-Integration: Erweiterte ServiceManager-Klasse für LXC-Unterstützung
- API-Endpunkte: Vollständige Abdeckung aller Proxmox-API-Funktionen
- Code-Struktur: Modularisierte JavaScript-Architektur
- Performance: Optimierte Datenladung und Caching
Bekannte Einschränkungen
- VM/Container-Erstellung: Noch nicht implementiert (geplant für v1.2.0)
- VM/Container-Bearbeitung: Konfigurationsänderungen noch nicht verfügbar
- Bulk-Operationen: Mehrere VMs/Container gleichzeitig verwalten noch nicht möglich
3.2.3
File-Editor Modul - Verbesserungen
Behoben
- Code-Ausführung verhindert: PHP/HTML/JavaScript-Code wird nicht mehr im Hintergrund ausgeführt beim Öffnen von Dateien
- Sichere Content-Übertragung: Dateiinhalt wird nur als reiner Text angezeigt, keine Interpretation oder Ausführung
- ACE Editor Fehler behoben:
ace.edit can't find div #file-editor-aceFehler behoben - Robuste Fallback-Lösung: Automatischer Wechsel zur Textarea bei ACE Editor Problemen
Geändert
- Backup-Formatierung: Backup-Dateien verwenden jetzt das Format
<dateiname>.<dateiendung>.bnkanstatt Zeitstempel - Automatisches Überschreiben: Backup-Dateien werden ohne Aufforderung überschrieben
- Verbesserte Sicherheit: Getrennte Datenebenen für HTML und JavaScript
Technische Verbesserungen
- Sichere JavaScript-Initialisierung: Inhalt wird aus Textarea geladen, nicht direkt eingebettet
- Debug-Logs: Erweiterte Logging-Funktionen für bessere Fehlerdiagnose
- Element-Prüfung: Robuste Prüfung auf DOM-Element-Existenz vor ACE Editor Initialisierung
Sicherheit
- Keine Code-Ausführung: Alle Dateitypen werden nur als reiner Text behandelt
- HTML-Escaping: Alle Inhalte werden sicher escaped
- Sichere Übertragung: Keine direkte Einbettung von potentiell gefährlichem Code in JavaScript
3.1.9
Geändert
- Support-Tickets-Modul Übersetzungen: Vollständige Umstellung auf die neue globale
t()-Funktion - Support-Tickets-Modul Template: Entfernung der manuellen Übersetzungs-Arrays und Vereinfachung der Template-Logik
- Support-Tickets-Modul JavaScript: Keine Änderungen erforderlich - bereits optimiert mit direkten deutschen Texten
- Modul-System: Konsistente Verwendung der globalen
t()-Funktion in allen Modulen
Technische Details
- Entfernte Funktionen: Manuelle
$translations-Arrays ausgetContent()-Methode - Vereinfachte Templates: Keine manuellen Übersetzungs-Arrays mehr erforderlich
- Automatische Modul-Erkennung: Support-Tickets-Modul nutzt jetzt die automatische Modul-Erkennung der globalen
t()-Funktion - Konsistente Übersetzungen: Alle Template-Strings verwenden jetzt die globale
t()-Funktion
Verbesserungen
- Wartbarkeit: Einfachere Wartung durch zentrale Übersetzungslogik
- Performance: Reduzierte Server-Last durch Entfernung redundanter Übersetzungsabfragen
- Konsistenz: Einheitliche Übersetzungsbehandlung in allen Modulen
3.1.2
Hinzugefügt
- Manual Updater mit folgenden Funktionen:
- Automatische Versionsprüfung über GitHub API (Latest und Tag-basierte Releases)
- Versionsvergleich mit
CHANGELOG.mdund Nightly-Erkennung (Stable vs. Nightly) - Update-Typen: Framework Only und Vollständiges Update (Asset-Auswahl je nach Typ)
- Optionales Backup vor Installation (Dateien und – optional – Datenbank)
- Mehrsprachigkeit (DE/EN) via Framework-
t()Integration
- Backup-Management im Admin-Panel:
- Erstellung von ZIP-Backups mit Datei- und optionalem Datenbank-Inhalt
- Auflistung vorhandener Backups inkl. Größe, Datum und Aktionen (Download/Löschen)
- Debug-/Test-Tools: Debug-Infos, ZIP-Test, schrittweiser Backup-Test
- UI/UX für Updates:
- Systeminfo (PHP-Version, ZIP-Status, Temp-Verzeichnis)
- Auswahl des Update-Typs, Fortschrittsbalken und Live-Log-Ausgabe
3.1.0
[3.1.0]
Hinzugefügt
- Multi-Datenbank-Support: Separate SQL-Dateien für MySQL, PostgreSQL und SQLite
- Optimierte Indizes: Performance-optimierte Indizes für alle häufig verwendeten Abfragen
- Views: Übersichts-Views für komplexe Abfragen (user_activity_overview, vm_overview, website_overview)
- Verbesserte Constraints: Vollständige Foreign Key Constraints für Datenintegrität
- Standarddaten: Grunddaten für sofortige Nutzung nach Installation
- Dokumentation: Umfassende Dokumentation und Migrationsleitfaden
Geändert
- Tabellenstruktur: Optimierte Spaltentypen und -größen
- Namenskonventionen: Einheitliche Namenskonventionen für alle Tabellen und Spalten
- Auto-Increment: Konsistente Auto-Increment Konfiguration
- Timestamps: Standardisierte created_at und updated_at Felder
Entfernt
- Nicht verwendete Tabellen: Entfernung von 10 nicht im System verwendeten Tabellen:
backup_jobs- Backup-Jobs (nicht im Code verwendet)domain_extensions- Domain-Erweiterungen (nicht verwendet)groups- Gruppen (nicht verwendet)group_module_permissions- Gruppen-Modul-Berechtigungen (nicht verwendet)module_configs- Modul-Konfigurationen (nicht verwendet)module_dependencies- Modul-Abhängigkeiten (nicht verwendet)module_permissions- Modul-Berechtigungen (nicht verwendet)network_config- Netzwerk-Konfiguration (nicht verwendet)server_resources- Server-Ressourcen (nicht verwendet)active_modules- Aktive Module (nicht verwendet)
Behoben
- Datenintegrität: Vollständige Referential Integrity durch Foreign Keys
- Performance: Optimierte Abfragen durch bessere Indizierung
- Wartbarkeit: Konsistente Struktur für einfachere Wartung
Technische Details
- MySQL/MariaDB als Hauptdatenbank
- UTF8 Zeichensatz
- InnoDB Engine
- Basis-Indizes
- Grundlegende Constraints
MySQL/MariaDB (database-structure-optimized.sql)
- UTF8MB4 Zeichensatz für vollständige Unicode-Unterstützung
- InnoDB Engine für Transaktionssicherheit
- Optimierte Indizes für alle Abfrage-Patterns
- Views für komplexe Übersichtsabfragen
PostgreSQL (database-structure-postgresql.sql)
- Native ENUM-Typen für bessere Typsicherheit
- JSONB für Konfigurationsdaten
- SERIAL für Auto-Increment Felder
- Trigger für automatische updated_at Aktualisierung
- PostgreSQL-spezifische Views
SQLite (database-structure-sqlite.sql)
- CHECK Constraints für ENUM-Simulation
- INTEGER PRIMARY KEY für Auto-Increment
- Trigger für updated_at Felder
- SQLite-optimierte Views
- WAL-Modus für bessere Performance
3.0.9
[3.0.9]
Fehlerbehebung
- Model-Klasse erweitert: Der Konstruktor akzeptiert jetzt einen optionalen $data Parameter
- Daten-Speicherung hinzugefügt: Eine $data Eigenschaft zum Speichern der übergebenen Daten
- Hilfsmethoden hinzugefügt: getData() und setData() Methoden für den Zugriff auf die Daten
- Fehlende Klasse hinzugefügt: ActivityLog Klasse hinzugefügt, die von Model erbt
Geändert
- bind_param("ss", $admin_user, $admin_email) → execute([$admin_user, $admin_email])
- get_result() → fetchAll()
- num_rows → count($result)
- close() entfernt (nicht nötig bei PDO)
- $conn->ping() durch !$conn->connect_error ersetzt
- Null-Check für den Rückgabewert von getDashboardStats()
- getConnection() Aufrufe ersetzt
###Technische Verbesserung
- Sicherstellung, dass immer ein gültiger Wert an $this->success() übergeben wird
- MongoDBClientDummy für \MongoDB\Client
- MongoDBUTCDateTimeDummy für \MongoDB\BSON\UTCDateTime
- MongoDBDatabaseDummy für \MongoDB\Database
- MongoDBCollectionDummy für \MongoDB\Collection
- MongoDBInsertOneResultDummy für \MongoDB\InsertOneResult
- MongoDBDeleteResultDummy für \MongoDB\DeleteResult
- MongoDBCursorDummy für \MongoDB\Driver\Cursor
Bekannte Probleme
- PHP1408 Fehler in src/core/AdminCore.php
Hinzugefügt
- Eine neue private Methode getSafeDbConnection() wurde erstellt
- createOGPUser($userData) - Erweiterte OGP Benutzererstellung
- createProxmoxUser($userData) - Erweiterte Proxmox Benutzererstellung
[3.0.8]
Fehlerbehebung
- Linter-Fehler P1006: Alle "Expected type 'object'. Found 'null'" Fehler wurden behoben
- Robustheit: Zusätzliche Sicherheit durch explizite Null-Checks
- Konsistenz: Alle Proxmox-Methoden haben jetzt einheitliche Fehlerbehandlung
- Typsicherheit: Der Linter kann jetzt sicher sein, dass die Objekte nicht null sind
- Undefined property: VM::$state - Der Hauptfehler wurde durch robuste Eigenschaftsabfrage behoben
- Verbesserte Fehlerbehandlung - Alle Eigenschaftszugriffe sind jetzt sicher
- Konsistente Codestruktur - Einheitliche Behandlung von Objekten und Arrays
[3.0.7]
Fehlerbehebung
- Fehler im Regestationsporzess der Systemanmeldungen
- Fehler in der Verwendung von createISPConfigUser()
Benutzerregestration
- Benutzer werden nun automatisch per E-Mail benachrichtigt
- Verifizierungsprozess erzeugt benutzer inkl. Random Passwörter in den Systemen
- Login in die Systeme einzelnd möglich
Sicherheit
- Verifizierung ist nur 24h Gültig
- Bei Aktivierung des Benutzers aus dem BackEnd, werden keine weiteren System-Benutzer angelegt
[3.0.6]
Fehlerbehbung
- Der DatabaseManager hatte zwei kritische Fehler, die zu Fatal Errors führten:
- Pfadfehler (src/inc/settings.php)
- Query-Methode Fehler (src/core/DatabaseManager.php)
Auswirkungen der Korrektur
- Pfadfehler behoben: DatabaseManager.php wird korrekt geladen
- Query-Methode funktioniert:
fetchAll()kann auf Statement-Objekt aufgerufen werden - Datenbankabfragen funktionieren: Alle SELECT-Statements in settings.php laufen korrekt
- Keine Fatal Errors mehr: Script läuft ohne kritische Fehler
Sicherheitshinweise
- Alle Änderungen sind rückwärtskompatibel
- Keine Änderungen an der API-Schnittstelle
- Bestehender Code funktioniert unverändert weiter
- Keine Breaking Changes
Full Changelog: 3.0.5...3.0.9
3.0.5 Major Release
[3.0.5] Major Release
Neue Features
Datenbank-Abstraktionsschicht (DAL)
- Neue Datenbankunterstützung: Vollständige Unterstützung für MySQL/MariaDB, PostgreSQL, SQLite und MongoDB
- Konfigurierbare Datenbankauswahl: Neue Konstante
DB_TYPEinconfig/config.inc.phpfür einfache Datenbankumschaltung - Neue Datei:
src/core/DatabaseManager.php- Zentrale Datenbankverwaltung mit abstrakten Treibern - Neue Datei:
src/core/ActivityLogger.php- Zentrales Aktivitäts-Logging-System - Neue Datei:
DATABASE_MIGRATION.md- Umfassende Dokumentation der Datenbankmigration
Admin-Benutzerverwaltung
- Unified User Management: Anzeige und Verwaltung von Admin-Benutzern und Frontpanel-Kunden in einer Oberfläche
- Erweiterte Benutzerfilter: Neue Filter für Benutzertyp, Status und Rolle
- Kundenverwaltung: Vollständige CRUD-Operationen für Frontpanel-Kunden aus dem Admin-Bereich
Dashboard-Erweiterungen
- Domain-Status-Anzeige: Neue Anzeige der Domain-Registrierungsstatus im Format
approved/rejected?pending - Farbkodierte Status: Grün für approved, Rot für rejected, Gelb für pending
- Aktivitäts-Logging: Umfassendes Logging aller Benutzeraktionen (Login, Support-Tickets, Domain-Registrierungen, etc.)
- "Alle löschen" Button: Möglichkeit, alle Benutzeraktivitäten zu löschen mit Protokollierung der Aktion
Version 3.0.4
[3.0.4]
Entfernt
- Übermäßiges Loggin - auskommentiert der funtkon
logRequestin den Generischen Funktionen
Hinzugefügt
- Manuelles Loggin - Neue Methode zum erstellen von Logs hinzugefügt __log($action, $details, $status = 'info')
- Für Manuelles Loggin muss die Tabele im SQL angepasst werden
ALTER TABLEactivity_log
MODIFY COLUMNstatusenum('success','error','pending','info') NOT NULL; - Testfunktion für allgemeinen test Hinzugefügt
__test()
Behoben
- ISPConfigAPI Fehler
IspconfigAPI Error: SoapFault::SoapFault() expects at least 2 parameters, 1 givenbehoben
[3.0.3]
Geändert
- Fehler behoben beim Aufruf der funktion
IspconfigAPIdurch das _get, _update, _add, delete als Suffix angefügt wurde
Version 3.0.0 RC
Hinzugefügt
- Frontpanel - Server Management System - Vollständiges öffentliches Frontend für Kunden
- Server-Status Dashboard - Live-Überwachung von Proxmox VMs und Game Servern
- Responsive Design - Optimiert für alle Geräte (Desktop, Tablet, Mobile)
- Moderne UI - Bootstrap 5 mit Custom CSS und Animationen
- Real-time Updates - Automatische Status-Updates alle 30 Sekunden
- Kundenregistrierung - Einfache Registrierung mit E-Mail-Verifikation
- Kundenlogin - Sichere Authentifizierung mit Remember-Me-Funktion
- Account-Management - Persönliche Einstellungen und Profilverwaltung
- Support-Tickets - Vollständiges Ticket-System für Kundenanfragen
- Ticket-Erstellung - Einfaches Formular für Support-Anfragen
- Prioritätsstufen - Low, Medium, High, Urgent
- E-Mail-Benachrichtigungen - Automatische Bestätigungen und Updates
- Admin-Benachrichtigungen - Sofortige Benachrichtigung bei neuen Tickets
- Auto-Refresh Funktionalität - jQuery-basierte Auto-Aktualisierung aller Server-Status-Daten alle 10 Sekunden
- Echtzeit-Updates - Proxmox VMs, Game Server und System-Informationen werden automatisch aktualisiert
- Manueller Refresh-Button - Hinzugefügter manueller Aktualisierungs-Button mit Spinner-Animation
- Lade-Indikatoren - Visuelle Lade-Indikatoren während der Status-Aktualisierung
- Intelligente Aktualisierung - Auto-Refresh wird pausiert, wenn der Tab nicht sichtbar ist
- Game Server Anzeige verbessert - Korrekte Verarbeitung der OGP API-Antwort-Struktur
- Neue Game Server-Felder - Spiel-Typ, Server-Name, IP-Adresse, Port
- E-Mail-Verifikationssystem - Vollständiger Workflow für neue Kundenregistrierungen
- Kunden-Dashboard - Hauptseite für angemeldete Kunden mit Übersicht und Funktionen
- Session-Management - Sichere Verwaltung von Kunden-Sessions
- Multi-Sprachunterstützung - Deutsche und englische Übersetzungen für alle Kunden-Seiten
Geändert
- Framework.php erweitert - PDO Wrapper-Methoden für bessere Datenbank-Kompatibilität hinzugefügt
- Datenbank-Klasse verbessert - Direkte PDO-Methoden wie
prepare(),query(),exec()verfügbar gemacht - Sprachdateien erweitert - Umfassende Übersetzungen für Kundenregistrierung, Login und Dashboard
- Status-API verbessert - Bessere Fehlerbehandlung und Caching-Mechanismen
- UI/UX verbessert - Erweiterte Benutzeroberfläche mit Zeitstempel der letzten Aktualisierung
Behoben
- Fatal Error behoben -
Call to undefined method Database::prepare()vollständig behoben - VM Object Access Fehler -
Cannot use object of type VM as arrayFehler vollständig behoben - Game Server Array-Zugriff Fehler -
Cannot access offset of type string on stringbei Game Server-Daten behoben - open_basedir Fehler - Alle Verzeichniszugriffe mit @ Operator und try-catch abgesichert
- Dateipfad-Fehler -
framework.phpwird jetzt korrekt aus dem Root-Verzeichnis geladen - Funktionskonflikte - Mit
t()Funktion behoben - Datenbank-Verbindungsprobleme - Robuste Implementierung der System-Informationen-Methoden
Sicherheit
- Passwort-Hashing - Bcrypt mit hoher Kosten implementiert
- SQL-Injection-Schutz - Prepared Statements durchgängig verwendet
- XSS-Schutz - HTML-Escaping aller Ausgaben
- CSRF-Schutz - Session-basierte Token-Validierung
- Brute-Force-Schutz - Account-Sperrung nach fehlgeschlagenen Logins
- Rate-Limiting - API-Aufrufe pro IP-Adresse begrenzt