Wenn du mit Ollama arbeitest – sei es lokal, in Docker, im Netzwerk oder hinter einem Reverse Proxy – ist eine zentrale Frage:
Wie kann ich den URL/Host ändern, den die Ollama-Bibliothek verwendet, um Anfragen zu senden?
Viele Entwickler probieren, das direkt im Prompt zu ändern … aber das funktioniert nicht. Der “Host” wird nicht im Prompt ausgewertet, sondern direkt in der Client-Konfiguration.
Dieser Beitrag erklärt …
✔️ Was der Ollama-URL überhaupt ist
✔️ Warum er wichtig ist
✔️ Wie du ihn in verschiedenen Setups kontrollierst
✔️ Beispiele in Python
✔️ Tipps für Docker, Remote-Server & Production
🧩 Was bedeutet “Ollama-URL”?
Wenn du mit der Ollama-Bibliothek eine Anfrage wie diese schickst:
res = ollama.chat(model=model, messages=[...])
… dann baut die Bibliothek intern einen HTTP-Client, der standardmäßig gegen den lokalen Ollama-Server auf Port 11434 spricht:
http://localhost:11434
👉 Das ist der Ollama-Base-URL.
Wenn dein Ollama-Daemon irgendwo anders läuft – lokal auf einem anderen Port, per Docker-Container, auf einem anderen Server im Netzwerk oder hinter einem Proxy – dann musst du diesen URL anpassen.
🚫 Warum du den URL nicht im Prompt ändern kannst
Ein häufiger Anfängerfehler ist:
Ändere hier den URL: http://server:11434
im Prompt selbst zu schreiben.
❌ Das klappt nicht.
Prompts werden an das Modell geschickt – sie beeinflussen nicht den HTTP-Client oder die Bibliothek.
Deshalb:
Der Ollama-URL wird nicht durch Inhalte im Prompt gesteuert.
Er wird durch die Client-Konfiguration / Umgebungsvariable gesteuert.
🛠️ Drei Wege, den Ollama-URL zu ändern
1) 🔧 Per Umgebungsvariable OLLAMA_HOST (einfach & global)
Dies ist der gängigste Weg – besonders für lokale Entwicklung und Server.
Linux / macOS
export OLLAMA_HOST="http://192.168.1.100:11434"
Windows PowerShell
setx OLLAMA_HOST "http://192.168.1.100:11434"
⚠️ Wichtig: Terminal/IDE neu starten, damit die Variable übernommen wird.
Vorteile
- Global gültig für alle Skripte
- Kein Code-Änderung nötig
Nachteile
- Weniger flexibel, wenn mehrere Instanzen im Spiel sind
2) 🧠 Direkt im Python-Client (empfohlen bei mehreren Hosts)
Wenn du mehrere Ollama-Server hast oder klar im Code steuern willst:
from ollama import Client
client = Client(host="http://192.168.1.100:11434")
res = client.chat(
model=model,
messages=[
{
"role": "user",
"content": prompt_text
}
]
)
print(res)
So vermeidest du Abhängigkeiten von Umgebungsvariablen.
Tipp: Das ist ideal für Microservices, APIs, Tests und automatische Deployments.
3) 🚢 Docker & Netzwerk-Setups
Wenn Ollama in Docker läuft, musst du beachten:
- Docker-Container kommunizieren nicht automatisch über
localhostmit dem Host. - Je nach Setup musst du z. B.:
docker run --network="host" ollama/ollama
oder
docker run -p 11434:11434 ollama/ollama
… um den Host erreichbar zu machen.
Dann kannst du wieder entweder die Umgebungsvariable nutzen oder im Client setzen.
🔍 Debugging: Wie erkennst du den aktuell verwendeten Host?
Terminal
echo $OLLAMA_HOST
Python-Code
import os
print(os.getenv("OLLAMA_HOST"))
Wenn hier nichts steht, verwendet Ollama den Standard:
http://localhost:11434
🕸️ Edge-Cases & Fallstricke
❗ SSL & HTTPS
Wenn du Ollama hinter einen Reverse-Proxy mit HTTPS stellst:
- Benenne deine Variable entsprechend:
export OLLAMA_HOST="https://ollama.meinedomain.de" - Achte auf valide Zertifikate oder aktiviere Trust/CA im Client.
❗ Authentifizierung
Ollama selbst nutzt keine Auth per Default — wenn du vor einem Auth-Proxy sitzt, musst du:
- Token im Proxy konfigurieren
- Header im Client setzen
❗ CORS & Browser-Clients
Ollama ist ein Backend-Server. Browser müssen über dein Backend proxied werden.
📌 Zusammenfassung
| Methode | Flexibilität | Empfehlung |
|---|---|---|
| Umgebungsvariable | mittel | gut für lokale Dev |
| Client-Config im Code | hoch | best geeignet |
| Docker-Netzwerk | abhängig | wenn Container im Spiel |
Wichtig: Niemand liest den URL aus dem Prompt!
Der Prompt bleibt nur für die Modell-Eingabe relevant.
💡 Bonus: Beispiel-Projektstruktur
my_ai_project/
├── .env
├── main.py
├── requirements.txt
└── docker-compose.yml
.env
OLLAMA_HOST=http://ollama-server:11434
main.py
from ollama import Client
import os
ollama_host = os.getenv("OLLAMA_HOST")
client = Client(host=ollama_host)
# …