# Installation Ollama und OpenWebUI

## 1. Verzeichnisstruktur vorbereiten

Alle Containerdaten liegen unter `/opt/docker`, damit System und Daten sauber getrennt bleiben:

<div class="contain-inline-size rounded-2xl relative bg-token-sidebar-surface-primary" id="bkmrk-sudo-mkdir--p-%2Fopt%2Fd"><div class="sticky top-9"><div class="absolute end-0 bottom-0 flex h-9 items-center pe-2"><div class="bg-token-bg-elevated-secondary text-token-text-secondary flex items-center gap-4 rounded-sm px-2 font-sans text-xs">  
</div></div></div><div class="overflow-y-auto p-4" dir="ltr"><code>sudo &#60;span class&#61;&#34;hljs&#45;built&#95;in&#34;&#62;mkdir&#60;&#47;span&#62; &#45;p &#47;opt&#47;docker&#47;ollamasudo &#60;span class&#61;&#34;hljs&#45;built&#95;in&#34;&#62;mkdir&#60;&#47;span&#62; &#45;p &#47;opt&#47;docker&#47;open&#45;webui</code></div></div>Optional Zugriffsrechte setzen:

<div class="contain-inline-size rounded-2xl relative bg-token-sidebar-surface-primary" id="bkmrk-sudo-chown--r-kiadmi"><div class="sticky top-9"><div class="absolute end-0 bottom-0 flex h-9 items-center pe-2"><div class="bg-token-bg-elevated-secondary text-token-text-secondary flex items-center gap-4 rounded-sm px-2 font-sans text-xs">  
</div></div></div><div class="overflow-y-auto p-4" dir="ltr"><code>sudo &#60;span class&#61;&#34;hljs&#45;built&#95;in&#34;&#62;chown&#60;&#47;span&#62; &#45;R kiadmin&#58;docker &#47;opt&#47;docker</code></div></div>---

## 2. Docker-Compose Datei

Pfad: `/opt/docker/docker-compose.yml`

<div class="contain-inline-size rounded-2xl relative bg-token-sidebar-surface-primary" id="bkmrk-version%3A-%273.8%27-servi"><div class="sticky top-9"><div class="absolute end-0 bottom-0 flex h-9 items-center pe-2"><div class="bg-token-bg-elevated-secondary text-token-text-secondary flex items-center gap-4 rounded-sm px-2 font-sans text-xs">  
</div></div></div><div class="overflow-y-auto p-4" dir="ltr"><code>&#60;span class&#61;&#34;hljs&#45;attr&#34;&#62;version&#58;&#60;&#47;span&#62; &#60;span class&#61;&#34;hljs&#45;string&#34;&#62;&#39;3&#46;8&#39;&#60;&#47;span&#62;&#60;span class&#61;&#34;hljs&#45;attr&#34;&#62;services&#58;&#60;&#47;span&#62;  &#60;span class&#61;&#34;hljs&#45;attr&#34;&#62;ollama&#58;&#60;&#47;span&#62;    &#60;span class&#61;&#34;hljs&#45;attr&#34;&#62;image&#58;&#60;&#47;span&#62; &#60;span class&#61;&#34;hljs&#45;string&#34;&#62;ollama&#47;ollama&#60;&#47;span&#62;    &#60;span class&#61;&#34;hljs&#45;attr&#34;&#62;container&#95;name&#58;&#60;&#47;span&#62; &#60;span class&#61;&#34;hljs&#45;string&#34;&#62;ollama&#60;&#47;span&#62;    &#60;span class&#61;&#34;hljs&#45;attr&#34;&#62;ports&#58;&#60;&#47;span&#62;      &#60;span class&#61;&#34;hljs&#45;bullet&#34;&#62;&#45;&#60;&#47;span&#62; &#60;span class&#61;&#34;hljs&#45;string&#34;&#62;&#34;11434&#58;11434&#34;&#60;&#47;span&#62;    &#60;span class&#61;&#34;hljs&#45;attr&#34;&#62;restart&#58;&#60;&#47;span&#62; &#60;span class&#61;&#34;hljs&#45;string&#34;&#62;always&#60;&#47;span&#62;    &#60;span class&#61;&#34;hljs&#45;attr&#34;&#62;runtime&#58;&#60;&#47;span&#62; &#60;span class&#61;&#34;hljs&#45;string&#34;&#62;nvidia&#60;&#47;span&#62;    &#60;span class&#61;&#34;hljs&#45;attr&#34;&#62;volumes&#58;&#60;&#47;span&#62;      &#60;span class&#61;&#34;hljs&#45;bullet&#34;&#62;&#45;&#60;&#47;span&#62; &#60;span class&#61;&#34;hljs&#45;string&#34;&#62;&#47;opt&#47;docker&#47;ollama&#58;&#47;root&#47;&#46;ollama&#60;&#47;span&#62;  &#60;span class&#61;&#34;hljs&#45;attr&#34;&#62;openwebui&#58;&#60;&#47;span&#62;    &#60;span class&#61;&#34;hljs&#45;attr&#34;&#62;image&#58;&#60;&#47;span&#62; &#60;span class&#61;&#34;hljs&#45;string&#34;&#62;ghcr&#46;io&#47;open&#45;webui&#47;open&#45;webui&#58;ollama&#60;&#47;span&#62;    &#60;span class&#61;&#34;hljs&#45;attr&#34;&#62;container&#95;name&#58;&#60;&#47;span&#62; &#60;span class&#61;&#34;hljs&#45;string&#34;&#62;open&#45;webui&#60;&#47;span&#62;    &#60;span class&#61;&#34;hljs&#45;attr&#34;&#62;restart&#58;&#60;&#47;span&#62; &#60;span class&#61;&#34;hljs&#45;string&#34;&#62;always&#60;&#47;span&#62;    &#60;span class&#61;&#34;hljs&#45;attr&#34;&#62;runtime&#58;&#60;&#47;span&#62; &#60;span class&#61;&#34;hljs&#45;string&#34;&#62;nvidia&#60;&#47;span&#62;    &#60;span class&#61;&#34;hljs&#45;attr&#34;&#62;ports&#58;&#60;&#47;span&#62;      &#60;span class&#61;&#34;hljs&#45;bullet&#34;&#62;&#45;&#60;&#47;span&#62; &#60;span class&#61;&#34;hljs&#45;string&#34;&#62;&#34;3000&#58;8080&#34;&#60;&#47;span&#62;    &#60;span class&#61;&#34;hljs&#45;attr&#34;&#62;environment&#58;&#60;&#47;span&#62;      &#60;span class&#61;&#34;hljs&#45;bullet&#34;&#62;&#45;&#60;&#47;span&#62; &#60;span class&#61;&#34;hljs&#45;string&#34;&#62;OLLAMA&#95;API&#95;BASE&#95;URL&#61;http&#58;&#47;&#47;ollama&#58;11434&#60;&#47;span&#62;    &#60;span class&#61;&#34;hljs&#45;attr&#34;&#62;volumes&#58;&#60;&#47;span&#62;      &#60;span class&#61;&#34;hljs&#45;bullet&#34;&#62;&#45;&#60;&#47;span&#62; &#60;span class&#61;&#34;hljs&#45;string&#34;&#62;&#47;opt&#47;docker&#47;open&#45;webui&#58;&#47;app&#47;backend&#47;data&#60;&#47;span&#62;      &#60;span class&#61;&#34;hljs&#45;comment&#34;&#62;&#35; Eigene CSS&#45;Anpassungen &#40;optional&#41;&#60;&#47;span&#62;      &#60;span class&#61;&#34;hljs&#45;comment&#34;&#62;&#35; &#45; &#47;home&#47;pleibling&#47;docker&#47;ai&#47;custom&#46;css&#58;&#47;app&#47;build&#47;static&#47;custom&#46;css&#58;ro&#60;&#47;span&#62;    &#60;span class&#61;&#34;hljs&#45;attr&#34;&#62;depends&#95;on&#58;&#60;&#47;span&#62;      &#60;span class&#61;&#34;hljs&#45;bullet&#34;&#62;&#45;&#60;&#47;span&#62; &#60;span class&#61;&#34;hljs&#45;string&#34;&#62;ollama&#60;&#47;span&#62;</code></div></div>---

## 3. Container starten

<div class="contain-inline-size rounded-2xl relative bg-token-sidebar-surface-primary" id="bkmrk-cd-%2Fopt%2Fdocker-docke"><div class="sticky top-9"><div class="absolute end-0 bottom-0 flex h-9 items-center pe-2"><div class="bg-token-bg-elevated-secondary text-token-text-secondary flex items-center gap-4 rounded-sm px-2 font-sans text-xs">  
</div></div></div><div class="overflow-y-auto p-4" dir="ltr"><code>&#60;span class&#61;&#34;hljs&#45;built&#95;in&#34;&#62;cd&#60;&#47;span&#62; &#47;opt&#47;dockerdocker compose up &#45;d</code></div></div>Status prüfen:

<div class="contain-inline-size rounded-2xl relative bg-token-sidebar-surface-primary" id="bkmrk-docker-ps"><div class="sticky top-9"><div class="absolute end-0 bottom-0 flex h-9 items-center pe-2"><div class="bg-token-bg-elevated-secondary text-token-text-secondary flex items-center gap-4 rounded-sm px-2 font-sans text-xs">  
</div></div></div><div class="overflow-y-auto p-4" dir="ltr"><code>docker ps</code></div></div>

- Ollama-API → `http://<Server-IP>:11434`
- OpenWebUI → `http://<Server-IP>:3000`

---

## 4. Modelle installieren

Ollama lädt Modelle nach Bedarf.  
Installation erfolgt z. B. über:

<div class="contain-inline-size rounded-2xl relative bg-token-sidebar-surface-primary" id="bkmrk-docker-exec--it-olla"><div class="sticky top-9"><div class="absolute end-0 bottom-0 flex h-9 items-center pe-2"><div class="bg-token-bg-elevated-secondary text-token-text-secondary flex items-center gap-4 rounded-sm px-2 font-sans text-xs">  
</div></div></div><div class="overflow-y-auto p-4" dir="ltr"><code>docker &#60;span class&#61;&#34;hljs&#45;built&#95;in&#34;&#62;exec&#60;&#47;span&#62; &#45;it ollama ollama pull gpt&#45;oss&#58;20b</code></div></div>**Verwendete LLMs in dieser Umgebung:**

- **GPT-OSS:20b** → Hauptmodell (groß, sehr leistungsfähig)
- **Llama 3.1:12b**
- **Mistral:7b**
- **Gemma3:12b**
- **DeepSeek-R1:8b**
- **Qwen3:14b**

Optional kannst du auch in OpenWebUI für jedes Modell eigene Presets/Workspaces definieren.

---

## 5. Update der Container

<div class="contain-inline-size rounded-2xl relative bg-token-sidebar-surface-primary" id="bkmrk-cd-%2Fopt%2Fdocker-docke-1"><div class="sticky top-9"><div class="absolute end-0 bottom-0 flex h-9 items-center pe-2"><div class="bg-token-bg-elevated-secondary text-token-text-secondary flex items-center gap-4 rounded-sm px-2 font-sans text-xs">  
</div></div></div><div class="overflow-y-auto p-4" dir="ltr"><code>&#60;span class&#61;&#34;hljs&#45;built&#95;in&#34;&#62;cd&#60;&#47;span&#62; &#47;opt&#47;dockerdocker compose pulldocker compose up &#45;d</code></div></div>---

## 6. Backup-Hinweis

Da alle persistenten Daten in `/opt/docker/ollama` und `/opt/docker/open-webui` liegen, reicht ein Backup dieser Ordner.

---