From e006de4962a83492bcc73ba524172ebdff8f0150 Mon Sep 17 00:00:00 2001 From: boban Date: Sun, 21 Jun 2026 00:45:10 +0200 Subject: [PATCH] =?UTF-8?q?chore:=20release=200.9.36=20=E2=80=94=20WireGua?= =?UTF-8?q?rd=20peer=20management=20from=20the=20dashboard=20(SP2=20phase?= =?UTF-8?q?=203)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 4.8 --- CHANGELOG.md | 17 +++++++++++++++++ config/clusev.php | 2 +- 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 44984c5..033fbe3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,6 +13,23 @@ 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.36] - 2026-06-21 + +### Hinzugefügt +- **WireGuard-Peer-Verwaltung aus dem Dashboard (SP2, Phase 3).** Auf `/wireguard` lassen sich Clients + jetzt **anlegen** (Name eingeben → die Client-Konfiguration + QR-Code erscheinen **einmalig** in + einem Dialog und werden nie gespeichert) und **entfernen** (mit Bestätigung). Umgesetzt über eine + neue, abgesicherte **Schreib-Brücke**: die App schreibt eine validierte Anfrage nach + `run/wg-request.json`, ein Host-Watcher (`clusev-wg.sh serve-request`) prüft Aktion + Argumente + **erneut host-seitig** (Whitelist, strikte Muster — Container-Eingaben sind Daten, nie Code), + führt den festen Befehl als root aus und schreibt ein Ergebnis (0600, app-eigen, nach 60 s gelöscht). + Jede Aktion ist auditiert + pro Benutzer ratenbegrenzt. + +### Sicherheit +- Ergebnis-/QR-Dateien (enthalten einen frischen privaten Schlüssel) werden via `umask 077` von Beginn + an mit `0600` erzeugt — kein kurzes world-readable-Fenster (durch ein adversariales Security-Review + gefunden + behoben). + ## [0.9.35] - 2026-06-21 ### Hinzugefügt diff --git a/config/clusev.php b/config/clusev.php index 4e9c3f8..a2cc3bb 100644 --- a/config/clusev.php +++ b/config/clusev.php @@ -2,7 +2,7 @@ return [ // First tagged release is v0.1.0 (semantic, not -dev). - 'version' => '0.9.35', + 'version' => '0.9.36', // Deployed commit + branch. install.sh bakes these into .env from the host's .git (the prod // image ships no .git); the Versions page prefers them and falls back to a live .git read in