chore(docs+infra): update roadmap, improve home server plan, and archive outdated reports

- Adjusted infrastructure roadmap to use VM instead of nested LXC for Docker hosting, enhancing isolation and compatibility.
- Clarified multi-architecture CI/CD setup with native ARM64 builds and QEMU-based x86_64 builds.
- Updated documentation to include backup and offline-first strategies.
- Archived outdated session logs and reports for better file organization.
This commit is contained in:
Stefan Mogeritsch 2026-02-06 20:49:47 +01:00
parent c8d19f7911
commit c51773a4c7
23 changed files with 41 additions and 28 deletions

View File

@ -67,13 +67,16 @@ Wir validieren die gesamte Architektur-Kette (Frontend -> Gateway -> Service ->
2. **System Hardening:** Keycloak Production-Config (kein `start-dev`).
3. **Reporting / Printing:** (Vorgemerkt)
* Anforderung: PDF-Generierung für Startlisten, Ergebnislisten, Dressur-Protokolle (personalisiert).
* Architektur-Entscheidung ausstehend: Dezentral (pro Service) vs. Zentraler Reporting-Service.
* Architektur-Entscheidung: Dezentraler Microservice (wegen Resource-Bursts).
* Technologie-Evaluierung: JasperReports, Thymeleaf + Flying Saucer, etc.
4. **Infrastructure Setup (Home-Server):**
* Hardware: Minisforum MS-R1 (ARM64).
* OS: Debian 12 (Bookworm).
* Hypervisor: **Incus** (LXC/LXD Fork) für Container & VMs.
* Services:
* `infra-gitea` (LXC): Gitea + Actions Runner (ARM64 Native Builds).
* `docker-host-prod` (LXC, nesting=true): Docker Host für Meldestelle-Stack.
* Networking: Cloudflare Tunnel (kein Port-Forwarding).
* Hardware: Minisforum MS-R1 (ARM64, 12 Cores, 10G LAN).
* OS: Debian 12 (Vendor Variant) als Host.
* Hypervisor: **Incus** (LXC/LXD Fork).
* Virtualization Strategy:
* `infra-gitea` (LXC Container): Gitea + Actions Runner (Native ARM Builds).
* `docker-host-prod` (VM): Debian VM als Docker Host für den Meldestelle-Stack (Isolation, keine Nesting-Probleme).
* CI/CD: **Multi-Arch Support** (Native ARM64 Builds + x86_64 via `docker buildx` & QEMU).
* Networking: Cloudflare Tunnel (Remote Access).
* Local Discovery: DNS/mDNS Strategie für Offline-Szenarien (Main-App als lokaler Anchor).
* Backup: Automatisierte Snapshots auf externe USB-SSD.

View File

@ -41,7 +41,7 @@ Wir haben heute die technische Basis des Frontends massiv stabilisiert und das "
Als **Documentation & Knowledge Curator** habe ich die Erkenntnisse der heutigen Session gesichert:
1. **Neues Dokument:** [`docs/06_Frontend/feature-implementation-guide.md`](../06_Frontend/feature-implementation-guide.md)
1. **Neues Dokument:** [`docs/06_Frontend/feature-implementation-guide.md`](../../06_Frontend/feature-implementation-guide.md)
* Dient als "Blaupause" für alle zukünftigen Features.
* Beschreibt exakt, wie man den `AuthenticatedHttpClient` einbindet und die Koin-Module strukturiert.
* Dokumentiert den Web-Worker-Copy-Prozess für SQLDelight.

View File

@ -4,37 +4,47 @@
**Teilnehmer:** User (Owner), Lead Architect, DevOps Engineer
## 1. Zusammenfassung
In dieser Session wurde die zukünftige Infrastruktur für den Home-Server (Minisforum MS-R1) geplant und eine Anforderung für das Reporting-System (PDF-Generierung) aufgenommen.
In dieser Session wurde die zukünftige Infrastruktur für den Home-Server (Minisforum MS-R1) detailliert geplant und korrigiert. Zudem wurden Anforderungen für Reporting und Offline-Fähigkeit präzisiert.
## 2. Reporting / Printing (Vorgemerkt)
Der User benötigt eine Lösung zum Generieren von personalisierten PDFs (Startlisten, Ergebnislisten, Protokolle).
* **Status:** Als "Next Step" in die Roadmap aufgenommen.
* **Offene Fragen:** Architektur (Zentral vs. Dezentral), Technologie-Stack.
* **Architektur:** Dezentraler Microservice (um Resource-Bursts vom Core-System fernzuhalten).
* **Aktion:** Wurde in `MASTER_ROADMAP_2026_Q1.md` dokumentiert.
## 3. Infrastructure Setup (Minisforum MS-R1)
Der User hat neue Hardware bestellt (ARM64 Architektur).
**Hardware Specs:**
* Model: Minisforum MS-R1
* CPU: 12 Kerne ARM (CP8180)
* RAM: bis 64GB LPDDR5
* Network: 2x 10G LAN
* Storage: NVMe + USB-SSD (Backup)
**Entscheidung: "The Incus Way"**
Da Proxmox auf ARM experimentell ist, wurde folgender Stack beschlossen:
1. **Base OS:** Debian 12 (Bookworm).
**Software Stack (Final Decision):**
1. **Base OS:** Debian 12 (Vendor Variant, vorinstalliert/angepasst für Treiber).
2. **Hypervisor:** **Incus** (Community Fork von LXD).
3. **Container-Strategie:**
* `infra-gitea` (LXC): Gitea + Actions Runner (Native ARM Builds).
* `docker-host-prod` (LXC mit nesting): Docker Host für den Meldestelle-Stack.
4. **Networking:** Cloudflare Tunnel.
3. **Virtualization Strategy:**
* `infra-gitea` (LXC Container): Gitea + Actions Runner.
* *Vorteil:* Leichtgewichtig, Native ARM Builds via Runner.
* `docker-host-prod` (**VM**): Debian VM als Docker Host.
* *Grund:* Bessere Isolation, Kernel-Unabhängigkeit vom Host, keine "Nesting"-Probleme (OverlayFS/ZFS).
4. **CI/CD & Build Strategy:**
* **Tool:** `docker buildx` auf dem Gitea Runner.
* **ARM64 Images:** Werden **nativ** gebaut (rasend schnell, da Host = ARM).
* **x86_64 Images:** Werden via **QEMU-Emulation** gebaut (langsamer, aber funktional).
**Vorteile:**
* Native Performance auf ARM.
* Snapshots & Backups (via ZFS/Btrfs).
* Saubere Trennung von Infrastruktur (Gitea) und Applikation (Docker).
## 4. Networking & Offline-First
* **Remote Access:** Cloudflare Tunnel.
* **Local LAN (Offline):**
* Die "Main-Native-Desktop-App" (Meldestelle) fungiert als lokaler Anchor/Server im LAN.
* Clients (Zeitnehmer) verbinden sich via LAN.
* **Discovery:** Lokale DNS-Strategie oder Service Discovery (mDNS) notwendig, damit Clients den Server auch ohne Internet finden.
## 4. Nächste Schritte
## 5. Backup
* **Strategie:** Automatisierte Snapshots/Backups auf externe **USB-SSD**.
* **Motto:** "Kein Backup, kein Mitleid."
## 6. Nächste Schritte
* Warten auf Hardware-Lieferung.
* Installation & Setup gemäß Plan.
* Einrichtung der CI/CD Pipeline (Gitea Actions) für ARM-Builds.
* Installation & Setup gemäß korrigiertem Plan (VM statt LXC für Docker).
* Vorbereitung der CI/CD Pipelines auf Multi-Architektur (Buildx/QEMU).

View File

@ -15,7 +15,7 @@ pluginManagement {
plugins {
// Settings plugins cannot easily use version catalogs because the catalog is loaded
// as part of the settings evaluation. We must hardcode the version here.
// as part of the settings evaluation. We must hard-code the version here.
id("org.gradle.toolchains.foojay-resolver-convention") version "1.0.0"
}