diff --git a/CHANGELOG.md b/CHANGELOG.md index 9842d63..83b9dde 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,18 @@ und dieses Projekt folgt [Semantic Versioning](https://semver.org/lang/de/). ## [Unveröffentlicht] +### Hinzugefügt + +### Geändert + +### Behoben + +### Entfernt + +### Sicherheit + +## [0.6.0] – 2026-10-12 + ### Hinzugefügt - Betrieb per Docker Compose (postgres, migrate, app, worker) mit einem Image für alles, non-root (#019) - LXC-Installer `deploy/install-lxc.sh`: legt auf dem Proxmox-Host einen Debian-13-Container an, installiert Node.js und PostgreSQL, richtet systemd-Dienste ein; mit Update-Pfad (#019) @@ -16,15 +28,9 @@ und dieses Projekt folgt [Semantic Versioning](https://semver.org/lang/de/). - Marken-Dateien nach Vorgabe unter `public/brand/`: Symbol (dunkel/hell), kleines Icon, Avatar, Logo (dunkel/hell), Banner 1280×640, Favicons, Apple-Touch- und Manifest-Icons; erzeugt mit `pnpm marke` (#017) - Web-App-Manifest; Favicon passt sich hellem und dunklem Browser an (#017) -### Geändert - ### Behoben - Die Übersicht zeigte statt der letzten Deployments nur einen Platzhalter (#018) -### Entfernt - -### Sicherheit - ## [0.5.0] – 2026-10-12 ### Hinzugefügt diff --git a/DEVLOG.md b/DEVLOG.md index 297162e..8d7c65c 100644 --- a/DEVLOG.md +++ b/DEVLOG.md @@ -2,7 +2,7 @@ ## Zeitübersicht -**Gesamt:** 6 h 59 min (Sitzung 1–3) +**Gesamt:** 7 h 39 min (Sitzung 1–3) Zeiten stammen aus den Git-Commit-Zeitstempeln je Issue; Wartezeit auf Rückmeldungen ist enthalten. @@ -27,6 +27,9 @@ Zeiten stammen aus den Git-Commit-Zeitstempeln je Issue; Wartezeit auf Rückmeld | #014 Verlauf, Wiederholen, Aufräumen | 1 h 21 min | | #015 Benutzer, Passwort, Audit-Log | 0 h 10 min | | #016 OIDC | 0 h 08 min | +| #017 Marken-Dateien | 0 h 17 min | +| #018 README | 0 h 02 min (parallel zu #019) | +| #019 Docker und LXC-Installer | 0 h 20 min | | Meilenstein | Zeit | |---|---| @@ -35,12 +38,13 @@ Zeiten stammen aus den Git-Commit-Zeitstempeln je Issue; Wartezeit auf Rückmeld | v0.3.0 | 1 h 48 min | **abgeschlossen** (Abnahme #021 offen) | v0.4.0 | 0 h 42 min | **abgeschlossen** | v0.5.0 | 1 h 39 min | **abgeschlossen** +| v0.6.0 | 0 h 40 min | **abgeschlossen** --- -## 2026-10-12 · Sitzung 3 · 14:39–17:00 -**Issue:** #013–#016 -**Version:** 0.4.0, 0.5.0 +## 2026-10-12 · Sitzung 3 · 14:39–17:40 +**Issue:** #013–#019 +**Version:** 0.4.0, 0.5.0, 0.6.0 ### Erledigt - v0.3.0 freigegeben (Abnahme #021 bleibt offen, braucht eine freie IP) @@ -55,6 +59,8 @@ Zeiten stammen aus den Git-Commit-Zeitstempeln je Issue; Wartezeit auf Rückmeld - CLI: `history` und `cleanup` - Gefunden: ssh2 erzeugt in ~0,4 % unlesbare ed25519-Schlüssel (war die Ursache des wackligen SSH-Tests) – behoben; „Einstellungen“ fehlte seit v0.3.0 in der Navigation - 308 Vitest, 26 Playwright-Abläufe grün +- Etappe 6 (v0.6.0): Marken-Dateien per Skript (Texte als Pfade), README mit Banner und Screenshots, Docker Compose (lokal hochgefahren) und LXC-Installer – auf pve-demo in CT 109 installiert, darin Server angelegt, CLI-Login, Dry-Run und ein echter LXC (pd-abnahme, CT 110); Update-Pfad geprüft +- Gefunden: die Übersicht war seit Etappe 1 ein Platzhalter; opentype.js schreibt gelegentlich „NaN“ in Pfade ### Entscheidungen - **Anfragen als Map, Antworten typisiert:** Go-Structs aus oapi-codegen schickten leere Pflichtfelder und überschrieben Vorlagenwerte. @@ -64,6 +70,7 @@ Zeiten stammen aus den Git-Commit-Zeitstempeln je Issue; Wartezeit auf Rückmeld - **Aufräumen löscht nur, was die Beschreibung „(Auftrag )“ trägt** – deshalb setzt das Klonen die Beschreibung jetzt sofort; Templates nie. - **Sitzungen beenden über `Benutzer.sitzungenAb`** statt einer Sitzungstabelle. - **SSO übernimmt nie ein lokales Konto über den Namen**; die Rolle kommt bei jeder Anmeldung aus den Gruppen. +- **Migrationen im Betrieb ohne Prisma-CLI**, kompatibel zu `_prisma_migrations`; ein gemeinsames Laufzeit-Paket für Docker und LXC; der worker bekommt nur die Pakete, die er importiert (103 statt 741 MB). - Gefunden durch Tests: SSE-Daten zeigten in einen wiederverwendeten Puffer (jetzt kopiert); mehrzeilige Proxmox-Parameter brachen die Dry-Run-Zeile (jetzt `⏎`). --- diff --git a/README.md b/README.md index dfeea8c..7874dee 100644 --- a/README.md +++ b/README.md @@ -201,7 +201,7 @@ Version und Änderungen stehen im [CHANGELOG](CHANGELOG.md), der Plan in | 3 · v0.3.0 | LXC, Ubuntu, Profile, Vorlagen, Profile im Template, SSH-Schlüssel | ✓ fertig, auf PVE 9.2 geprüft (Bau-Adresse #021: Abnahme offen) | | 4 · v0.4.0 | CLI `proxdeploy` (Go), API-Tokens | ✓ fertig, auf PVE 9.2 geprüft | | 5 · v0.5.0 | Verlauf, Aufräumen, Audit-Log, Benutzer, OIDC | ✓ fertig (Aufräumen auf PVE 9.2 geprüft, OIDC gegen Mock-IdP) | -| 6 · v0.6.0 | Branding, README mit Screenshots, Installer | ◐ als Nächstes | +| 6 · v0.6.0 | Branding, README mit Screenshots, Docker Compose, LXC-Installer | ✓ fertig, Installer auf PVE 9.2 geprüft | ## Entwicklung diff --git a/cli/api/openapi.json b/cli/api/openapi.json index 9d0e32a..3027686 100644 --- a/cli/api/openapi.json +++ b/cli/api/openapi.json @@ -2,7 +2,7 @@ "openapi": "3.0.3", "info": { "title": "ProxDeploy API", - "version": "0.5.0", + "version": "0.6.0", "description": "REST-API von ProxDeploy – dieselbe für Web-GUI und CLI. Fehler: `{ fehler: { code, nachricht, hinweis?, felder? } }`." }, "servers": [ diff --git a/docs/issues/017-branding.md b/docs/issues/017-branding.md index 08ba02a..cfddcc3 100644 --- a/docs/issues/017-branding.md +++ b/docs/issues/017-branding.md @@ -2,7 +2,7 @@ **Status:** erledigt **Meilenstein:** v0.6.0 **Labels:** design -**Geschätzt:** 4 h **Tatsächlich:** – +**Geschätzt:** 4 h **Tatsächlich:** 0 h 17 min ## Ziel Alle Logo-Varianten, Banner, Favicons, Manifest-Icons nach Vorgabe. diff --git a/docs/issues/018-readme.md b/docs/issues/018-readme.md index c15ec5c..1dfb887 100644 --- a/docs/issues/018-readme.md +++ b/docs/issues/018-readme.md @@ -2,7 +2,7 @@ **Status:** erledigt **Meilenstein:** v0.6.0 **Labels:** doku -**Geschätzt:** 4 h **Tatsächlich:** – +**Geschätzt:** 4 h **Tatsächlich:** 0 h 02 min (überwiegend parallel zu #019, während der Installer lief) ## Ziel README mit Banner, Screenshots, Installation, CLI, Proxmox-Rechten, neuer Distribution, eigenem Profil. diff --git a/docs/issues/019-installer.md b/docs/issues/019-installer.md index b383ffb..3a06d0d 100644 --- a/docs/issues/019-installer.md +++ b/docs/issues/019-installer.md @@ -2,7 +2,7 @@ **Status:** erledigt **Meilenstein:** v0.6.0 **Labels:** infrastruktur -**Geschätzt:** 6 h **Tatsächlich:** – +**Geschätzt:** 6 h **Tatsächlich:** 0 h 20 min ## Ziel Produktionsbetrieb per Docker Compose oder in einem Debian-LXC. diff --git a/docs/issues/README.md b/docs/issues/README.md index 8ac4cdb..35296d3 100644 --- a/docs/issues/README.md +++ b/docs/issues/README.md @@ -20,9 +20,9 @@ Details und Architektur: [../architektur.md](../architektur.md). Zeiten werden a | [#014](014-verlauf.md) | Verlauf und Wiederholen | erledigt | v0.5.0 | 4 h | 1 h 21 min | | [#015](015-rollen-audit.md) | Rollen, Benutzer, Tokens, Audit-Log | erledigt | v0.5.0 | 6 h | 0 h 10 min | | [#016](016-oidc.md) | Anmeldung per OIDC | erledigt | v0.5.0 | 4 h | 0 h 08 min | -| [#017](017-branding.md) | Branding-Assets | erledigt | v0.6.0 | 4 h | – | -| [#018](018-readme.md) | README und Dokumentation | erledigt | v0.6.0 | 4 h | – | -| [#019](019-installer.md) | Docker-Image und LXC-Installer | erledigt | v0.6.0 | 6 h | – | +| [#017](017-branding.md) | Branding-Assets | erledigt | v0.6.0 | 4 h | 0 h 17 min | +| [#018](018-readme.md) | README und Dokumentation | erledigt | v0.6.0 | 4 h | 0 h 02 min | +| [#019](019-installer.md) | Docker-Image und LXC-Installer | erledigt | v0.6.0 | 6 h | 0 h 20 min | | [#020](020-feldtest.md) | Feldtest 8.x und 9.x, Version 1.0.0 | offen | v1.0.0 | 6 h | – | | [#021](021-template-bau-ohne-ssh.md) | Template-Bau ohne SSH (Bau-Adresse) | umgesetzt, Abnahme offen | v0.3.0 | 3 h | 0 h 19 min | | [#022](022-template-profile.md) | Templates mit eingebackenen Profilen | erledigt | v0.3.0 | 4 h | 0 h 22 min | diff --git a/package.json b/package.json index 9a0e3bc..ff93e6f 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "proxdeploy", - "version": "0.5.0", + "version": "0.6.0", "private": true, "type": "module", "description": "VMs und LXC-Container auf Proxmox VE ausrollen, per Web oder CLI", diff --git a/src/lib/version.ts b/src/lib/version.ts index 15ebea0..dbd01fa 100644 --- a/src/lib/version.ts +++ b/src/lib/version.ts @@ -2,7 +2,7 @@ * Version und Git-Stand für Seitenleiste, `/api/v1/ich` und die Kopfzeile der CLI. * Beide Werte werden beim Bauen gesetzt (Docker-Build-Arg bzw. Installer). */ -export const VERSION = process.env["NEXT_PUBLIC_APP_VERSION"] ?? "0.5.0"; +export const VERSION = process.env["NEXT_PUBLIC_APP_VERSION"] ?? "0.6.0"; export const GIT_SHA = (process.env["NEXT_PUBLIC_GIT_SHA"] ?? "").slice(0, 7); export function versionText(): string {