Update Zora configuration: add detailed runbook, reassign ai-stack to CT 120, and improve infrastructure documentation
Build and Publish Docker Images / build-and-push (., backend/infrastructure/gateway/Dockerfile, api-gateway, api-gateway) (push) Successful in 8m7s
Build and Publish Docker Images / build-and-push (., backend/services/ping/Dockerfile, ping-service, ping-service) (push) Successful in 7m16s
Build and Publish Docker Images / build-and-push (., config/docker/caddy/web-app/Dockerfile, web-app, web-app) (push) Successful in 1m48s
Build and Publish Docker Images / build-and-push (., config/docker/keycloak/Dockerfile, keycloak, keycloak) (push) Successful in 1m32s
Build and Publish Docker Images / build-and-push (., backend/infrastructure/gateway/Dockerfile, api-gateway, api-gateway) (push) Successful in 8m7s
Build and Publish Docker Images / build-and-push (., backend/services/ping/Dockerfile, ping-service, ping-service) (push) Successful in 7m16s
Build and Publish Docker Images / build-and-push (., config/docker/caddy/web-app/Dockerfile, web-app, web-app) (push) Successful in 1m48s
Build and Publish Docker Images / build-and-push (., config/docker/keycloak/Dockerfile, keycloak, keycloak) (push) Successful in 1m32s
This commit is contained in:
@@ -43,7 +43,7 @@ Zora — Proxmox 8.4.10 (10.0.0.20)
|
||||
├── LXC 100 pangolin-client ← Pangolin Tunnel
|
||||
├── LXC 101 gitea (10.0.0.22) ← Gitea Server
|
||||
├── LXC 103 immich ← Immich
|
||||
└── LXC 111 ai-stack (10.0.0.60) ← Ollama + Open WebUI ← NEU
|
||||
└── LXC 120 ai-stack (10.0.0.60) ← Ollama + Open WebUI ← NEU
|
||||
```
|
||||
|
||||
**Begründung:** Modelle (5–40 GB pro Modell) wachsen unkontrolliert.
|
||||
@@ -107,39 +107,39 @@ sysctl -p
|
||||
> ℹ️ **Alle Befehle laufen auf dem Proxmox-Node** (`ssh root@10.0.0.20`)
|
||||
> Alternativ: Proxmox Web-UI unter `https://pve.mo-code.at:8006`
|
||||
|
||||
### 2.1 — Debian 12 Template herunterladen
|
||||
### 2.1 — Ubuntu 24.04 Template herunterladen
|
||||
|
||||
```bash
|
||||
# Template-Liste aktualisieren
|
||||
pveam update
|
||||
|
||||
# Debian 12 ARM64 Template suchen und herunterladen
|
||||
pveam available --section system | grep debian-12.*arm64
|
||||
pveam download local debian-12-standard_12.7-1_arm64.tar.zst
|
||||
# Ubuntu 24.04 ARM64 Template suchen und herunterladen
|
||||
pveam available --section system | grep ubuntu-24.04.*arm64
|
||||
pveam download local ubuntu-24.04-standard_24.04-2_arm64.tar.zst
|
||||
```
|
||||
|
||||
### 2.2 — Container erstellen (CT 111)
|
||||
### 2.2 — Container erstellen (CT 120)
|
||||
|
||||
```bash
|
||||
pct create 111 local:vztmpl/debian-12-standard_12.7-1_arm64.tar.zst \
|
||||
pct create 120 local:vztmpl/ubuntu-24.04-standard_24.04-2_arm64.tar.zst \
|
||||
--hostname ai-stack \
|
||||
--arch aarch64 \
|
||||
--cores 10 \
|
||||
--memory 49152 \
|
||||
--swap 4096 \
|
||||
--rootfs local-lvm:200 \
|
||||
--rootfs local:200 \
|
||||
--net0 name=eth0,bridge=vmbr0,ip=10.0.0.60/24,gw=10.0.0.138,firewall=1 \
|
||||
--nameserver 10.0.0.138 \
|
||||
--searchdomain mo-code.at \
|
||||
--unprivileged 1 \
|
||||
--features nesting=1 \
|
||||
--features nesting=1,keyctl=1 \
|
||||
--password
|
||||
|
||||
# Container starten
|
||||
pct start 111
|
||||
pct start 120
|
||||
|
||||
# Status prüfen
|
||||
pct status 111
|
||||
pct status 120
|
||||
pct list
|
||||
```
|
||||
|
||||
@@ -148,18 +148,18 @@ pct list
|
||||
```bash
|
||||
# Kerne 2–11 dem Container zuweisen (Kerne 8–11 = X4 Performance-Kerne!)
|
||||
# In der Container-Config:
|
||||
echo "cpulimit: 10" >> /etc/pve/lxc/111.conf
|
||||
echo "cpuunits: 1024" >> /etc/pve/lxc/111.conf
|
||||
echo "cpulimit: 10" >> /etc/pve/lxc/120.conf
|
||||
echo "cpuunits: 1024" >> /etc/pve/lxc/120.conf
|
||||
|
||||
# Alternativ via Web-UI:
|
||||
# CT 111 → Options → CPU Limit: 10 Cores
|
||||
# CT 120 → Options → CPU Limit: 10 Cores
|
||||
```
|
||||
|
||||
### 2.4 — In Container einloggen und Basis-Setup
|
||||
|
||||
```bash
|
||||
# Direkt per pct:
|
||||
pct enter 111
|
||||
pct enter 120
|
||||
|
||||
# Im Container:
|
||||
apt-get update && apt-get upgrade -y
|
||||
@@ -181,7 +181,7 @@ usermod -aG docker aiuser
|
||||
### 3.1 — Ollama installieren
|
||||
|
||||
```bash
|
||||
# Im Container (pct enter 111):
|
||||
# Im Container (pct enter 120):
|
||||
curl -fsSL https://ollama.com/install.sh | sh
|
||||
|
||||
# ARM64 wird automatisch erkannt
|
||||
@@ -268,7 +268,7 @@ ollama run llama3.1:8b "Erkläre mir Spring Boot in einem Satz auf Deutsch"
|
||||
## Phase 5 — Open WebUI installieren
|
||||
|
||||
```bash
|
||||
# Im Container (pct enter 111):
|
||||
# Im Container (pct enter 120):
|
||||
docker run -d \
|
||||
--name open-webui \
|
||||
--restart always \
|
||||
@@ -392,10 +392,10 @@ Der CIX P1 hat eine integrierte NPU, die aktuell **nicht von Ollama/llama.cpp un
|
||||
|
||||
```bash
|
||||
# Container verwalten (auf Proxmox-Node: ssh root@10.0.0.20)
|
||||
pct start 111
|
||||
pct stop 111
|
||||
pct enter 111
|
||||
pct status 111
|
||||
pct start 120
|
||||
pct stop 120
|
||||
pct enter 120
|
||||
pct status 120
|
||||
|
||||
# Modelle verwalten (im Container)
|
||||
ollama list # Installierte Modelle
|
||||
@@ -422,7 +422,7 @@ Zora — Proxmox 8.4.10 (10.0.0.20)
|
||||
├── VM 110 meldestelle-host 10.0.0.50 Docker App-Stack
|
||||
├── LXC 101 gitea 10.0.0.22 Gitea Server
|
||||
├── LXC 103 immich Immich
|
||||
└── LXC 111 ai-stack 10.0.0.60 Ollama :11434 | Open WebUI :3001
|
||||
└── LXC 120 ai-stack 10.0.0.60 Ollama :11434 | Open WebUI :3001
|
||||
|
||||
Pangolin-Tunnel:
|
||||
├── ai.mo-code.at → 10.0.0.60:3001 (Open WebUI — nur intern/VPN)
|
||||
|
||||
@@ -24,7 +24,7 @@ owner: DevOps Engineer
|
||||
| 102 | gitea-runner | VM | `10.0.0.23` | — | Gitea CI/CD Runner (aarch64) |
|
||||
| 103 | immich | LXC | `10.0.0.24` | order=3, up=30 | Immich Foto-Server |
|
||||
| 110 | meldestelle-host | VM | `10.0.0.50` | — | Docker App-Stack |
|
||||
| 111 | ai-stack | LXC | `10.0.0.60` | — | Ollama + Open WebUI (geplant)|
|
||||
| 120 | ai-stack | LXC | `10.0.0.60` | — | Ollama + Open WebUI |
|
||||
|
||||
|
||||
### Detaillierte Ressourcen-Konfiguration
|
||||
@@ -63,6 +63,33 @@ owner: DevOps Engineer
|
||||
| **Typ** | Unprivileged, nesting=1, keyctl=1, fuse=1 |
|
||||
| **Autostart** | Ja — order=3, up=30 |
|
||||
|
||||
#### CT 120 — ai-stack (LXC)
|
||||
| Parameter | Wert |
|
||||
|:-----------------|:---------------------------------------|
|
||||
| **OS** | Ubuntu 24.04, arm64 |
|
||||
| **CPU** | 10 Cores (cpulimit=10, cpuunits=1024) |
|
||||
| **RAM** | 48.00 GiB + 4.00 GiB Swap |
|
||||
| **Disk** | 200 GB (`local:120/vm-120-disk-0.raw`) |
|
||||
| **Netzwerk** | eth0 → vmbr0, IP `10.0.0.60/24`, GW `10.0.0.138`, Firewall: Yes |
|
||||
| **Typ** | Unprivileged, nesting=1, keyctl=1 |
|
||||
| **Autostart** | Nein |
|
||||
| **Dienste** | Ollama :11434, Open WebUI :3001 |
|
||||
|
||||
#### VM 110 — meldestelle-host (QEMU/KVM)
|
||||
| Parameter | Wert |
|
||||
|:-----------------|:-----------------------------------------------------------------|
|
||||
| **BIOS** | OVMF (UEFI) |
|
||||
| **Machine** | virt (ARM64, aarch64) |
|
||||
| **CPU** | 8 Cores (1 Socket, host-type, numa=1) |
|
||||
| **RAM** | 16.00 GiB (balloon=0, kein Dynamic Memory) |
|
||||
| **Disk** | 150 GB SSD (`local:110/vm-110-disk-1.qcow2`, aio=io_uring, iothread=1, ssd=1) |
|
||||
| **EFI Disk** | `local:110/vm-110-disk-0.qcow2`, efitype=4m, 64 MB |
|
||||
| **Netzwerk** | virtio, bridge=vmbr0, Firewall: Yes |
|
||||
| **SCSI** | VirtIO SCSI single |
|
||||
| **Autostart** | Nein (order=any) |
|
||||
| **QEMU Agent** | Enabled |
|
||||
| **Dienste** | Docker App-Stack (API :8081, Keycloak :8180, Prometheus :9090, Grafana :3000) |
|
||||
|
||||
#### VM 102 — gitea-runner (QEMU/KVM)
|
||||
| Parameter | Wert |
|
||||
|:-----------------|:-----------------------------------------------------------------|
|
||||
|
||||
@@ -155,8 +155,8 @@ Cores 8–11 → Cortex-X4 (Performance / schnell) ← 4 Kerne
|
||||
| 101 | gitea | LXC | `10.0.0.22` | 4C | 1 GiB | 20 GB | Gitea Server + Registry |
|
||||
| 102 | gitea-runner | VM (KVM) | `10.0.0.23` | 8C | 16 GiB | 50 GB | CI/CD Runner (ARM64) |
|
||||
| 103 | immich | LXC | `10.0.0.24` | 8C | 10 GiB | 200 GB | Foto-Server |
|
||||
| 110 | meldestelle-host | VM (KVM) | `10.0.0.50` | — | — | — | Docker App-Stack |
|
||||
| 111 | ai-stack | LXC | `10.0.0.60` | 10C | — | — | Ollama + Open WebUI (geplant)|
|
||||
| 110 | meldestelle-host | VM (KVM) | `10.0.0.50` | 8C | 16 GiB | 150 GB | Docker App-Stack |
|
||||
| 120 | ai-stack | LXC | `10.0.0.60` | 10C | 48 GiB | 200 GB | Ollama + Open WebUI |
|
||||
|
||||
### Core-Pinning (Stabilisierung)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user