From 10f594c08dd5357bdc056788e0848e51c04fda7f Mon Sep 17 00:00:00 2001 From: boban Date: Sun, 14 Jun 2026 23:51:04 +0200 Subject: [PATCH] chore(release): v0.9.0 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Multi-user admin accounts, database-backed session management (list + per-user/global revoke), auto-restart sentinel (no docker socket), SMTP configuration, audit-log retention, plus the Settings split into per-tab components and the UI batch (image preview, fail2ban bans modal, show-password, system polish). BREAKING: sessions move from Redis to the database — all existing sessions are invalidated on update (log in once again). Co-Authored-By: Claude Opus 4.8 (1M context) --- CHANGELOG.md | 19 +++++++++++++++++++ config/clusev.php | 2 +- 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index ca8c4dc..7e05798 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,7 +11,22 @@ getaggte Releases (Kanal `stable`, optional `beta`) — niemals Entwicklungs-Bui ## [Unreleased] +_Keine offenen Änderungen — der nächste Stand wird hier gesammelt und als `vX.Y.Z` getaggt._ + +## [0.9.0] - 2026-06-14 + ### Hinzugefügt +- **Mehrere Benutzer-Accounts.** Einstellungen → Benutzer: weitere (gleichberechtigte) Admin-Konten + anlegen, auflisten, entfernen. Neuanlage erzeugt ein Einmal-Passwort (einmalig angezeigt) + + erzwungenen Passwortwechsel beim ersten Login. Das Audit-Log hält fest, wer was getan hat. +- **Sitzungsverwaltung.** Einstellungen → Sitzungen: aktive Sitzungen ansehen (Gerät, IP, zuletzt + aktiv), „andere Geräte abmelden" (eigene) und „alle abmelden (global)"; je Benutzer „überall + abmelden". Jede Abmeldung rotiert den remember-Token. +- **Automatischer Neustart.** „Jetzt neu starten" in System schreibt eine Anforderung, die ein + Host-Watcher (systemd) ausführt — kein Terminal-Befehl, kein Docker-Socket im Container. +- **SMTP-Konfiguration.** Einstellungen → E-Mail: SMTP-Server hinterlegen (Passwort verschlüsselt), + Testmail senden. Damit funktionieren Passwort-vergessen-Mails wirklich. +- **Audit-Log-Aufbewahrung.** Konfigurierbare Aufbewahrungsdauer + täglicher `clusev:prune-audit`. - **Datei-Manager zeigt Bilder an.** Öffnet man eine Bilddatei (png/jpg/gif/webp/svg/…), wird sie als Vorschau angezeigt statt im Texteditor (SFTP→base64, max. 5 MB, Speichern für Bilder aus). - **fail2ban: gesperrte IPs im Modal.** Die lange Jail-/Bann-Liste wandert aus dem Panel in ein @@ -20,6 +35,10 @@ getaggte Releases (Kanal `stable`, optional `beta`) — niemals Entwicklungs-Bui Reset und Passwort-vergessen. ### Geändert +- **Sitzungen liegen jetzt in der Datenbank** (statt Redis), damit sie auflist- und widerrufbar sind. + **Einmaliger Effekt:** beim Update werden alle bestehenden Sitzungen ungültig — einmal neu anmelden. +- **Einstellungen in eigene Tabs** (Profil · Sicherheit · Benutzer · Sitzungen · E-Mail), jeweils als + eigene Komponente. - **System-Seite aufgeräumt:** Inhalt auf eine angenehme Lesebreite begrenzt (nicht mehr randlos), echtes Speichern-Icon, „Caddy" in der Oberfläche durch neutrale Begriffe ersetzt, plus Hinweis auf die SSH-Notfall-Wiederherstellung (`clusev:reset-admin`). diff --git a/config/clusev.php b/config/clusev.php index 3610cb2..836143c 100644 --- a/config/clusev.php +++ b/config/clusev.php @@ -3,7 +3,7 @@ return [ // First tagged release is v0.1.0 (semantic, not -dev). The live build hash // is resolved from .git at runtime (see App\Livewire\Versions\Index). - 'version' => '0.8.0', + 'version' => '0.9.0', // Default user channel. Only 'stable' and 'beta' are ever offered to users. 'channel' => 'stable',