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).
|
|
@ -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:
|
||||
|
|
|
|||
|
|
@ -0,0 +1,149 @@
|
|||
---
|
||||
Betriebsanleitung Minisforum MS-R1
|
||||
---
|
||||
|
||||
# MINISFORUM MS-R1
|
||||
|
||||

|
||||

|
||||
|
||||
```
|
||||
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 | 1 |
|
||||
|  | Netzteil | 1 |
|
||||
|  | HDMI Kabel | 1 |
|
||||
|  | Befestigungsschraubensatz | 1 |
|
||||
|  | Bedienungsanleitung | 1 |
|
||||
|  | SSD Kühlkörper | 1 |
|
||||
|  | U.2 zu M.2 Adapter | 1 |
|
||||
|
||||
---
|
||||
|
||||
## 3. Schnittstellen
|
||||
|
||||
### Vorderseite
|
||||
|
||||

|
||||
|
||||
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
|
||||
|
||||

|
||||
|
||||
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`
|
||||
194
docs/01_Architecture/Minisforum-MS-R1/Setup_Guide_Host_OS.md
Normal 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.
|
||||
141
docs/01_Architecture/Minisforum-MS-R1/Setup_Guide_Services.md
Normal 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`).
|
||||
21
docs/01_Architecture/Minisforum-MS-R1/Spezifikation.md
Normal 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 |
|
||||
|
After Width: | Height: | Size: 3.7 KiB |
|
After Width: | Height: | Size: 8.1 KiB |
BIN
docs/01_Architecture/Minisforum-MS-R1/images/HDMI-Kabel.png
Normal file
|
After Width: | Height: | Size: 3.7 KiB |
|
After Width: | Height: | Size: 4.3 KiB |
BIN
docs/01_Architecture/Minisforum-MS-R1/images/MINISFORUM_Logo.png
Normal file
|
After Width: | Height: | Size: 19 KiB |
|
After Width: | Height: | Size: 115 KiB |
|
After Width: | Height: | Size: 64 KiB |
|
After Width: | Height: | Size: 38 KiB |
|
After Width: | Height: | Size: 105 KiB |
|
After Width: | Height: | Size: 42 KiB |
|
After Width: | Height: | Size: 7.4 KiB |
|
After Width: | Height: | Size: 30 KiB |
|
After Width: | Height: | Size: 43 KiB |
|
After Width: | Height: | Size: 31 KiB |
|
After Width: | Height: | Size: 35 KiB |
|
After Width: | Height: | Size: 47 KiB |
|
After Width: | Height: | Size: 20 KiB |
|
After Width: | Height: | Size: 13 KiB |
|
After Width: | Height: | Size: 2.6 KiB |
|
After Width: | Height: | Size: 14 KiB |
|
After Width: | Height: | Size: 50 KiB |
|
After Width: | Height: | Size: 32 KiB |
|
After Width: | Height: | Size: 38 KiB |
|
After Width: | Height: | Size: 43 KiB |
|
After Width: | Height: | Size: 56 KiB |
|
After Width: | Height: | Size: 40 KiB |
|
After Width: | Height: | Size: 60 KiB |
|
After Width: | Height: | Size: 48 KiB |
|
After Width: | Height: | Size: 42 KiB |
|
After Width: | Height: | Size: 51 KiB |
|
After Width: | Height: | Size: 51 KiB |
|
After Width: | Height: | Size: 27 KiB |
|
After Width: | Height: | Size: 47 KiB |
|
After Width: | Height: | Size: 68 KiB |
|
After Width: | Height: | Size: 22 KiB |
|
After Width: | Height: | Size: 15 KiB |
|
After Width: | Height: | Size: 22 KiB |
BIN
docs/01_Architecture/Minisforum-MS-R1/images/Netzwerkadapter.png
Normal file
|
After Width: | Height: | Size: 4.1 KiB |
BIN
docs/01_Architecture/Minisforum-MS-R1/images/PCIE_FAN.png
Normal file
|
After Width: | Height: | Size: 4.3 KiB |
BIN
docs/01_Architecture/Minisforum-MS-R1/images/SSD-Kuelkoeper.png
Normal file
|
After Width: | Height: | Size: 2.8 KiB |
BIN
docs/01_Architecture/Minisforum-MS-R1/images/Stromkabel.png
Normal file
|
After Width: | Height: | Size: 4.2 KiB |
|
After Width: | Height: | Size: 4.3 KiB |
36
docs/04_Agents/Logs/2026-02-07_Curator_Session_Log.md
Normal 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.
|
||||
29
docs/04_Agents/Logs/2026-02-07_DevOps_Hardware_Setup.md
Normal 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).
|
||||