Projektdokumentation – MayIT Docker KI & Monitoring Platform

MayIT Docker KI & Monitoring Platform – Projektdokumentation

Diese Projektdokumentation beschreibt den Aufbau einer lokal betriebenen Docker-basierten KI- und Monitoring-Plattform auf einem Mac Mini M4. Dokumentiert werden Architektur, Dashboard-Konzept, Container-Management, Monitoring-Integration, externer Zugriff via Tailscale, operative Betriebslogik, Troubleshooting, Backup und Wiederherstellung.
Autor: MayIT Homarr + OpenWebUI Portainer Management Netdata extern Tailscale / MagicDNS

Scope & Zielbild

Zielbild: Eine kompakte, professionelle und von überall sicher erreichbare Betriebsplattform, die KI-Nutzung, Container-Management und Monitoring in einer zentralen Bedienoberfläche zusammenführt.
  • Usability: Ein zentrales Dashboard für alle wichtigen Dienste.
  • Stabilität: Saubere Stack-Struktur ohne Altlasten oder Testreste.
  • Observability: Statussichtbarkeit direkt in Homarr plus externes Monitoring.
  • Security: Kein unnötiger Public Exposure, Remote-Zugriff über Tailscale.
Projektziel: Das System soll nicht nur technisch funktionieren, sondern im Betrieb schnell diagnostizierbar, erweiterbar und sauber dokumentierbar sein.
Leitprinzip: Produktive Umstellungen erfolgen nur nach Backup, Paralleltest und Validierung über LAN und Tailscale. Erst danach werden Altzustände entfernt.

System- und Monitoring-Architektur

Architekturprinzip: Docker UI + KI Frontend + Management + externes Monitoring
LayerKomponenteFunktion
HardwareMac Mini M4Hostsystem für Docker und Ollama
DashboardHomarrZentrale Start- und Kontrolloberfläche
KI FrontendOpenWebUIBrowserbasierter Zugriff auf lokale KI
ManagementPortainerStacks, Container, Volumes und Betriebszustände
MonitoringNetdata (extern)Ergänzende System- und Infrastrukturüberwachung
VPNTailscaleGeschützter Zugriff lokal und remote per MagicDNS
LLM BackendOllama nativLokale Modellverarbeitung außerhalb von Docker
Kernidee: Die eigentliche KI-Laufzeit verbleibt bewusst nativ auf dem Mac, während die Bedien-, Management- und Monitoring-Schicht in klar voneinander getrennten Containern betrieben wird. Dieses Modell vereinfacht Wartung, Ressourcensteuerung und spätere Erweiterungen erheblich.
Benutzer
  │
  ├── Homarr         → Dashboard & Reachability
  ├── OpenWebUI      → KI Interaktion
  ├── Portainer      → Docker Management
  └── Netdata        → externes Monitoring

Mac Mini M4
  ├── Docker / frontend-stack
  │    ├── homarr
  │    └── openwebui
  ├── portainer (separat)
  └── Ollama (nativ)

Zugriffspfade
  ├── LAN      → 192.168.x.x oder Hostname
  └── Tailscale → 100.x.x.x oder MagicDNS-Hostname

Dashboards & Zugriffe

Homarr Dashboard
http://m4macmachine:7575
Zweck: Zentrale Bedienoberfläche mit Kacheln, Health-Indikatoren und Schnellzugriff.
OpenWebUI
http://m4macmachine:3000
Zweck: Browserbasierte Nutzung der lokal betriebenen KI über das Ollama-Backend.
Portainer
https://m4macmachine:9443
Zweck: Sichere Container- und Stack-Verwaltung. Zugriff ausschließlich per HTTPS.
Netdata (extern)
Externer Monitoring-Server / separate Netdata-Instanz
Zweck: Ergänzende Überwachung außerhalb des Mac-Hosts und jenseits der Homarr-Reachability-Checks.
Zugriffsschutz: Der produktive Remote-Zugriff erfolgt nicht öffentlich, sondern geschützt über Tailscale. Dadurch bleiben Management- und KI-Oberflächen ohne unnötige Internet-Exposition.

Betriebs- und Monitoring-Logik

Produktive Containerstruktur
  • Finaler Stack: frontend-stack
  • Service 1: homarr
  • Service 2: openwebui
  • Separat: portainer
Status-Pfade
curl -I http://m4macmachine:7575
curl -I http://m4macmachine:3000
curl -k -I https://m4macmachine:9443
tailscale status
tailscale ip -4
Wert / EbeneBedeutungQuelle
Homarr StatusErreichbarkeit der produktiven ServicesHomarr Healthcheck / Kachelstatus
OpenWebUI HealthService erreichbar, Container healthyDocker + Homarr
Portainer ReachabilityManagement-Layer erreichbarHTTPS-Check
Tailscale ReachabilityRemote-Zugriff über 100.x.x.x oder HostnameTailscale
Hostname ResolutionMagicDNS-Auflösung auf Tailscale-IPTailscale / Hostname-Zugriff
NetdataExterne Infrastruktur- und SystemmetrikenSeparater Monitoring-Server
Backup-ArtefakteTar-Archive der produktiven VolumesBusyBox tar / lokaler Backup-Pfad

Dashboard-Kacheln

🧠 KI
KachelInhalt
OpenWebUIPrimärer Einstiegspunkt für KI-Nutzung
StatuspunktDirekte Reachability-Kontrolle unten rechts
ÖffnungsverhaltenNeuer Tab / Hostname-basierter Zugriff
🖥️ Infrastruktur
KachelInhalt
PortainerContainer-/Stack-Management
HomarrDashboard / Control Center
StatuspunkteSofortige optische Erreichbarkeitsanzeige
Monitoring-Erweiterung
  • Netdata als separate Monitoring-Kachel integrierbar
  • Externer Monitoring-Server kann über Hostname/Tailscale eingebunden werden
  • Dashboard ist damit auf spätere NOC-/Monitoring-Erweiterung vorbereitet
UX-Prinzip
  • Wichtigste App oben: OpenWebUI
  • Management darunter: Portainer und Homarr
  • Kurze Klickwege, Status mit einem Blick erfassbar

Health-Scores & Bewertungslogik

Homarr Reachability Score

Praktisch umgesetzter, visueller Basis-Healthcheck über Kachelstatusfarben.

StatusBedeutung
GrünDienst erreichbar und funktional
RotDienst nicht erreichbar / gestoppt / gestört
Blau (Pause/Test)Temporärer Betriebszustand im manuellen Test
Betriebslogik

Das Projekt nutzt bewusst eine schlanke, aber belastbare Bewertungslogik.

EinflussBewertung
Service erreichbarbetriebsbereit
Service nicht erreichbarIncident / Eingriffsbedarf
Tailscale Zugriff erfolgreichRemote-Betrieb funktionsfähig
Backup erfolgreichRollback-Punkt gesichert
Bewertung: Dieses Projekt nutzt bewusst keine künstlich überladene Health-Metrik, sondern verbindet Homarr-Status, Container-Health, Tailscale-Tests und externe Netdata-Metriken zu einer praxisnahen operativen Bewertungslogik.

Security Monitoring

Tailscale Remote Security
  • Remote-Zugriff erfolgt ausschließlich über Tailscale
  • MagicDNS-Hostname m4macmachine ersetzt schwer merkbare IPs
  • Auch Hostname-Zugriffe laufen im Fremdnetz über Tailscale
  • Kein unnötiges Public Exposure der Management-Oberflächen
Portainer Zugriff
  • Port 9443 nur per HTTPS nutzen
  • Fehlerbild HTTP request to HTTPS server wurde identifiziert und sauber eingeordnet
  • Hostname- und Tailscale-Zugriffe wurden erfolgreich validiert
Container-Hygiene
  • Alte Test- und Prod-Reste wurden vollständig bereinigt
  • Nur produktive Container und Volumes verbleiben im Endzustand
  • Parallele Migration wurde kontrolliert über Alternativports abgewickelt
Monitoring-Security
  • Netdata verbleibt absichtlich auf separatem Server
  • Dadurch entsteht zusätzliche Sicht auf das Gesamtsystem
  • Monitoring und KI-Host bleiben logisch getrennt

Alerts & Eskalation

Aktive Alert-Logik
AlertTriggerLevel
OpenWebUI downKachelstatus rot / HTTP-Check fehlschlägtHigh
Homarr downDashboard nicht erreichbarHigh
Portainer down9443 via HTTPS nicht erreichbarHigh
Tailscale remote failedHostname und 100.x.x.x nicht erreichbarHigh
Netdata extern kritischCPU/RAM/Disk Alarm auf externer InstanzCritical
Backup missingFinale Tar-Artefakte fehlen / Backup-Cut nicht vorhandenCritical
Alert-Panel Verhalten
  • Alle Homarr-Kacheln grün = betriebsbereit
  • Pause-/Stop-Test löst Farbwechsel reproduzierbar aus
  • Netdata ergänzt die reine Reachability um Systemzustand
  • Portainer dient bei Alarmen als operative Eingriffsoberfläche
Beispiel:
HIGH: OpenWebUI not reachable
HIGH: Portainer HTTPS path failed
CRITICAL: External Netdata reports host overload
CRITICAL: Final backup artifacts missing

Betrieb & Aufgabenmodell

Daily
• Homarr prüfen
• OpenWebUI testen
• Portainer Status prüfen
• Remote-Zugriff validieren
Weekly
• Netdata extern sichten
• Backup-Artefakte prüfen
• Container-/Stack-Zustände prüfen
• Kachel- und Healthchecks validieren
Change
• Backup vor Änderung
• Paralleltest
• LAN + Tailscale validieren
• Altzustände konsequent entfernen
Betriebsprinzip: Das Projekt setzt auf kleine, kontrollierte Änderungen statt großer Komplettumbauten. Jede produktive Verbesserung wurde parallel getestet, validiert und erst danach übernommen.

Troubleshooting

Homarr
  • 500 Fehler durch ungültigen SECRET_ENCRYPTION_KEY
  • unhealthy Altzustand durch alte Struktur und Altvolumes
  • UI-Zittern im Edit Mode als Homarr-/Browser-Bug erkannt
OpenWebUI / Zugriff
  • Kachelproblem durch localhost/iframe/Öffnungsverhalten
  • Hostname-Zugriff als stabile Lösung implementiert
  • Frischer Datenzustand bewusst akzeptiert und dokumentiert
docker ps -a
docker logs --tail 100 homarr
docker logs --tail 100 openwebui
curl -I http://m4macmachine:7575
curl -I http://m4macmachine:3000
curl -k -I https://m4macmachine:9443
tailscale status
tailscale ip -4

Backup & Recovery

Backup
mkdir -p ~/docker-backup-final

docker run --rm -v frontend-stack_homarr-stack-v1_homarr_v1_appdata:/source -v ~/docker-backup-final:/backup busybox tar czf /backup/homarr_final.tar.gz -C /source .

docker run --rm -v frontend-stack_openwebui-stack-v1_openwebui_v1_data:/source -v ~/docker-backup-final:/backup busybox tar czf /backup/openwebui_final.tar.gz -C /source .

docker run --rm -v portainer_data:/source -v ~/docker-backup-final:/backup busybox tar czf /backup/portainer_final.tar.gz -C /source .
Recovery
docker run --rm -v frontend-stack_homarr-stack-v1_homarr_v1_appdata:/target -v ~/docker-backup-final:/backup busybox sh -c "cd /target && tar xzf /backup/homarr_final.tar.gz"

docker run --rm -v frontend-stack_openwebui-stack-v1_openwebui_v1_data:/target -v ~/docker-backup-final:/backup busybox sh -c "cd /target && tar xzf /backup/openwebui_final.tar.gz"

docker restart homarr
docker restart openwebui
Prinzip: Vor jedem größeren Ausbau einen sauberen Cut erzeugen und exakt diesen Zustand als belastbaren Wiederherstellungspunkt dokumentieren.

Anhang

ElementPfad / Zweck
Finaler Stackfrontend-stack
Homarr Volumefrontend-stack_homarr-stack-v1_homarr_v1_appdata
OpenWebUI Volumefrontend-stack_openwebui-stack-v1_openwebui_v1_data
Portainer Volumeportainer_data
Homarr URLhttp://m4macmachine:7575
OpenWebUI URLhttp://m4macmachine:3000
Portainer URLhttps://m4macmachine:9443
Tailscale IP100.x.x.x
Backup-Pfad~/docker-backup-final
Monitoring-ErweiterungExterne Netdata-Instanz