docs: update architecture to reflect Proxmox migration and correct network configurations
Revised multiple documents to align with the migration from Incus to Proxmox VE 8.4.10. Updated hypervisor, IP ranges, subnet details, and NAT configurations across all relevant files. Marked Incus sections as historical for clarity. Added AI-Stack setup guide for Proxmox LXC.
This commit is contained in:
@@ -0,0 +1,73 @@
|
||||
# Journal - 2026-03-06 (Session 2)
|
||||
|
||||
## 📝 Zusammenfassung
|
||||
|
||||
Strategische Planungssession mit dem Lead Architect. Drei konkrete Bugs aus der Tiefenanalyse behoben (Valkey-Inkonsistenz, Dependency Verification, backup.sh Hardcodes). Vollständige Schritt-für-Schritt-Anleitung für das heutige Meldestellen-Host-Setup erstellt. Architektur-Entscheidung für einen lokalen AI-Stack (Ollama + Open WebUI) als separaten Proxmox LXC-Container (CT 111) auf Zora getroffen und Installations-Anleitung dokumentiert. Korrektur: Zora läuft auf Proxmox 8.4.10 (nicht Incus); IPs im Netz 10.0.0.0/24.
|
||||
|
||||
---
|
||||
|
||||
## 🛠️ Änderungen
|
||||
|
||||
### 1. Bug-Fixes aus Tiefenanalyse
|
||||
|
||||
* **`dc-backend.yaml`:** ping-service von veralteten `SPRING_DATA_REDIS_*` auf `SPRING_DATA_VALKEY_*` umgestellt — konsistent mit api-gateway.
|
||||
* **`gradle.properties`:** `org.gradle.dependency.verification=lenient` → `strict` — Sicherheits-Level angehoben, da eigene Gitea-Registry vorhanden.
|
||||
* **`config/scripts/backup.sh`:** `.env` via `source` geladen, `grandmo`-Hardcode entfernt, `DB_USER` liest `${POSTGRES_USER}` aus `.env`, `BACKUP_DIR` und `BACKUP_RETENTION_DAYS` konfigurierbar.
|
||||
* **`.env` + `.env.example`:** `BACKUP_DIR` und `BACKUP_RETENTION_DAYS` als neue SSoT-Variablen ergänzt.
|
||||
|
||||
### 2. Neue Dokumentation
|
||||
|
||||
* **`docs/01_Architecture/Minisforum-MS-R1/AI_Stack_Ollama_Setup.md`:** Vollständige Installations-Anleitung für Ollama + Open WebUI auf Zora als Proxmox LXC-Container (CT 111, IP 10.0.0.60). Enthält Hardware-Profil (CIX P1 / CP8180), CPU-Governor-Tuning auf Proxmox-Node, `pct create`-Befehle, Modell-Matrix, Open-WebUI-RAG-Setup, Pangolin-Routing und IntelliJ IDEA Continue.dev-Integration.
|
||||
|
||||
---
|
||||
|
||||
## 🏗️ Architektur-Entscheidungen
|
||||
|
||||
### AI-Stack: Separater Proxmox LXC-Container (nicht im App-Repo)
|
||||
|
||||
**Entscheidung:** Ollama + Open WebUI laufen in einem eigenen Proxmox LXC-Container `ai-stack` (CT 111, IP 10.0.0.60), **nicht** als Docker-Service im Meldestelle-Repo.
|
||||
|
||||
**Begründung:**
|
||||
* Modelle (5–40 GB pro Modell) wachsen unkontrolliert — Isolation schützt den App-Stack.
|
||||
* Unabhängige Updates ohne Risiko für den Meldestelle-Produktivbetrieb.
|
||||
* RAM/CPU-Hunger der KI-Inference beeinflusst nicht die Keycloak/Gateway/DB-Verfügbarkeit.
|
||||
|
||||
### Datenschutz: Vollständig lokal via Ollama
|
||||
|
||||
* Kein Byte verlässt das Heimnetz — alle Inferenz läuft auf Zora CPU (CIX P1, 12 Cores).
|
||||
* IDEA-Integration via **Continue.dev Plugin** mit `http://10.0.0.60:11434` als Endpoint.
|
||||
* Pangolin-Route `ai.mo-code.at` → nur intern / VPN exponieren.
|
||||
|
||||
### NPU: Noch nicht nutzbar
|
||||
|
||||
* CIX P1 NPU aktuell **kein** Ollama/llama.cpp-Support.
|
||||
* Immortalis-G720 (Vulkan 1.3) — experimentell, nachrüsten sobald stabil.
|
||||
* Primärer Pfad: CPU-Inferenz mit NEON/SVE2-Optimierungen (ARM64-native Ollama).
|
||||
|
||||
---
|
||||
|
||||
## 📚 Gelerntes
|
||||
|
||||
* **CIX P1 (CP8180) = Tri-Cluster ARM:** 4x Cortex-X4 (fast) + 4x A720 (medium) + 4x A520 (slow) — alle 12 Kerne Ollama zuweisen, CPU-Governor auf `performance` setzen.
|
||||
* **64 GB RAM = 70B-Modelle möglich:** `llama3.1:70b` (~40 GB) läuft vollständig im RAM — einzigartige Stärke dieser Hardware.
|
||||
* **Proxmox vmbr0:** Routing und NAT werden von Proxmox via `vmbr0` automatisch verwaltet — keine manuelle iptables-Regel nötig.
|
||||
* **Kafka-Entscheidung bestätigt:** Bleibt im Build für Phase 3 (Outbox-Pattern / Event-Driven).
|
||||
* **Ghost Services bleiben ON HOLD:** Bewusste Entscheidung — erst Fachexperten-Session (FEI/ÖTO Regelwerk) bevor fachliche Implementierung beginnt.
|
||||
|
||||
---
|
||||
|
||||
## 🔜 Nächste Schritte
|
||||
|
||||
### Heute Abend (Priorität)
|
||||
1. Meldestellen-Host aufsetzen nach Anleitung (siehe Haupt-Session-Log)
|
||||
2. `.env` auf Zora mit Server-IP konfigurieren (`KC_HOSTNAME`, `JWT_ISSUER_URI`)
|
||||
3. Docker-Stack starten (Infra → Backend → Ops)
|
||||
4. Ping-Service + Login verifizieren
|
||||
5. `ai-stack` Proxmox LXC-Container (CT 111) aufsetzen, Ollama + Open WebUI installieren
|
||||
6. Continue.dev in IDEA konfigurieren
|
||||
|
||||
### Nächste Sessions
|
||||
* **Session 2:** Grafana Dashboards einrichten + Pangolin-URLs finalisieren
|
||||
* **Session 3:** Willkommensseite + Design-System (Tokens, Farben, Typografie)
|
||||
* **Session 4:** Fachexperten-Session — FEI/ÖTO Regelwerk, Anforderungen, Rollen definieren
|
||||
* **Session 5:** Admin-Dashboard (Backend) + Rollen-Management in Keycloak
|
||||
@@ -0,0 +1,74 @@
|
||||
---
|
||||
type: Journal
|
||||
status: ACTIVE
|
||||
owner: Curator
|
||||
date: 2026-03-06
|
||||
session: Immich & Pangolin — Konfiguration dokumentiert
|
||||
---
|
||||
|
||||
# Session Log — 2026-03-06: Immich & Pangolin Konfiguration
|
||||
|
||||
## 📋 Kontext
|
||||
|
||||
Ergänzungssession zur Proxmox-Korrektursession vom selben Tag.
|
||||
10 neue Screenshots wurden geliefert, die die vollständige Konfiguration von
|
||||
CT 100 (pangolin-client) und CT 103 (immich) sowie die detaillierten Hardware-Specs
|
||||
von VM 102 (gitea-runner) dokumentieren.
|
||||
|
||||
---
|
||||
|
||||
## 🛠️ Änderungen
|
||||
|
||||
### `SSoT_Konfigurations-Masterplan_Zora.md`
|
||||
|
||||
**Neue Daten aus Screenshots (06.03.2026, 13:25–13:27):**
|
||||
|
||||
#### CT 100 — pangolin-client (LXC)
|
||||
- IP ergänzt: `10.0.0.21/24`
|
||||
- Ressourcen dokumentiert: 4 Cores, 512 MiB RAM, 512 MiB Swap, 8 GB Disk
|
||||
- OS: Ubuntu arm64, Unprivileged, nesting=1
|
||||
- Autostart: order=1, up=30
|
||||
|
||||
#### CT 101 — gitea (LXC)
|
||||
- Ressourcen ergänzt: 4 Cores, 1 GiB RAM, 512 MiB Swap, 20 GB Disk
|
||||
- OS: Ubuntu arm64, Unprivileged, nesting=1
|
||||
- Autostart: order=2, up=30
|
||||
|
||||
#### CT 103 — immich (LXC) ← NEU vollständig dokumentiert
|
||||
- IP: `10.0.0.24/24`
|
||||
- Ressourcen: 8 Cores, 10 GiB RAM, 512 MiB Swap
|
||||
- Root Disk: 200 GB (`local:103/vm-103-disk-0.raw`)
|
||||
- Mount Point mp0: `/mnt/immich_gross` → `/mnt/fotos` (externe Foto-Bibliothek)
|
||||
- OS: Ubuntu arm64, Unprivileged
|
||||
- Features: `nesting=1, keyctl=1, fuse=1` (Docker-in-LXC kompatibel)
|
||||
- Autostart: order=3, up=30
|
||||
|
||||
#### VM 102 — gitea-runner (QEMU/KVM) ← Hardware-Details ergänzt
|
||||
- IP: `10.0.0.23/24` (bestätigt)
|
||||
- BIOS: OVMF (UEFI), Machine: virt (ARM64)
|
||||
- CPU: 8 Cores, 1 Socket, host-type, numa=1
|
||||
- RAM: 16 GiB (balloon=0 — kein Dynamic Memory)
|
||||
- Disk: 50 GB SSD (aio=io_uring, iothread=1 — maximale I/O-Performance)
|
||||
- EFI Disk: 64 MB, efitype=4m
|
||||
- Netzwerk: virtio, vmbr0, Firewall aktiv
|
||||
- SCSI: VirtIO SCSI single
|
||||
|
||||
#### Pangolin Tunnel Routing erweitert
|
||||
- Route `photos.mo-code.at` → CT 103 Immich (`10.0.0.24:2283`) ergänzt (intern/VPN)
|
||||
- Pangolin-Kontext-Hinweis: CT 100 (10.0.0.21) ist der Tunnel-Client
|
||||
|
||||
---
|
||||
|
||||
## 📚 Gelernt
|
||||
|
||||
- **Immich Features:** `keyctl=1` und `fuse=1` sind für Docker-in-LXC und Immich-Thumbnail-Verarbeitung notwendig.
|
||||
- **io_uring:** Der Gitea-Runner nutzt modernes async I/O für maximale Build-Performance auf NVMe.
|
||||
- **Start-Reihenfolge:** Pangolin (order=1) → Gitea (order=2) → Immich (order=3) — sinnvolle Abhängigkeitskette.
|
||||
- **balloon=0 beim Runner:** Festes RAM verhindert Memory-Ballooning-Latenzen bei intensiven CI-Builds.
|
||||
|
||||
---
|
||||
|
||||
## 🔜 Nächste Schritte
|
||||
|
||||
1. Pangolin-Route `photos.mo-code.at` im Pangolin-Dashboard anlegen (sobald Immich-Setup abgeschlossen).
|
||||
2. Immich-Setup-Anleitung erstellen (optional, eigene Session).
|
||||
@@ -0,0 +1,57 @@
|
||||
---
|
||||
type: Journal
|
||||
status: ACTIVE
|
||||
owner: Lead Architect
|
||||
---
|
||||
# Journal - 2026-03-06 (Session 3 — Proxmox-Korrektur)
|
||||
|
||||
## 📝 Zusammenfassung
|
||||
|
||||
Korrektur-Session: Die vorherige Installations-Anleitung für den AI-Stack verwendete fälschlicherweise **Incus** als Container-Technologie und das IP-Subnetz **10.0.6.x**. Die Analyse der Proxmox-Screenshots ergab den korrekten Ist-Stand: Zora läuft auf **Proxmox VE 8.4.10** (`pve.mo-code.at`), alle VMs und Container befinden sich im Subnetz **10.0.0.0/24**. Alle betroffenen Dokumentationsdateien wurden korrigiert.
|
||||
|
||||
---
|
||||
|
||||
## 🔍 Ist-Stand Zora (aus Proxmox-Screenshots)
|
||||
|
||||
| ID | Name | Typ | IP | Specs |
|
||||
|:----|:------------------|:-----|:-------------|:-------------------------------|
|
||||
| 100 | pangolin-client | LXC | — | Pangolin Tunnel |
|
||||
| 101 | gitea | LXC | `10.0.0.22` | Bridge vmbr0, GW 10.0.0.138 |
|
||||
| 102 | gitea-runner | VM | `10.0.0.24` | aarch64, 16 GB RAM, 8 Cores, 50 GB |
|
||||
| 103 | immich | LXC | — | Immich Foto-Server |
|
||||
| 110 | meldestelle-host | VM | `10.0.0.50` | aarch64, 16 GB RAM, 8 Cores, 150 GB |
|
||||
|
||||
* **Proxmox-Node:** `10.0.0.20` / `pve.mo-code.at`
|
||||
* **Netz-Bridge:** `vmbr0`, Subnetz `10.0.0.0/24`, Gateway `10.0.0.138`
|
||||
* **Beide VMs (102, 110):** QEMU KVM, aarch64, UEFI (OVMF), cpu=host, numa=1
|
||||
|
||||
---
|
||||
|
||||
## 🛠️ Geänderte Dateien
|
||||
|
||||
| Datei | Änderung |
|
||||
|:------|:---------|
|
||||
| `docs/01_Architecture/Minisforum-MS-R1/AI_Stack_Ollama_Setup.md` | Vollständiger Rewrite: Incus→Proxmox LXC (CT 111), `incus launch`→`pct create`, alle IPs 10.0.6.x→10.0.0.x, Phase 1 auf Proxmox-Node, Incus-NAT-Sektion entfernt |
|
||||
| `docs/99_Journal/2026-03-06_Session_Log_DevOps_und_AI_Stack.md` | AI-Stack-Entscheidung korrigiert: Incus→Proxmox, IPs aktualisiert, iptables→vmbr0 |
|
||||
| `docs/01_Architecture/MASTER_ROADMAP_2026_Q1.md` | Hypervisor: Incus→Proxmox VE 8.4.10 |
|
||||
| `docs/01_Architecture/Minisforum-MS-R1/SSoT_Konfigurations-Masterplan_Zora.md` | Vollständiger Rewrite: Proxmox-Tabelle mit allen VMs/LXCs, IPs korrigiert, Images auf aktuelle Versionen |
|
||||
| `docs/01_Architecture/Minisforum-MS-R1/Zentrales_Mail-Relay-SSoT_Zora.md` | SMTP-Host: 10.0.6.1→10.0.0.20, Incus/Docker→Proxmox vmbr0/Docker |
|
||||
| `docs/07_Infrastructure/Zora_Infrastructure_Deployment_02-2026.md` | Mail-Relay-IP korrigiert, Cloudflare→Pangolin, Port 8080→8081, IP 10.0.6.50→10.0.0.50 |
|
||||
| `docs/01_Architecture/Minisforum-MS-R1/MS-R1_Konfiguration&Bedienung.md` | Firewall-Sektion auf Proxmox aktualisiert, Incus-Sektion als ⚠️ HISTORISCH markiert |
|
||||
|
||||
---
|
||||
|
||||
## 📚 Gelerntes
|
||||
|
||||
* **Incus war Testbetrieb (Feb 2026):** Nach dem Incus-Test wurde auf Proxmox VE umgestellt — alle Docs spiegelten noch den alten Zustand wider.
|
||||
* **Proxmox vmbr0 vereinfacht NAT:** Keine manuellen iptables-MASQUERADE-Regeln nötig — Proxmox erledigt das automatisch.
|
||||
* **Core-Pinning in Proxmox:** Gitea-Runner und Meldestelle-Host sind auf 8 Kerne (4 große + 4 mittlere) gebunden → `cpu=host`, `numa=1` in VM-Config.
|
||||
* **Docs-as-Code Pflicht:** Screenshots als Primärquelle genutzt um den wahren Ist-Stand zu ermitteln — wichtig wenn mündliche Korrekturen noch nicht in Docs eingeflossen sind.
|
||||
|
||||
---
|
||||
|
||||
## 🔜 Nächste Schritte
|
||||
|
||||
1. AI-Stack LXC (CT 111, `10.0.0.60`) in Proxmox erstellen nach `AI_Stack_Ollama_Setup.md`
|
||||
2. Continue.dev Plugin in IDEA konfigurieren
|
||||
3. Grafana Dashboards + Pangolin-URLs finalisieren
|
||||
Reference in New Issue
Block a user