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) <noreply@anthropic.com>feat/v1-foundation v0.9.2
parent
217189598b
commit
3d86c8db8d
24
CHANGELOG.md
24
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._
|
_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
|
## [0.9.1] - 2026-06-15
|
||||||
|
|
||||||
### Geändert
|
### Geändert
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@
|
||||||
return [
|
return [
|
||||||
// First tagged release is v0.1.0 (semantic, not -dev). The live build hash
|
// 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).
|
// 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.
|
// Default user channel. Only 'stable' and 'beta' are ever offered to users.
|
||||||
'channel' => 'stable',
|
'channel' => 'stable',
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue