From 3d86c8db8dc617d0dfd1bacb5e18170601e3ec94 Mon Sep 17 00:00:00 2001 From: boban Date: Mon, 15 Jun 2026 19:22:03 +0200 Subject: [PATCH] chore(release): v0.9.2 One-command installer (Docker install, clusev user, DNS check) + themed MOTD, professional README, and constant-time password-reset (account-enumeration timing fix). Co-Authored-By: Claude Opus 4.8 (1M context) --- CHANGELOG.md | 24 ++++++++++++++++++++++++ config/clusev.php | 2 +- 2 files changed, 25 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 38ec12c..53c5b10 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,6 +13,30 @@ getaggte Releases (Kanal `stable`, optional `beta`) — niemals Entwicklungs-Bui _Keine offenen Änderungen — der nächste Stand wird hier gesammelt und als `vX.Y.Z` getaggt._ +## [0.9.2] - 2026-06-15 + +### Hinzugefügt +- **Ein-Befehl-Installer (`sudo ./install.sh`).** Bootstrappt einen frischen Debian/Ubuntu-Host + vollständig: installiert Docker aus dem offiziellen apt-Repo, legt einen dedizierten + `clusev`-Login-Benutzer (Zufallspasswort, `docker`-Gruppe) an, prüft per DNS-Abgleich, ob die + angegebene Domain auf diesen Host zeigt (sonst Warnung + Wahl „Domain trotzdem nehmen — HTTP bis + DNS stimmt" oder „auf der IP bleiben"), baut/startet den Stack, migriert und legt den ersten Admin + an. Das Abschluss-Banner zeigt ausschließlich Dashboard-URL, Admin-Login und — bei Erstanlage — den + `clusev`-Host-Benutzer; Passwörter erscheinen nur dieses eine Mal. Idempotent (Re-Run baut/migriert + neu, Secrets bleiben erhalten). +- **Themed Host-MOTD.** Bei jeder Host-Anmeldung erscheint ein Login-Banner in der + Produkt-Signalfarbe mit der Dashboard-Adresse. + +### Geändert +- **Professionelles README** — Produktbeschreibung, Voraussetzungen, Installation (`git clone` + + `sudo ./install.sh`), Domain/TLS (inkl. externem Reverse-Proxy), Updates, Konto-Wiederherstellung + und AGPL-Lizenz; ohne interne Entwicklungs-Hinweise. + +### Sicherheit +- **Passwort-Reset in konstanter Zeit.** Unbekannte E-Mail-Adressen durchlaufen jetzt denselben + Verifikationspfad (Dummy-Hash- bzw. Code-Prüfung) wie existierende Konten — die Antwortzeit verrät + nicht mehr, ob ein Konto existiert (Account-Enumeration über ein Timing-Orakel ausgeschlossen). + ## [0.9.1] - 2026-06-15 ### Geändert diff --git a/config/clusev.php b/config/clusev.php index 7982c6e..b24355f 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.9.1', + 'version' => '0.9.2', // Default user channel. Only 'stable' and 'beta' are ever offered to users. 'channel' => 'stable',