chore(docs+infra): add hardware setup logs, guidelines, and Minisforum MS-R1 documentation

- Updated `MASTER_ROADMAP_2026_Q1.md` to reflect delivery of Minisforum MS-R1 hardware and progress on infrastructure setup.
- Added detailed documentation for Minisforum MS-R1, including specifications, host OS setup guide, and service configuration guide.
- Logged DevOps setup session and curator's session with focus on hardware integration, SSH hardening, and networking adjustments (Macvlan workaround).
- Included user manual for Minisforum MS-R1 and related assets (e.g., images).
This commit is contained in:
Stefan Mogeritsch 2026-02-08 01:25:47 +01:00
parent bc093ba3ff
commit c50acd641e
51 changed files with 1181820 additions and 3 deletions

View File

@ -2,7 +2,7 @@
type: Roadmap
status: ACTIVE
owner: Lead Architect
last_update: 2026-02-06
last_update: 2026-02-07
---
# MASTER ROADMAP Q1 2026: "Operation Tracer Bullet"
@ -10,11 +10,12 @@ last_update: 2026-02-06
**Strategisches Ziel:**
Wir validieren die gesamte Architektur-Kette (Frontend -> Gateway -> Service -> DB) anhand des **Ping-Service**. Dieser Service dient als **technischer Blueprint** (Vorlage) für alle kommenden Fach-Services. Er muss "Production Ready" gehärtet sein, bevor wir Fachlichkeit implementieren.
**Aktueller technischer Stand (06.02.2026):**
**Aktueller technischer Stand (07.02.2026):**
* Build System: ✅ Grün (Gradle, Kotlin 2.3, Spring Boot 3.5.9, Spring Cloud 2025.0.1).
* Code-Basis: ✅ `ping-service` existiert, Delta-Sync implementiert.
* Infrastruktur: ✅ Docker Environment stabil (Valkey, Keycloak, Consul, Zipkin).
* Frontend: ✅ Web-App & Desktop-App (KMP), Login funktioniert, Sync-Logik vorhanden.
* Hardware: ✅ Minisforum MS-R1 eingetroffen.
---
@ -70,7 +71,7 @@ Wir validieren die gesamte Architektur-Kette (Frontend -> Gateway -> 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, 12 Cores, 10G LAN).
* Hardware: Minisforum MS-R1 (ARM64, 12 Cores, 10G LAN) ✅ **GELIEFERT (07.02.2026)**.
* OS: Debian 12 (Vendor Variant) als Host.
* Hypervisor: **Incus** (LXC/LXD Fork).
* Virtualization Strategy:

View File

@ -0,0 +1,149 @@
---
Betriebsanleitung Minisforum MS-R1
---
# MINISFORUM MS-R1
![MINISFORUM MS-R1](./images/MINISFORUM_MS-R1.png)
![MINISFORUM LOGO](./images/MINISFORUM_Logo.png)
```
Copyright @ 2024-2025 Micro Computer (HK) Tech Limited.
```
---
## 1. Haftungsausschluss Und Sicherheitshinweise
### Haftungsausschluss
1. Vielen Dank, dass Sie sich für das Produkt MS-R1 entschieden haben.
2. Die in diesem Haftungsausschluss genannten Inhalte beziehen sich auf Ihre Sicherheit, Ihre
gesetzlichen Rechte und Pflichten. Bitte beachten Sie alle Warn-, Vorsichts- und Aufmerksam-
keitszeichen auf den Bedienungsanleitung und Produktetiketten und installieren Sie es gemäß
den Bedienungsanleitung in der Anleitung.
3. Das Produkt ist relativ komplex und Benutzer müssen über grundlegende praktische
Installationsfähigkeiten und Sicherheitskenntnisse verfügen. Bei der Installation sollten Sie
vorsichtig sein.
4. Bevor Sie dieses Produkt verwenden, lesen Sie bitte die Bedienungsanleitung sorgfältig durch,
um sicherzustellen, dass das Produkt korrekt eingerichtet werden kann. Die Nichtbeachtung von
Anweisungen, Warnhinweisen, Vorsichtsmaßnahmen und Hinweisschildern kann zu
Produktschäden, Datenverlusten. In schwerwiegenden Fällen kann es zu Personen- und
Sachschäden kommen.
5. Wenn Sie dieses Produkt verwenden, wird davon ausgegangen, dass Sie den Hinweis-, Warn-,
Vorsichts-und Aufmerksamkeitsschilder sorgfältig gelesen, verstanden und akzeptiert haben. Sie
verpflichten sich, die volle Verantwortung für die Folgen der Verwendung dieses Produkts zu
übernehmen. Sie verpflichten sich, dieses Produkt nur für rechtmäßige Zwecke zu verwenden und
Sie stimmen den Bedingungen dieses Haftungsausschlusses und allen von MINISFORUM
aufgestellten Grundsätzen und Richtlinien zu.
6. Zusätzlich zu den Garantiebedingungen haftet MINISFORUM nicht für Schäden oder Verletzun-
gen, die sich direkt oder indirekt aus der Verwendung dieses Produkts ergeben, insbesondere für
Schäden, die sich aus der Nichtbeachtung der Sicherheitsrichtlinien ergeben, und der Benutzer
muss alle in dieser Erklärung und in der Bedienungsanleitung genannten Sicherheitsrichtlinien
befolgen.
7. Das letzte Auslegungsrecht dieser Erklärung liegt beim MINISFORUM.
### Vorsichtsmaßnahmen
1. Staub, Feuchtigkeit und starke Temperaturschwankungen können die Lebensdauer dieses
Produkts beeinträchtigen. Vermeiden Sie daher, das Produkt an diesen Orten aufzustellen.
2. Dieses Produkt sollte nur bei Temperaturen im Bereich von 0°C bis 35°C verwendet werden.
3. Die geeignete Temperatur für dieses Produkt und Zubehör beträgt 0°C bis 35°C.
4. Blockieren Sie nicht die Lüftungsöffnungen des Geräts. Halten Sie einen Abstand von
mindestens 10 cm ein, um eine ausreichende Belüftung zu gewährleisten.
5. Verwenden Sie das mitgelieferte Netzteil. Netzteile anderer Hersteller können das Gerät
beschädigen.
6. Wenn Sie ein Verlängerungskabel verwenden, stellen Sie sicher, dass die Gesamtstromstärke
aller angeschlossenen Geräte die zulässige Stromstärke des Kabels nicht überschreitet.
7. Wenn das Produkt längere Zeit nicht verwendet wird, ziehen Sie bitte den Netzstecker.
8. Bitte verwenden Sie keine Lösungsmittel wie Verdünner, Alkohol oder andere chemische
Lösungsmittel, um das Produkt zu reinigen. Verwenden Sie ein weiches Tuch, um das Produkt
zu reinigen.
9. Wenn das Produkt nass wird, schalten Sie es sofort aus und ziehen Sie den Netzstecker.
Wenden Sie sich an den Kundendienst.
10. Öffnen Sie das Gehäuse nicht, wenn das Gerät eingeschaltet ist. Es besteht die Gefahr eines
Stromschlags.
11. Wenn Sie das Gerät öffnen müssen, ziehen Sie zuerst den Netzstecker.
12. Wenn Sie das Gerät entsorgen, beachten Sie bitte die örtlichen Vorschriften zur Entsorgung
von Elektronikschrott.
---
## 2. Lieferumfang
| Bild | Name | Menge |
| :---: | :--- | :---: |
| ![MINISFORUM MS-R1](./images/MINISFORUM_MS-R1.png) | MINISFORUM MS-R1 | 1 |
| ![Netzteil](./images/Stromkabel.png) | Netzteil | 1 |
| ![HDMI Kabel](./images/HDMI-Kabel.png) | HDMI Kabel | 1 |
| ![Befestigungsschraubensatz](./images/Befestigungsschraubensatz.png) | Befestigungsschraubensatz | 1 |
| ![Bedienungsanleitung](./images/Bedienungsanleitung.png) | Bedienungsanleitung | 1 |
| ![SSD Kühlkörper](./images/SSD-Kuelkoeper.png) | SSD Kühlkörper | 1 |
| ![U.2 zu M.2 Adapter](./images/U-2_M-Key_M-2_E-Key_Adapterkarte.png) | U.2 zu M.2 Adapter | 1 |
---
## 3. Schnittstellen
### Vorderseite
![Vorderseite](./images/MINISFORUM_MS-R1_Front_Anschuesse.png)
1. **Power Button:** Ein-/Ausschalter mit LED-Anzeige.
2. **USB 3.2 Gen2 Type-A:** Schnelle Datenübertragung (bis zu 10 Gbit/s).
3. **USB 2.0 Type-A:** Für Peripheriegeräte wie Maus und Tastatur.
4. **3.5mm Audio Jack:** Kombinierter Kopfhörer-/Mikrofonanschluss.
5. **USB4 / Type-C:** Unterstützt Daten, Video (DP Alt Mode) und Power Delivery (PD).
### Rückseite
![Rückseite](./images/MINISFORUM_MS-R1_Back_Anschuesse.png)
1. **DC 19V:** Stromanschluss für das mitgelieferte Netzteil.
2. **2.5G LAN (RJ45):** Schnelle Netzwerkverbindung (Intel I226-V).
3. **10G SFP+:** Hochgeschwindigkeits-Netzwerkanschluss (für Glasfaser oder DAC).
4. **HDMI 2.1:** Videoausgang (bis zu 4K@144Hz / 8K@60Hz).
5. **USB 3.2 Gen2 Type-A:** Weitere schnelle USB-Anschlüsse.
6. **USB4 / Type-C:** Zweiter voll funktionsfähiger USB4-Port.
---
## 4. Installation
### SSD Installation
1. Entfernen Sie die Schrauben an der Unterseite des Gehäuses.
2. Heben Sie die Bodenplatte vorsichtig ab.
3. Lokalisieren Sie den M.2 Slot.
4. Setzen Sie die SSD im 30-Grad-Winkel ein.
5. Drücken Sie die SSD vorsichtig nach unten und befestigen Sie sie mit der Schraube.
6. Bringen Sie den Kühlkörper an (falls vorhanden).
### RAM Installation
1. Lokalisieren Sie die SO-DIMM Slots.
2. Setzen Sie das RAM-Modul im 30-Grad-Winkel ein.
3. Drücken Sie das Modul nach unten, bis die seitlichen Klammern einrasten.
### Montage
Das Gerät kann liegend betrieben oder mit einer VESA-Halterung an der Rückseite eines Monitors befestigt werden.
---
## 5. BIOS Einstellungen
Um in das BIOS zu gelangen, drücken Sie beim Starten des Geräts wiederholt die **Entf**-Taste (Delete).
* **Boot Priority:** Legen Sie hier fest, von welchem Laufwerk gestartet werden soll.
* **Secure Boot:** Kann für bestimmte Betriebssysteme (z.B. Linux) deaktiviert werden müssen.
* **Power On after Power Loss:** Einstellung, ob das Gerät nach einem Stromausfall automatisch starten soll (Wichtig für Server-Betrieb!).
---
## 6. Treiber und Support
Treiber und weitere Informationen finden Sie auf der offiziellen Support-Seite von Minisforum:
[https://www.minisforum.com/support](https://www.minisforum.com/support)
Bei Problemen wenden Sie sich bitte an den Support: `support@minisforum.com`

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,194 @@
# Setup Guide: Host OS (Minisforum MS-R1)
**Status:** DRAFT
**Date:** 2026-02-07
**Target:** Pre-installed Debian 12 (Vendor OS)
Dieses Dokument beschreibt die Schritte, um das vorinstallierte Betriebssystem des Minisforum MS-R1 für den Einsatz als **Meldestelle Home-Server** vorzubereiten.
## 0. SSH Verbindung herstellen
Da der Server bereits im Netzwerk ist, verbinden wir uns per SSH.
### IP-Adresse finden
Wenn du die IP-Adresse des Servers nicht kennst:
1. Schaue im Router (FritzBox o.ä.) nach einem Gerät namens `debian`, `minisforum` oder ähnlich.
2. Oder schließe kurz Monitor & Tastatur an und tippe `ip a` ein. Suche nach `inet 192.168.x.x`.
### Verbinden (von deinem Arbeitsrechner)
Öffne ein Terminal (PowerShell oder Bash) auf deinem Laptop/PC:
```bash
# Syntax: ssh <user>@<ip-adresse>
# Der Standard-User bei Debian ist oft 'root' oder 'debian' oder 'user'.
# Das Passwort steht oft auf einem Zettel im Karton oder ist 'minisforum', 'password' oder leer.
ssh user@192.168.178.XX # (Ersetze XX mit der echten IP)
```
*Falls der Login klappt, fahre mit Schritt 1 fort.*
---
## 1. Bestandsaufnahme & Update
Zuerst prüfen wir den Status des Systems und aktualisieren die Pakete.
```bash
# System-Infos anzeigen (Kernel, Architektur)
uname -a
cat /etc/debian_version
lscpu
# Prüfen, ob KVM (Virtualisierung) aktiv ist (Wichtig für Incus VMs!)
ls -l /dev/kvm
# Sollte crw-rw---- root kvm ... ausgeben.
# Paketquellen aktualisieren und System upgraden
sudo apt update && sudo apt full-upgrade -y
# Aufräumen
sudo apt autoremove -y
```
## 2. Basis-Tools installieren
Wir benötigen einige Standard-Tools für die weitere Verwaltung.
```bash
sudo apt install -y curl wget git htop vim nano ufw net-tools dnsutils
```
## 3. Sicherheit (Hardening)
Da der Server im Netzwerk hängt, sichern wir den Zugang ab.
### 3.1 Neuer Admin-User (falls noch nicht geschehen)
Vermeide die Nutzung von `root` oder Standard-Usern wie `admin`/`user`.
```bash
# Ersetze 'meldestelle-admin' mit deinem Wunschnamen
sudo adduser meldestelle-admin
sudo usermod -aG sudo meldestelle-admin
```
### 3.2 SSH Absichern
*Hinweis: Führe dies erst aus, wenn du dich mit dem neuen User erfolgreich eingeloggt hast!*
Editiere `/etc/ssh/sshd_config`:
```ssh
PermitRootLogin no
PasswordAuthentication yes # Später auf 'no' setzen, wenn SSH-Keys eingerichtet sind!
```
Neustart: `sudo systemctl restart ssh`
### 3.3 Firewall (UFW)
Wir erlauben vorerst nur SSH und später HTTP/HTTPS.
```bash
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow ssh
sudo ufw enable
```
## 4. Virtualisierung: Incus Installation
Wir nutzen **Incus** (Community Fork von LXD) für Container und VMs. Da Debian 12 Incus nicht in den Standard-Repos hat, nutzen wir das Zabbly-Repository (Standard für Incus).
### 4.1 Repository hinzufügen
```bash
# Keyring Verzeichnis erstellen
sudo mkdir -p /etc/apt/keyrings/
# GPG Key herunterladen
sudo curl -fsSL https://pkgs.zabbly.com/key.asc -o /etc/apt/keyrings/zabbly.asc
# Repository hinzufügen
sudo sh -c 'cat <<EOF > /etc/apt/sources.list.d/zabbly-incus-stable.sources
Enabled: yes
Types: deb
URIs: https://pkgs.zabbly.com/incus/stable
Suites: $(. /etc/os-release && echo ${VERSION_CODENAME})
Components: main
Architectures: $(dpkg --print-architecture)
Signed-By: /etc/apt/keyrings/zabbly.asc
EOF'
```
### 4.2 Installation
```bash
sudo apt update
sudo apt install -y incus
```
### 4.3 User zur Gruppe hinzufügen
Damit du `incus` ohne `sudo` nutzen kannst:
```bash
sudo usermod -aG incus-admin meldestelle-admin
newgrp incus-admin
```
### 4.4 Initialisierung (Mit Workaround für Vendor Kernel)
⚠️ **ACHTUNG:** Der Vendor-Kernel (`6.6.10-cix-build-generic`) scheint wichtige Firewall-Module (`nf_tables`) zu vermissen. Das Standard-Setup von Incus schlägt daher fehl.
Wir müssen die Netzwerk-Brücke während der Initialisierung **deaktivieren** und später manuell konfigurieren.
Führe `incus admin init` erneut aus und antworte wie folgt:
```text
Would you like to use clustering? (yes/no) [default=no]: no
Do you want to configure a new storage pool? (yes/no) [default=yes]: yes
Name of the new storage pool [default=default]: default
Name of the storage backend to use (dir, truenas) [default=dir]: dir
Where should this storage pool store its data? [default=/var/lib/incus/storage-pools/default]: (Enter drücken)
Would you like to create a new local network bridge? (yes/no) [default=yes]: no <-- WICHTIG!
Would you like the server to be available over the network? (yes/no) [default=no]: no
Would you like stale cached images to be updated automatically? (yes/no) [default=yes]: yes
Would you like a YAML "init" preseed to be printed? (yes/no) [default=no]: no
```
### 4.5 Netzwerk Konfiguration (Macvlan)
Da wir keine Bridge erstellen können, nutzen wir **Macvlan**. Das bedeutet, jeder Container bekommt eine eigene IP-Adresse direkt von deinem Router (FritzBox). Das ist für einen Home-Server oft sogar praktischer.
1. **Kernel-Modul laden (WICHTIG):**
Der Vendor-Kernel lädt `macvlan` nicht automatisch.
```bash
sudo modprobe macvlan
echo "macvlan" | sudo tee -a /etc/modules
```
2. **Netzwerk-Interface finden:**
Führe `ip -br a` aus. Suche das Interface mit deiner IP (z.B. `eth0`, `enP4p1s0` o.ä.). Ignoriere `lo`, `docker0` etc.
3. **Profil anpassen:**
Ersetze `<INTERFACE>` im folgenden Befehl mit dem Namen aus Schritt 2 (z.B. `eth0`).
```bash
# Füge das Netzwerk-Device zum default Profil hinzu
incus profile device add default eth0 nic nictype=macvlan parent=<INTERFACE>
```
4. **Test:**
Starte einen Test-Container:
```bash
incus launch images:debian/12 test-container
incus list
# Sollte eine IP aus deinem Heimnetz (192.168.178.xxx) haben.
```
## 5. Nächste Schritte
Nachdem der Host vorbereitet ist, werden wir gemäß Roadmap folgende Instanzen erzeugen:
1. **Gitea Container:** `incus launch images:debian/12 infra-gitea`
2. **Docker Host VM:** `incus launch images:debian/12 docker-host-prod --vm`
Bitte melde zurück, wenn Schritt 1-4 erfolgreich waren oder ob Fehler (z.B. fehlendes `/dev/kvm`) aufgetreten sind.

View File

@ -0,0 +1,141 @@
# Setup Guide: Infrastructure Services (Minisforum MS-R1)
**Status:** DRAFT
**Date:** 2026-02-07
**Context:** Host OS (Debian 12 ARM64) ist vorbereitet, Incus läuft mit Macvlan.
Dieses Dokument beschreibt die Installation der beiden Haupt-Komponenten:
1. **infra-gitea:** Ein leichtgewichtiger Git-Server (LXC Container).
2. **docker-host-prod:** Die Produktions-Umgebung für die Meldestelle-App (Incus VM).
---
## 1. Gitea Container (`infra-gitea`)
Wir nutzen einen LXC-Container, da Gitea sehr ressourcensparend ist.
### 1.1 Container starten
```bash
# Starten des Containers
incus launch images:debian/12 infra-gitea
# Warten bis er eine IP hat
incus list infra-gitea
```
### 1.2 Gitea Installation
Wir installieren Gitea manuell als Binary, um die volle Kontrolle zu haben.
1. **In den Container einloggen:**
```bash
incus shell infra-gitea
```
2. **Abhängigkeiten installieren (im Container):**
```bash
apt update && apt install -y git wget gnupg2
```
3. **Git-User anlegen:**
```bash
adduser --system --shell /bin/bash --gecos 'Git Version Control' --group --disabled-password git
```
4. **Gitea Binary herunterladen (ARM64):**
```bash
wget -O /usr/local/bin/gitea https://dl.gitea.com/gitea/1.21.4/gitea-1.21.4-linux-arm64
chmod +x /usr/local/bin/gitea
```
5. **Verzeichnisse erstellen:**
```bash
mkdir -p /var/lib/gitea/{custom,data,log}
chown -R git:git /var/lib/gitea/
chmod -R 750 /var/lib/gitea/
mkdir /etc/gitea
chown root:git /etc/gitea
chmod 770 /etc/gitea
```
6. **Systemd Service anlegen:**
Erstelle die Datei `/etc/systemd/system/gitea.service`:
*(Inhalt siehe unten)*
```ini
[Unit]
Description=Gitea (Git with a cup of tea)
After=syslog.target
After=network.target
[Service]
RestartSec=2s
Type=simple
User=git
Group=git
WorkingDirectory=/var/lib/gitea/
ExecStart=/usr/local/bin/gitea web --config /etc/gitea/app.ini
Restart=always
Environment=USER=git HOME=/home/git GITEA_WORK_DIR=/var/lib/gitea
[Install]
WantedBy=multi-user.target
```
7. **Service starten:**
```bash
systemctl enable --now gitea
systemctl status gitea
```
8. **Setup abschließen:**
Öffne im Browser: `http://<IP-VON-INFRA-GITEA>:3000`
---
## 2. Docker Host VM (`docker-host-prod`)
Wir nutzen eine **VM** (Virtual Machine) statt eines Containers für Docker. Das bietet bessere Isolation und vermeidet Probleme mit "Docker-in-LXC" (Nesting, OverlayFS).
### 2.1 VM starten
*Hinweis: VMs brauchen etwas länger zum Starten als Container.*
```bash
# Starten der VM (mit 4 vCPUs und 8GB RAM als Startwert)
incus launch images:debian/12 docker-host-prod --vm -c limits.cpu=4 -c limits.memory=8GiB
# Warten bis sie eine IP hat (kann 1-2 Minuten dauern beim ersten Mal)
incus list docker-host-prod
```
### 2.2 Docker Installation
1. **In die VM einloggen:**
```bash
incus shell docker-host-prod
```
2. **Docker installieren (Offizielles Skript):**
```bash
curl -fsSL https://get.docker.com -o get-docker.sh
sh get-docker.sh
```
3. **User-Rechte:**
Da wir in der Incus-Shell als `root` sind, passt das erst mal. Für später (SSH-Zugriff) sollte man einen User anlegen.
4. **Test:**
```bash
docker run --rm hello-world
```
---
## 3. DNS / Erreichbarkeit (Optional aber empfohlen)
Da wir Macvlan nutzen, haben die Instanzen IPs aus dem Heimnetz (z.B. `10.0.0.x`).
Es empfiehlt sich, im Router (FritzBox) einzustellen:
* "Diesem Netzwerkgerät immer die gleiche IPv4-Adresse zuweisen."
* Ggf. lokale DNS-Namen vergeben (z.B. `gitea.local`, `docker.local`).

View File

@ -0,0 +1,21 @@
# Spezifikation
| CPU | CP8180, 12 Cores/12 Threads, 2.6Ghz |
|----------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| GPU | Arm Immortalis-G720 MC10 |
| Memory Types | LPDDR5(LinkECC&Inline ECC Supported) |
| Max Memory Size | 64GB 5500Mhz |
| ECC Memory Supported | YES |
| Storage | 1×M.2 2280/22110 NVME SSD Slot (up to 8TB)(PCIe4.0x4) |
| Wireless | YES |
| Bluetooth | YES |
| Video Output | HDMI2.0 x1 (Up to 4K@60Hz) Type-C(Alt DP 1.4) x 2(Up to 4K@120Hz) |
| Audio Output | HDMI х 1 3.5mm Combo Jack 4 in 1 х 1 |
| Audio Input | 3.5mm Combo Jack 4 in 1 х 1 |
| Ports & Buttons | 3.5mm Combo Audio Jack 4 in 1 х 1 <br> USB Type A(USB3.2 Gen2) х 1 <br> USB Type A(USB2.0) х 2 <br> Type-C(Alt DP1.4, USB3.2 Gen2,100w PD-IN,15W PD-OUT )x 2 <br> HDMI2.0 х 1 <br> 10G LAN(RJ45)(RTL8127) х 2 <br> USB Type A(USB2) х 2 <br> USB Type A(USB3.2 Gen2) х 2 <br> 40PIN GPIO x 1 <br> Power Loss Switch x 1 <br> BIOS FLASH PIN & UART1 PIN x 1 <br> UART2 PIN x 1 <br> eDP x 1 <br> Power Button With LED х 1 |
| PCIe Expansion | PCIEx16(PCIE4.0x8) |
| Power | DC 19V 180W/Type-C 20V 100W |
| Support System | Debian12 |
| Product Dimension | 196x189x48 mm |
| Net Weight | 1.35KG |
| Launch Date | 2025/9 |

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 115 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 64 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 105 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 43 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 47 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 43 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 56 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 60 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 48 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 51 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 51 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 47 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 68 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 KiB

View File

@ -0,0 +1,36 @@
---
type: Log
agent: Curator
date: 2026-02-07
status: COMPLETED
---
# 🧹 Session Log: 07. Februar 2026
## Zusammenfassung
Heute wurde der neue Home-Server (Minisforum MS-R1) in Betrieb genommen. Der Fokus lag auf der Einrichtung des Host-Betriebssystems (Debian 12 ARM64) und der Virtualisierungs-Plattform (Incus).
## Erreichte Meilensteine
1. **Hardware-Integration:**
* Dokumentation für Minisforum MS-R1 erstellt (Handbuch, Specs).
* Roadmap aktualisiert (Hardware-Status: GELIEFERT).
2. **Host-Setup:**
* SSH-Zugang und Basic Hardening (User, Firewall) durchgeführt.
* **Incus Installation:** Erfolgreich auf dem Vendor-Kernel (`6.6.10-cix-build-generic`) installiert.
* **Netzwerk-Fix:** Da dem Vendor-Kernel Module für Bridges fehlen, wurde erfolgreich auf **Macvlan** umgestellt. Container erhalten nun IPs direkt aus dem Heimnetz (`10.0.0.x`).
3. **Infrastructure Services:**
* `infra-gitea` (LXC Container) wurde erstellt und gestartet.
* Gitea Binary installiert.
## Offene Punkte / Blocker
* **Gitea Service:** Der `gitea.service` startet nicht sauber (`exit-code 1`). Es gibt Probleme mit der Konfiguration (`app.ini`) oder Dateirechten, speziell im Zusammenhang mit Pfaden (`/usr/local/bin/data` vs `/var/lib/gitea`).
* *Nächster Schritt:* Manuelles Debugging im Vordergrund (`su - git -c ...`), um die genaue Fehlermeldung zu sehen.
* **Docker Host:** Die VM `docker-host-prod` wurde noch nicht erstellt. Dies ist der nächste logische Schritt nach dem Gitea-Fix.
## Dokumentation
* Neu: `docs/01_Architecture/Minisforum-MS-R1/Setup_Guide_Host_OS.md` (Fertig)
* Neu: `docs/01_Architecture/Minisforum-MS-R1/Setup_Guide_Services.md` (In Arbeit)
* Update: `docs/01_Architecture/MASTER_ROADMAP_2026_Q1.md`
## Ausblick
Die nächste Session sollte sich auf die Stabilisierung von Gitea und die Einrichtung der Docker-VM konzentrieren, um die Plattform für die Meldestelle-App bereit zu machen.

View File

@ -0,0 +1,29 @@
---
type: Log
agent: DevOps Engineer
date: 2026-02-07
status: IN_PROGRESS
---
# 🐧 Log: Hardware Setup Minisforum MS-R1
## Kontext
Der neue Home-Server (Minisforum MS-R1) ist eingetroffen. Dies ist die Ziel-Hardware für den "Offline-First" Betrieb der Meldestelle.
Wir haben die Dokumentation (Handbuch & Specs) erhalten und beginnen mit der Integration in die Architektur-Dokumentation.
## Hardware Specs (Zusammenfassung)
* **Modell:** Minisforum MS-R1
* **CPU:** CP8180 (12 Cores / 12 Threads, 2.6 GHz) - ARM64 Architektur? (Muss verifiziert werden, Specs sagen "Arm Immortalis-G720" GPU, deutet auf ARM SoC hin).
* **RAM:** Max 64GB LPDDR5 5500MHz (ECC Supported).
* **Storage:** 1x M.2 NVMe (PCIe 4.0 x4).
* **Network:** 2x 10G LAN (SFP+ via RTL8127?). *Korrektur aus Specs:* "10G LAN(RJ45)(RTL8127) x 2".
* **OS Support:** Debian 12 (Vendor Image vorhanden).
## Actions
1. [x] Dokumentation (Handbuch, Specs) gesichtet.
2. [ ] `MASTER_ROADMAP` aktualisieren (Hardware-Details bestätigen).
3. [ ] Systemabbild sichern (bereits vom User erledigt).
## Nächste Schritte
* Verifizierung der CPU-Architektur (ARM64 vs x86). Die Roadmap ging von ARM64 aus. Die Specs nennen "CP8180" und "Arm Immortalis", was dies bestätigt.
* Planung der Virtualisierung (Incus auf Debian 12).