Ollama-Stack¶
Lokale LLM-Inferenz auf der Intel-iGPU mit Open WebUI als Frontend, dazu RAG über Qdrant und Dokument-Extraktion über Docling. Ollama · Open WebUI
Fachlich abgelöst durch den AI-Server
Seit Juli 2026 trägt der AI-Server alle Sprachmodelle des Homelabs — mit deutlich mehr Speicher, MoE-Modellen und gemessenen Rollen. Dieser Stack läuft weiter, ist aber der Ablösung vorgesehen. Was hier noch fehlt: Die RAG-Funktion (Qdrant + Docling) ist auf dem AI-Server noch nicht nachgebaut. Bis dahin bleibt der Stack in Betrieb.
Zugriff¶
| Web-UI | https://chat.home.robinwerner.net (hinter Traefik) |
| Ollama IPEX (Text, Embeddings) | http://10.10.10.3:11434 |
| Ollama Vision | http://10.10.10.3:11435 |
| Qdrant | intern, http://qdrant:6333 |
| Docling | intern, http://docling-serve:5001 |
Netz: ollama_internal, Open WebUI zusätzlich in proxy_network. Prometheus
hängt ebenfalls in ollama_internal, um dort scrapen zu können.
Container¶
| Container | Zweck | Basis |
|---|---|---|
ollama-ipex |
Text-LLMs und Embeddings auf der Intel-iGPU | Eigenbau aus vendor/ollama-webui-intel (IPEX-LLM via oneAPI/SYCL) |
ollama-vision |
Vision-Modelle auf der CPU | ollama/ollama |
qdrant |
Vektor-Datenbank für RAG | qdrant/qdrant |
docling-serve |
OCR und Dokument-Extraktion nach Markdown | quay.io/docling-project/docling-serve |
open-webui |
Chat-Frontend mit Multi-Backend | ghcr.io/open-webui/open-webui |
Beide Ollama-Instanzen mounten /dev/dri; die IPEX-Instanz braucht zusätzlich
die oneAPI-Umgebungsvariablen. Modelle bleiben dauerhaft geladen
(OLLAMA_KEEP_ALIVE=-1).
Pfade¶
| Pfad | Zweck |
|---|---|
/mnt/ssd/container-data/ollama/ipex |
IPEX-Modelle |
/mnt/ssd/container-data/ollama/vision |
Vision-Modelle |
/mnt/ssd/container-data/ollama/qdrant |
Qdrant-Vektorspeicher |
/mnt/ssd/container-data/ollama/docling |
Docling-Modell-Cache |
/mnt/ssd/container-data/ollama/openwebui |
Open WebUI: Datenbank und Uploads |
Alle Pfade sind im Borgmatic-Backup enthalten.
Secrets¶
Verwaltet über den Infisical-Agent (Pfad /ollama), der nach
/run/infisical/ollama.env rendert.
| Key | Wofür |
|---|---|
RENDER_GID |
GID der render-Gruppe auf dem NUC (optional, Default 109) |
QDRANT_API_KEY |
Open-WebUI-seitige Authentifizierung zu Qdrant |
QDRANT__SERVICE__API_KEY |
Qdrant-seitig, derselbe Wert |
WEBUI_SECRET_KEY |
Signatur der Open-WebUI-Cookies |
EXA_API_KEY |
Web-Suche (optional) |
Betrieb¶
cd /opt/rpi-docker-compose/ollama
docker compose up -d
docker compose logs -f
# Text-Modelle (IPEX-Instanz)
docker exec ollama-ipex /usr/local/lib/python3.11/dist-packages/bigdl/cpp/libs/ollama/ollama list
docker exec ollama-ipex /usr/local/lib/python3.11/dist-packages/bigdl/cpp/libs/ollama/ollama pull <modell>
# Vision-Modelle
docker exec ollama-vision ollama list
Der Pfad zum Ollama-Binary in der IPEX-Instanz ist ungewöhnlich, weil das
Binary aus dem BigDL-Paket kommt und nicht im PATH liegt.
Voraussetzung¶
infisical-agent.service muss auf dem NUC laufen und
/run/infisical/ollama.env gerendert haben, sonst startet der Stack ohne seine
Secrets.