From 5b83bc48b89b08926c12eb4cead34b8bd89cb13b Mon Sep 17 00:00:00 2001
From: ValueOn AG
Date: Wed, 10 Jun 2026 00:47:30 +0200
Subject: [PATCH] fixes instances boot on upgrade
---
b-reference/platform/infrastructure.md | 13 +++++++++++++
c-work/_CHANGELOG.md | 8 +++++++-
e-compliance/ims/05_betrieb/09_Patch_Management.md | 4 ++--
3 files changed, 22 insertions(+), 3 deletions(-)
diff --git a/b-reference/platform/infrastructure.md b/b-reference/platform/infrastructure.md
index fe7af72..9cb0a99 100644
--- a/b-reference/platform/infrastructure.md
+++ b/b-reference/platform/infrastructure.md
@@ -80,6 +80,19 @@ Key Pair: `teamsbot-deploy-key`
## Deployment-Patterns
+### VM-Grundkonfiguration (bei Neuinstallation)
+
+Auf jeder neuen VM (UI + Backend) nach Erstprovisionierung:
+
+```bash
+# needrestart: nur melden, nicht automatisch Services neustarten.
+# Verhindert, dass unattended-upgrades laufende Services (nginx, gateway)
+# waehrend eines apt-Upgrades killt, wenn DNS kurzzeitig nicht verfuegbar ist.
+echo '$nrconf{restart} = '"'"'l'"'"';' | sudo tee /etc/needrestart/conf.d/99-no-auto-restart.conf
+```
+
+**Hintergrund:** `unattended-upgrades` aktualisiert OS-Pakete naechtlich. Dabei startet `systemd-networkd` kurz neu (DNS-Ausfall). Wenn `needrestart` gleichzeitig nginx restartet, schlaegt `proxy_pass`-DNS-Aufloesung fehl → nginx crasht und bleibt down. Mit `'l'` (list-only) werden nur betroffene Services gemeldet; der Restart erfolgt kontrolliert beim naechsten Deployment.
+
### Porta (git pull + systemd restart)
Deploy-Workflow: `.forgejo/workflows/main_porta-main-platform-core.yml` in `platform-core`
diff --git a/c-work/_CHANGELOG.md b/c-work/_CHANGELOG.md
index ba3df24..ca5bcbd 100644
--- a/c-work/_CHANGELOG.md
+++ b/c-work/_CHANGELOG.md
@@ -1,5 +1,5 @@
-
+
# Changelog (c-work)
@@ -12,6 +12,12 @@ type: `feat` `fix` `refactor` `docs` `test` `chore` `build` · scope: `platfor
Skip: reine Refactors, Formatting, Lint, Dep-Bumps, Test-only, Wiki-Tippfehler.
+## 2026-06-10
+
+- 2026-06-10 | fix | infra | **UI-int Downtime behoben**: nginx auf `porta-int-ui-nyla` crashte wegen DNS-Fehler waehrend `unattended-upgrades` (systemd-networkd Restart + nginx Restart gleichzeitig → `host not found in upstream`). Fix: nginx neugestartet, `needrestart` auf beiden UI-VMs (int + main) auf `'l'` (list-only) konfiguriert — Sicherheitspatches installieren sich weiterhin, Services werden nicht mehr automatisch neugestartet.
+- 2026-06-10 | chore | platform-core | **poweron-center.net entfernt**: CORS-Regex, env-Dateien und Auth-Kommentar bereinigt — nur noch poweron.swiss.
+- 2026-06-10 | test | platform-core | **Demo-Tests bereinigt**: 7 Testdateien geloescht die nur DB-Seed-Daten verifizierten (keine Code-Logik). Verbleibend: `test_demo_api.py` (Code-Discovery + Auth) und `test_demo_data_files.py` (Repo-Struktur).
+
## 2026-06-09
- 2026-06-09 | fix | platform-core | **FK-Label-Resolution im Hauptpfad ergaenzt**: `enrichRowsWithFkLabels` fehlte im Standard-Paginated-Pfad bei Trustee (documents, positions), RealEstate (projects, parcels), Subscriptions und RBAC-Roles. Nur `mode=filterValues` war enriched — Tabellenzellen zeigten rohe UUIDs. Zusaetzlich `FileItem` in `_BUILTIN_FK_RESOLVERS` registriert.
diff --git a/e-compliance/ims/05_betrieb/09_Patch_Management.md b/e-compliance/ims/05_betrieb/09_Patch_Management.md
index 8884846..7a8a665 100644
--- a/e-compliance/ims/05_betrieb/09_Patch_Management.md
+++ b/e-compliance/ims/05_betrieb/09_Patch_Management.md
@@ -40,7 +40,7 @@ Punkt #78 verlangt definierte Höchstdauern bis zum Einspielen von Patches:
## 4. OS- und Abhängigkeits-Updates (technisch)
-Abhängigkeiten werden beim Deployment via `pip install -r requirements.txt` aktualisiert (siehe `bcm_runbook.md`). OS-Patches: `apt`-Updates auf den VMs. **[ZU PRÜFEN: Automatische Sicherheitsupdates (unattended-upgrades) aktiv?]**
+Abhängigkeiten werden beim Deployment via `pip install -r requirements.txt` aktualisiert (siehe `bcm_runbook.md`). OS-Patches: `apt`-Updates auf den VMs via `unattended-upgrades` (aktiv auf allen VMs). Konfiguration: Sicherheitspatches werden automatisch installiert, aber Services werden **nicht** automatisch neugestartet (`needrestart = 'l'`). Der Restart erfolgt kontrolliert beim naechsten Deployment oder manuell bei kritischen Patches.
## 5. Stand der Umsetzung / Lücken
@@ -48,5 +48,5 @@ Abhängigkeiten werden beim Deployment via `pip install -r requirements.txt` akt
|---|---|---|
| Definierte Patch-Fristen | Neu (dieses Dokument) | Übernehmen |
| Automatisches Vuln-Tracking (Dependabot) | [ZU PRÜFEN] | Aktivieren |
-| Unattended-Upgrades OS | [ZU PRÜFEN] | Prüfen/aktivieren |
+| Unattended-Upgrades OS | ✅ Aktiv | Patches auto-installiert, Service-Restart manuell (`needrestart='l'`) |
| Patch-Protokollierung | [ZU PRÜFEN] | Im CHANGELOG mitführen |