Lokale KI-Plattform

Reproduzierbarer Docker-Stack für einen privaten Qwen-/llama.cpp-Host mit Open WebUI, Profilumschaltung, integrierter Vision, lokaler Websuche und WireGuard-Isolation.

Zielbild

  • Debian 13 als schlanker GPU-Host
  • llama.cpp selbst gebaut und auf einen geprüften Commit festgelegt
  • vier getrennte Profilcontainer, davon immer exakt einer aktiv
  • /fast, /medium, /long und /experimental über den Profile Router
  • Open WebUI als einzige normale Oberfläche
  • SearXNG/Web-MCP ohne externen API-Schlüssel
  • zentrale MCP-Werkzeugebene: getrennte Container für Web, HA, ARR, Unraid und Sandbox, gemeinsam nutzbar durch Open WebUI und andere Clients
  • KI-Dienste ausschließlich über die WireGuard-Adresse erreichbar
  • KI-Ausgangsverkehr über das Heimnetz, bei Tunnelausfall fail-closed
  • keine Secrets, Chats, Logs oder Modelldateien im Repository

Schnellstart

Auf einem frisch installierten Debian 12/13 amd64:

cp config/install.env.example config/install.env
chmod 600 config/install.env
editor config/install.env
sudo ./install.sh --config config/install.env

Installiert werden Docker CE, NVIDIA Container Toolkit, WireGuard, der gepinnt gebaute llama.cpp-Server, die Modelle und der komplette Compose-Stack. Bei einer erstmaligen NVIDIA-Treiberinstallation fordert das Skript einen Neustart an; danach wird derselbe Befehl erneut ausgeführt.

Dienste

Dienst Erreichbarkeit Zweck
Open WebUI <WG-IP>:8080 Chat und Administration
Profile Router <WG-IP>:8081 OpenAI-kompatible API, Profilwahl
llama.cpp nur Docker-intern Inferenz und integrierte Vision
Profile Controller nur Docker-intern eng begrenzter Containerwechsel
Piper nur Docker-intern lokale deutsche Sprachausgabe
MCP-Tool-Stack nur Docker-intern Web, Home Assistant, ARR und Unraid

Piper-TTS ist ein reproduzierbarer Kerndienst; STT und Bildgenerierung bleiben optionale Dienste. Web-, Home-Assistant-, ARR- und Unraid-Werkzeuge besitzen dagegen bereits getrennte Container unter platform/mcp/. Open WebUI erreicht sie ausschließlich über das interne mike-ai-tools-Netz; llama.cpp erhält keine MCP-Konfiguration und keine Infrastruktur-Secrets. Die Bildanalyse ist Bestandteil des multimodalen Qwen-Modells.

Open WebUI erhält über die vorgesehenen statischen Anpassungspunkte ein globales Dark-Theme namens Midnight Aurora. CSS und Start-Loader liegen unter platform/openwebui/theme/ und werden schreibgeschützt in den Container eingebunden. Der Hintergrund bewegt sich bewusst langsam; Browser mit aktivierter Option „Bewegung reduzieren“ erhalten automatisch eine unbewegte Variante.

Dokumentation

Wichtige Dateien

install.sh                              kompletter Bootstrap
config/install.env.example              öffentliche Konfigurationsvorlage
compose.yaml                            produktiver Stack
platform/docker/llama-cpp/Dockerfile    CUDA-llama.cpp-Build
platform/docker/profile-controller/     sichere Profilsteuerung
router/                                 OpenAI-kompatibler Profile Router

Sicherheitsregeln

  • config/install.env ist lokal, Modus 0600, und wird ignoriert.
  • API-, Controller-, WebUI- und WireGuard-Schlüssel entstehen erst am Host.
  • Nur der kleine Profile Controller sieht den Docker-Socket.
  • llama.cpp veröffentlicht weder Port noch WebUI.
  • Ein Blackhole-Fallback verhindert Traffic-Leaks bei WireGuard-Ausfall.
  • Das Uni-Netz und das Heimnetz dürfen diesen Host nicht als Transit benutzen.

Die Profilwerte sind Ausgangswerte. Nach dem Neuaufbau werden RTX 5080 und RTX 3060 mit der bestehenden Standard-Testserie neu vermessen, bevor die zweite GPU in ein Produktionsprofil einfließt.

S
Description
No description provided
Readme
8.6 MiB
0 Stars 1 Watchers 0 Forks
Languages
Python 77.5%
Shell 17%
TypeScript 1.9%
Dockerfile 1.4%
Jinja 1.4%
Other 0.7%