meldestelle/docs/99_Journal/2026-02-04_Infrastructure_Setup_Plan.md
StefanMoCoAt c3d288cd66 chore: refactor Gradle config, standardize Kotlin MPP plugin usage, and update dependencies
- Unified plugin application across modules using `alias(libs.plugins.*)` instead of hardcoded IDs.
- Removed redundant JVM/JS source map tasks, improving Gradle and Docker build consistency.
- Updated dependencies, including `logback` and Webpack `copy-webpack-plugin`, and added contextual documentation.
- Added frontend architecture diagram in PlantUML (`docs/01_Architecture/Reference`), standardizing feature-core-shell dependencies.
2026-02-05 02:07:53 +01:00

144 lines
4.7 KiB
Markdown

# 🏗️ Journal: Infrastructure Setup & CI/CD Planning
**Datum:** 04.02.2026
**Autor:** DevOps Engineer & Curator (AI)
**Status:** 🚧 In Progress (Paused due to technical issues)
## Zusammenfassung
Nach der erfolgreichen Verifikation des `ping-service` wurde mit der Planung und Einrichtung der CI/CD-Infrastruktur begonnen. Die Entscheidung fiel auf eine **Self-Hosted Lösung** (Gitea + Gitea Runner) auf dem vorhandenen Proxmox-Server, angebunden via **Cloudflare Tunnel** für sicheren Zugriff ohne Portfreigaben.
## 1. Cloudflare Bereinigung (Erledigt ✅)
Ziel war es, die Domain `mo-code.at` für den Tunnel vorzubereiten, ohne den Mail-Empfang zu stören.
**Durchgeführte Schritte:**
1. **Login:** Cloudflare Dashboard -> Domain `mo-code.at` -> DNS -> Records.
2. **Gelöscht:**
* `A | mo-code.at | 81.19.145.155`
* `A | www | 81.19.145.155`
* `A | ftp | 81.19.145.155`
3. **Behalten & Korrigiert (Mail):**
* `A | mail | 81.19.149.91` -> **Proxy Status auf "DNS Only" (Grau) gesetzt.**
* `CNAME | imap | imap.world4you.com` -> **Proxy Status auf "DNS Only" (Grau) gesetzt.**
* `MX` und `TXT` Records wurden unverändert gelassen.
---
## 2. Proxmox Docker-Host Setup (Anleitung)
Diese Anleitung dient zur Wiederherstellung/Neuinstallation der VM, falls Probleme auftreten.
### Vorbereitung: ISO Download
1. Proxmox GUI -> `local` Storage -> `ISO Images`.
2. **Download from URL:** `https://releases.ubuntu.com/24.04.1/ubuntu-24.04.1-live-server-amd64.iso`
3. Warten bis Download fertig.
### Schritt A: VM Erstellen (Klick-für-Klick)
1. **Create VM** (Button oben rechts).
2. **General:**
* Name: `docker-host`
* VM ID: (Standard lassen, z.B. 100)
3. **OS:**
* ISO image: `ubuntu-24.04.1...iso`
* Type: Linux / 6.x - 2.6 Kernel
4. **System:**
* Graphics/Machine/BIOS: Standard lassen.
* **Qemu Agent:** ✅ Aktivieren (Häkchen setzen).
5. **Disks:**
* Storage: `local-lvm`
* Disk size: **100 GiB**
* **SSD emulation:** ✅ Aktivieren.
* **Discard:** ✅ Aktivieren.
6. **CPU:**
* Sockets: 1
* Cores: **4**
* Type: **host** (Wichtig für Performance!).
7. **Memory:**
* Memory: **8192** (8 GB).
* Ballooning: ✅ Aktivieren.
8. **Network:**
* Bridge: `vmbr0`
* Model: `VirtIO`
9. **Confirm** -> Finish.
### Schritt B: Ubuntu Installation
1. VM starten -> **Console**.
2. Sprache: English.
3. Installer Update: "Update to the new installer" (falls gefragt).
4. Keyboard: German.
5. **Base:** Ubuntu Server (minimized optional, Standard empfohlen).
6. **Network:** DHCP lassen.
7. **Storage:** "Use an entire disk" -> Standard lassen -> Done.
8. **Profile:**
* Name: `Stefan`
* Server name: `docker-host`
* Username: `stefan`
* Password: (Merken!)
9. **SSH Setup:** **[X] Install OpenSSH server** (Mit Leertaste auswählen).
10. **Snaps:** **NICHTS** auswählen (kein Docker, kein MicroK8s).
11. Installieren & Reboot.
### Schritt C: Docker Installation (via Terminal/SSH)
Verbinde dich von deinem PC aus: `ssh stefan@<VM-IP>`
```bash
# 1. System aktualisieren & QEMU Agent sicherstellen
sudo apt update && sudo apt upgrade -y
sudo apt install -y qemu-guest-agent
sudo systemctl enable --now qemu-guest-agent
# 2. Docker Installations-Script laden & ausführen
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
# 3. User zur Docker-Gruppe hinzufügen (Wichtig!)
sudo usermod -aG docker $USER
# 4. Neustart, damit Rechte greifen
sudo reboot
```
### Schritt D: Test
Nach dem Neustart wieder einloggen:
```bash
docker run hello-world
```
Sollte "Hello from Docker!" ausgeben.
---
## 3. Ausblick: Nächste Schritte (DevOps Stack)
Sobald der Docker-Host läuft, werden wir folgende `docker-compose.yml` (Entwurf) verwenden, um Gitea und Cloudflare Tunnel zu starten:
```yaml
services:
gitea:
image: gitea/gitea:latest
container_name: gitea
environment:
- USER_UID=1000
- USER_GID=1000
volumes:
- ./gitea_data:/data
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
ports:
- "3000:3000"
- "2222:22"
restart: always
tunnel:
image: cloudflare/cloudflared:latest
container_name: cloudflared
restart: always
command: tunnel run
environment:
- TUNNEL_TOKEN=<WIRD_GENERIERT>
```
## Troubleshooting Tipps (Installation bricht ab)
* **ISO Check:** Prüfe die Checksumme des ISOs oder lade es neu herunter.
* **RAM:** Versuche es testweise mit 4 GB statt 8 GB.
* **Disk:** Prüfe im Proxmox Storage, ob wirklich genug Platz auf `local-lvm` frei ist.
* **Console:** Beobachte die Fehlermeldung in der Proxmox-Konsole genau (oft I/O Errors).