6.4 KiB
Changelog
Alle nennenswerten Änderungen an Clusev. Format nach Keep a Changelog, Versionierung nach SemVer.
Release-Prozess: Feature-Commits sammeln sich auf dem Branch. Ist ein Stand
reif, wird er nach main gemerged, als vX.Y.Z getaggt und hier unter einer
eigenen Versionsüberschrift dokumentiert. Nutzer beziehen ausschließlich
getaggte Releases (Kanal stable, optional beta) — niemals Entwicklungs-Builds.
Unreleased
Keine offenen Änderungen — der nächste Stand wird hier gesammelt und als vX.Y.Z getaggt.
0.2.0 - 2026-06-13
Mehr-Betriebssystem-Verwaltung, echte Firewall- und fail2ban-Steuerung aus dem Dashboard sowie eine Tastatur-/Befehls-Bedienung.
Hinzugefügt
- OS-Abstraktion: Updates, Härtung und Firewall laufen jetzt über apt, dnf und zypper (Debian/Ubuntu, RHEL/Fedora/Rocky/Alma, openSUSE). Das Betriebssystem wird erkannt und auf der Server-Detailseite angezeigt (Paketverwaltung/Firewall). Arch und Alpine werden erkannt; nicht unterstützte Funktionen werden mit deutschem Hinweis sauber deaktiviert statt fehlzuschlagen.
- Firewall-Regeln (UFW): Regeln ansehen, hinzufügen und löschen samt Standard-Anzeige — mit Aussperr-Schutz (SSH-Regeln/-Port, deny ohne Port). firewalld wird nur angezeigt (Laufzeit aller aktiven Zonen inkl. Rich Rules); Regelverwaltung bleibt vorerst UFW.
- fail2ban-Status: Jails mit Zählern, gebannte IPs sehen und entsperren, IP manuell sperren (R5-Dialog, Aussperr-Schutz für Loopback + eigenen Zugang) und Whitelist (ignoreip) verwalten.
- Befehls-Palette (Strg/⌘-K) + Tastenkürzel: Schnell-Navigation (Leader „g“), Seitensuche („/“), Hilfe („?“).
Geändert
- System-Updates verwenden je Distribution den passenden Paketmanager
(Audit-Aktion
system.package_upgrade). - fail2ban-Tuning und -Whitelist liegen in getrennten Drop-ins, damit Änderungen sich nicht gegenseitig überschreiben; das frühere Einzel-Drop-in wird migriert.
- Server-Detailseite zeigt erkanntes System, Paketverwaltung und Firewall-Werkzeug.
- System-Seite erklärt jetzt, warum TLS über Caddy terminiert wird.
Sicherheit
- Firewall: race-freies Löschen per Regel-Spezifikation (keine Regelnummern), Whitelisting gegen Befehls-Injection, firewalld-Lockout-Schutz (Ports vor dem Start in der permanenten Konfiguration).
- fail2ban: kanonischer (inet_pton) Schutz gegen das Sperren des eigenen Zugangs, ignoreip wird verbatim erhalten (inkl. Hostnames/Fortsetzungszeilen).
0.1.1 - 2026-06-13
Wartungs-Release: vollständige Code-Auditierung, Entfernung von totem Code und ein behobenes Open-Redirect. Keine funktionalen Änderungen für Nutzer.
Behoben
- Open-Redirect im Server-Switcher: ein manipulierter
Refererkonnte die Weiterleitung nach dem Server-Wechsel auf eine fremde Adresse lenken. Die Weiterleitung wird jetzt auf einen gleich-origin relativen Pfad reduziert (fremde Schemata wiejavascript:/data:, andere Hosts/Ports sowie protokoll-relative Tricks//host//\hostwerden abgewiesen). - SSH-Zugang: eine Passphrase wurde unabhängig vom Auth-Typ gespeichert; sie wird jetzt nur noch bei Schlüssel-Authentifizierung hinterlegt.
Geändert
- Datei-Manager + Editor verwenden ein eigenes
file-Symbol statt des Audit-Symbols (semantisch korrekt). - Code-Hygiene: toten Code entfernt (ungenutzte
FirewallService-Methodenstatus/allow/deny,Server::auditEvents(),SshCredential::scopeActive(), ungenutztesbell-Icon), veraltete Doc-Blöcke/Kommentare korrigiert, Exceptions sauber importiert, base64-Argument im Sudo-Pfad defensiv gequotet, Null-sichere Nutzerabfrage in den Einstellungen. Pint + Codex-Review sauber.
0.1.0 - 2026-06-13
Erste geschnittene Version — die komplette v1-Basis inklusive Server- und Panel-Härtung als ein Release.
Hinzugefügt
- Dashboard mit Live-Sparklines und poll-getriebenem Dual-Chart (KPIs + Tabelle).
- Server-Index + Detailseite, Dienste (systemd: Start/Stop/Restart + Journal), Datei-Manager (SFTP: Up-/Download, Editor), Audit-Log.
- SSH-Schicht über phpseclib (exec + SFTP) mit Host-Key-Pinning (TOFU) und Multi-Server-Switcher samt Fleet-Kontext.
- Echte Metriken (CPU/RAM/Disk/Load) inkl. Absolutwerten über Reverb.
- Authentifizierung + 2FA (TOTP) mit erzwungenem Onboarding.
- R5-Bestätigungsmodals (wire-elements/modal) für destruktive Aktionen.
- System-Seite mit Domain & TLS (Caddy Auto-TLS) und Release-Kanal.
- Echte Versions-Seite, die Version, Build-Hash und dieses Änderungsprotokoll liest.
- Deploy:
install.sh+ Caddy (Auto-TLS) + Produktions-Härtung. - Selbst-gehostete Fonts (kein CDN), Split-Brand Login/2FA.
Geändert
- Dienst-Steuerung läuft über das hinterlegte Sudo-Passwort (
sudo -S) statt nur passwortlosem sudo — Start/Stop/Restart + Journal funktionieren live. - Lazy-Loading der Seiten (Skeletons), normalisierte Buttons + Spinner, Detailseiten- und Einstellungs-Redesign, Schlüsselerzeugung.
- Vollständige Regel-Auditierung (R1–R14), neue Regel R14 (lokale Fonts).
Behoben
- Datei-Editor: Klick löste einen Alpine-Fehler aus (
@js()kompiliert nicht in Komponenten-Attributen) — auf Index-Lookups umgestellt. - Adversarial Review der SSH-Schicht (Escaping, Parser, Host-Key-Pinning).
- 500 durch
@disabledauf<x-btn>; Modal über dem Backdrop; poll-getriebene Metriken (Chart + Gauges) statt fiktiver Fleet-Daten; 2FA-Setup-QR als<img>. - fail2ban/apt-Härtung schlug fehl, weil der 12s-SSH-Timeout den Paket-Install abbrach — langer Timeout für apt-Aktionen.
Sicherheit
- Server-Härtung aus dem Dashboard (Root-/Passwort-Login, fail2ban, UFW, Auto-Updates) mit Befehls-Vorschau, Bestätigung und Aussperr-Schutz.
- Verwaltung hinterlegter SSH-Zugänge (Name, Sperren, Löschen); der Vault verweigert gesperrte Zugänge. Dienst-Steuerung über hinterlegtes Sudo-Passwort.
- Panel-Selbst-Härtung: Security-Header + umgebungsbewusste CSP, 2FA-Brute-Force- Drossel, Session-Cookie-Härtung.
- Release-/Versionierungsmodell: echte semantische Versionen + Git-Tags, Changelog
pro Version, Kanäle
stable/beta(kein nutzer-seitigesdev).