RackDiff
Alle Guides

Ollama auf dem VPS installieren: Open WebUI, HTTPS mit Traefik und n8n-Anbindung

Ollama und Open WebUI per Docker Compose auf einem Linux-VPS starten, den Server mit einer Firewall absichern, HTTPS mit Traefik einrichten und n8n anbinden. Befehle laut Projekt-Doku.

Dirk Hesse
14. Dezember 2025
12 Min. Lesezeit

Ollama führt Sprachmodelle wie Llama, Qwen oder Mistral auf deinem eigenen Server aus; Ollama läuft lokal (laut Ollama-FAQ, Stand: 08.11.2026).

Dafür brauchst du einen VPS (Virtual Private Server, ein virtueller Server im Rechenzentrum) mit genug Arbeitsspeicher für dein Modell; wie viel das ist, steht im Abschnitt „Modelle und Speicherbedarf“.

In diesem Guide installierst du Docker, sicherst den Server mit einer Firewall ab, startest Ollama mit der Web-Oberfläche Open WebUI und richtest HTTPS mit Traefik ein.

Welcher VPS für dein Modell?

Der Ollama-Rechner zeigt passende Server für Llama, Qwen und weitere Modelle; wie die Liste gewichtet ist, steht auf der Methodik-Seite.

Zum Ollama VPS-Rechner

Voraussetzungen

Du brauchst:

  • Einen VPS mit genug Arbeitsspeicher für dein Modell (Größen im Abschnitt „Modelle und Speicherbedarf“, den Gesamtbedarf schätzt der Ollama-Rechner). Tarife und Preise inkl. USt zeigt der VPS-Vergleich.
  • Ubuntu in einer von Docker unterstützten Version, etwa 22.04, 24.04 oder 26.04 LTS (laut Docker-Doku, Stand: 08.11.2026)
  • SSH-Zugang zum Server
  • Optional: eine Domain für HTTPS

Server für Ollama gesucht?

Der VPS-Vergleich zeigt Tarife mit Arbeitsspeicher, vCPU und Preis inkl. USt.

Zum VPS-Vergleich

Schritt 1: Docker installieren

Installiere Docker über das apt-Repository, wie es die Docker-Doku beschreibt. Das Komfort-Skript get.docker.com ist laut Docker-Doku nicht für Produktivumgebungen gedacht (laut Docker-Doku, Stand: 08.11.2026).

# GPG-Schlüssel von Docker hinzufügen
sudo apt update
sudo apt install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc

# Repository eintragen
sudo tee /etc/apt/sources.list.d/docker.sources <<EOF
Types: deb
URIs: https://download.docker.com/linux/ubuntu
Suites: $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}")
Components: stable
Architectures: $(dpkg --print-architecture)
Signed-By: /etc/apt/keyrings/docker.asc
EOF
sudo apt update

# Docker Engine und Compose-Plugin installieren
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

Mitglieder der Gruppe docker haben Root-Rechte (laut Docker-Doku, Stand: 08.11.2026). Die Befehle in diesem Guide stehen ohne sudo; bist du nicht in der Gruppe docker, stellst du sudo voran.


Schritt 2: Firewall einrichten

Gib SSH vor ufw enable frei, sonst kann die Verbindung abbrechen; eingehender Verkehr ist standardmäßig gesperrt (laut Ubuntu-Manpage, Stand: 08.11.2026). Betreibst du SSH auf einem anderen Port, gib diesen frei. Die Ports 80 und 443 braucht Traefik in Schritt 5.

sudo ufw allow proto tcp from any to any port 22
sudo ufw allow proto tcp from any to any port 80
sudo ufw allow proto tcp from any to any port 443
sudo ufw enable

Ports, die Docker veröffentlicht, umgehen ufw (laut Docker-Doku, Stand: 08.11.2026). Ohne Host-Adresse veröffentlicht Docker einen Port auf allen Adressen (laut Docker-Doku, Stand: 08.11.2026). Deshalb veröffentlicht Ollama in diesem Guide keinen Port, und Open WebUI ist vor dem HTTPS-Schritt nur an 127.0.0.1:3000 gebunden.


Schritt 3: Ollama und Open WebUI mit Docker Compose starten

Ollama läuft als Dienst ollama mit dem Image ollama/ollama; die Modelle liegen im Volume ollama (laut Ollama-Doku, Stand: 08.11.2026). Ollama gibt es auch als Linux-Installation ohne Docker (laut Ollama-Doku, Stand: 08.11.2026). Open WebUI ist eine Web-Oberfläche für Ollama; Chats, Benutzer und Einstellungen liegen im Volume open-webui (laut Open-WebUI-Doku, Stand: 08.11.2026).

Lege ein Verzeichnis an und erzeuge einen Schlüssel für WEBUI_SECRET_KEY mit openssl rand -hex 32 (laut Open-WebUI-Doku, Stand: 08.11.2026):

mkdir -p ~/ollama && cd ~/ollama
openssl rand -hex 32

Lege dort die Datei compose.yaml an und trage den Schlüssel ein:

services:
  ollama:
    image: ollama/ollama
    restart: always
    volumes:
      - ollama:/root/.ollama
    networks:
      - ollama-net

  open-webui:
    image: ghcr.io/open-webui/open-webui:main
    restart: always
    ports:
      - "127.0.0.1:3000:8080"
    volumes:
      - open-webui:/app/backend/data
    environment:
      - OLLAMA_BASE_URL=http://ollama:11434
      - WEBUI_SECRET_KEY=DEIN_SCHLUESSEL
    networks:
      - ollama-net

networks:
  ollama-net:
    name: ollama-net

volumes:
  ollama:
  open-webui:

Open WebUI erreicht Ollama über den Dienstnamen; die Adresse setzt OLLAMA_BASE_URL (laut Open-WebUI-Doku, Stand: 08.11.2026). Mit name: ollama-net heißt das Netz genau so, ohne Projektpräfix; Container aus anderen Compose-Projekten können es dann einbinden (laut Docker-Doku, Stand: 08.11.2026). Eine version-Zeile brauchst du nicht, sie ist obsolet (laut Docker-Doku, Stand: 08.11.2026).

docker compose up -d

Öffne von deinem Rechner einen SSH-Tunnel mit ssh -L 3000:127.0.0.1:3000 user@SERVER-IP (laut Ubuntu-Manpage, Stand: 08.11.2026) und rufe http://localhost:3000 auf. Lege sofort den Admin-Account an: Das erste Konto wird Administrator; danach ist die offene Registrierung abgeschaltet, und Konten, die sich trotzdem anmelden, warten als „pending“ auf Freigabe (laut Open-WebUI-Doku, Stand: 08.11.2026).

Prüfe danach von deinem Rechner aus, dass http://SERVER-IP:3000 und http://SERVER-IP:11434 nicht antworten.


Schritt 4: Erstes Modell herunterladen

Der Tag llama3.2 zeigt auf die 3B-Variante mit 2,0 GB (laut Ollama-Bibliothek, Stand: 08.11.2026). Ollama-Befehle führst du im Container aus (laut Ollama-Doku, Stand: 08.11.2026):

docker compose exec ollama ollama pull llama3.2

Modell ausprobieren:

docker compose exec ollama ollama run llama3.2
>>> Schreibe ein Haiku über Server-Hosting

Tipp: Beim ersten Aufruf lädt Ollama das Modell in den Arbeitsspeicher; laut Ollama-FAQ bleibt es standardmäßig fünf Minuten geladen (laut Ollama-FAQ, Stand: 08.11.2026).


Schritt 5: HTTPS mit Traefik einrichten

Open WebUI beendet TLS nicht selbst; HTTPS übernimmt ein Reverse Proxy (laut Open-WebUI-Doku, Stand: 08.11.2026). Ersetze compose.yaml durch diese Fassung. Der Dienst ollama bleibt gleich, bei Open WebUI entfällt ports:

services:
  traefik:
    image: traefik:v3.7
    restart: always
    command:
      - --providers.docker=true
      - --providers.docker.exposedbydefault=false
      - --entrypoints.web.address=:80
      - --entrypoints.websecure.address=:443
      - --certificatesresolvers.letsencrypt.acme.httpchallenge=true
      - --certificatesresolvers.letsencrypt.acme.httpchallenge.entrypoint=web
      - [email protected]
      - --certificatesresolvers.letsencrypt.acme.storage=/letsencrypt/acme.json
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - ./letsencrypt:/letsencrypt
    networks:
      - ollama-net

  ollama:
    image: ollama/ollama
    restart: always
    volumes:
      - ollama:/root/.ollama
    networks:
      - ollama-net

  open-webui:
    image: ghcr.io/open-webui/open-webui:main
    restart: always
    volumes:
      - open-webui:/app/backend/data
    environment:
      - OLLAMA_BASE_URL=http://ollama:11434
      - WEBUI_SECRET_KEY=DEIN_SCHLUESSEL
      - WEBUI_SESSION_COOKIE_SECURE=true
    networks:
      - ollama-net
    labels:
      - traefik.enable=true
      - traefik.http.routers.webui.rule=Host(`chat.deinedomain.de`)
      - traefik.http.routers.webui.entrypoints=websecure
      - traefik.http.routers.webui.tls.certresolver=letsencrypt
      - traefik.http.services.webui.loadbalancer.server.port=8080

networks:
  ollama-net:
    name: ollama-net

volumes:
  ollama:
  open-webui:

Danach docker compose up -d. Zu den Einstellungen:

Tipp: Ersetze chat.deinedomain.de durch deine Domain, deren DNS-A-Record auf die Server-IP zeigt. Port 80 muss für Let's Encrypt erreichbar sein (laut Traefik-Doku, Stand: 08.11.2026).


Bonus: Ollama mit n8n verbinden

n8n bringt Ollama-Nodes mit, die über ein Ollama-Credential auf deinen Server zugreifen (laut n8n-Doku, Stand: 08.11.2026).

Läuft n8n wie im n8n-Guide in einem eigenen Compose-Projekt, bindest du dort das Netz ollama-net als externes Netz ein (laut Docker-Doku, Stand: 08.11.2026):

services:
  n8n:
    networks:
      - default
      - ollama-net

networks:
  ollama-net:
    external: true

default hält n8n mit der Datenbank seines Projekts verbunden. Starte n8n danach mit docker compose up -d neu.

Hast du für n8n nach dem n8n-Guide Caddy auf demselben Server eingerichtet, belegt Caddy wie Traefik die Ports 80 und 443; beide zugleich starten nicht. Lass Schritt 5 dann weg: Open WebUI bleibt wie in Schritt 3 an 127.0.0.1:3000 gebunden, du ergänzt im Caddyfile einen Block chat.deinedomain.de mit reverse_proxy 127.0.0.1:3000 (laut Caddy-Doku, Stand: 08.11.2026) und setzt bei Open WebUI WEBUI_SESSION_COOKIE_SECURE=true (laut Open-WebUI-Doku, Stand: 08.11.2026).

  1. Lege ein Ollama-Credential an. Die Base URL ist laut n8n-Doku standardmäßig http://localhost:11434; Container im selben Docker-Netz sprechen Ollama über den Dienstnamen an, hier http://ollama:11434. Das API-Key-Feld bleibt leer (laut n8n-Doku, Stand: 08.11.2026).
  2. Wähle das Modell, etwa llama3.2.
  3. Verbinde den Node mit einem Trigger deines Workflows.

Anwendungsfälle:

  • E-Mails zusammenfassen und kategorisieren
  • Support-Tickets analysieren und priorisieren
  • Content für Social Media erstellen
  • Dokumente in strukturierte Daten umwandeln

Performance-Tuning

Diese Einstellungen setzt du als Umgebungsvariablen beim Dienst ollama in compose.yaml (laut Ollama-FAQ, Stand: 08.11.2026) und übernimmst sie mit docker compose up -d.

Kontextlänge

Ollama nutzt standardmäßig 4096 Tokens Kontext; OLLAMA_CONTEXT_LENGTH ändert das. Im interaktiven Modus geht es mit /set parameter num_ctx 8192 (laut Ollama-FAQ, Stand: 08.11.2026).

  ollama:
    environment:
      - OLLAMA_CONTEXT_LENGTH=8192
      - OLLAMA_KEEP_ALIVE=10m

Modelle geladen halten

Modelle bleiben standardmäßig fünf Minuten geladen. OLLAMA_KEEP_ALIVE ändert das und nimmt eine Dauer wie 10m oder 24h, eine Zahl in Sekunden, einen negativen Wert (bleibt geladen) oder 0 (sofort entladen) an. Ein leerer Aufruf lädt das Modell vorab (laut Ollama-FAQ, Stand: 08.11.2026):

docker compose exec ollama ollama run llama3.2 ""

OLLAMA_MAX_LOADED_MODELS begrenzt die Zahl geladener Modelle (bei CPU standardmäßig drei), OLLAMA_NUM_PARALLEL die parallelen Anfragen je Modell (Standard eins). Der Speicherbedarf wächst mit OLLAMA_NUM_PARALLEL × OLLAMA_CONTEXT_LENGTH (laut Ollama-FAQ, Stand: 08.11.2026).

Monitoring

ollama ps zeigt die geladenen Modelle (laut Ollama-Doku, Stand: 08.11.2026):

docker compose exec ollama ollama ps

Modelle und Speicherbedarf

Größe und Kontextlänge gängiger Modelle in der Ollama-Bibliothek:

Modell (Tag)ParameterGröße laut ollama.comKontext laut ollama.comQuelle
llama3.2 (3B)3 Mrd.2,0 GB128Klaut Ollama-Bibliothek, Stand: 08.11.2026
llama3.1:8b8 Mrd.4,9 GB128Klaut Ollama-Bibliothek, Stand: 08.11.2026
qwen2.5:7b7 Mrd.4,7 GB32Klaut Ollama-Bibliothek, Stand: 08.11.2026
qwen2.5:14b14 Mrd.9,0 GB32Klaut Ollama-Bibliothek, Stand: 08.11.2026
mistral:7b7 Mrd.4,4 GB32Klaut Ollama-Bibliothek, Stand: 08.11.2026
deepseek-coder:6.7b6,7 Mrd.3,8 GB16Klaut Ollama-Bibliothek, Stand: 08.11.2026
llava:7b (Text und Bilder als Eingabe)7 Mrd.4,7 GB32Klaut Ollama-Bibliothek, Stand: 08.11.2026, laut Ollama-Bibliothek, Stand: 08.11.2026
mistral-small:24b24 Mrd.14 GB32Klaut Ollama-Bibliothek, Stand: 08.11.2026
llama3.3:70b70 Mrd.43 GB128Klaut Ollama-Bibliothek, Stand: 08.11.2026

Zur Dateigröße kommt Speicher für den Kontext: Er wächst mit OLLAMA_NUM_PARALLEL × OLLAMA_CONTEXT_LENGTH (laut Ollama-FAQ, Stand: 08.11.2026). Ollama nutzt standardmäßig 4096 Tokens, auch wenn das Modell mehr erlaubt. Dazu kommen Betriebssystem, Docker, Open WebUI und Traefik. Den Gesamtbedarf schätzt der Ollama-Rechner.

RackDiff listet derzeit keine GPU-Server; auf einem VPS rechnet Ollama auf der CPU. Wie schnell ein Modell antwortet, hängt von CPU, Modellgröße und Kontext ab.


Häufige Probleme

Open WebUI oder n8n finden Ollama nicht

  1. Hängen die Container im Netz ollama-net? docker network inspect ollama-net zeigt die verbundenen Container.
  2. Steht die Base URL auf http://ollama:11434? Bei Open WebUI setzt sie OLLAMA_BASE_URL (laut Open-WebUI-Doku, Stand: 08.11.2026).
  3. Von außen bleibt Ollama bewusst unerreichbar: Der Dienst veröffentlicht keinen Port.

Arbeitsspeicher reicht nicht

Nutze ein kleineres Modell oder eine kleinere Variante, etwa llama3.2:1b mit 1,3 GB (laut Ollama-Bibliothek, Stand: 08.11.2026) oder llama3.1:8b-instruct-q4_0 mit 4,7 GB (laut Ollama-Bibliothek, Stand: 08.11.2026), oder verringere OLLAMA_CONTEXT_LENGTH.

Langsame Antworten

Auf der CPU hängt die Geschwindigkeit von CPU, Modellgröße und Kontext ab; ein kleineres Modell oder ein kürzerer Kontext entlastet. RackDiff listet derzeit keine GPU-Server.


Fazit

Du betreibst jetzt Ollama mit Open WebUI und HTTPS auf deinem eigenen Server. Updates, Backups und die Absicherung liegen bei dir.

Für Updates holst du im Verzeichnis ~/ollama mit docker compose pull die neuen Images und startest mit docker compose up -d. Compose erstellt geänderte Container neu und behält die eingebundenen Volumes (laut Docker-Doku, Stand: 08.11.2026).

Auf demselben VPS kannst du weitere Dienste betreiben, etwa Vaultwarden als Passwort-Manager oder Immich für Fotos; plane deren Speicherbedarf mit ein.


Häufig gestellte Fragen

Brauche ich Docker für Ollama?
Nein, Ollama gibt es auch als Linux-Installation ohne Docker. In diesem Guide laufen Ollama, Open WebUI und Traefik zusammen mit Docker Compose.
Kann ich mehrere Modelle gleichzeitig nutzen?
Ja. Jedes geladene Modell belegt Arbeitsspeicher. Im CPU-Betrieb hält Ollama standardmäßig bis zu drei Modelle geladen und entlädt sie nach fünf Minuten; beides lässt sich ändern.
Wie update ich Ollama?
Im Verzeichnis des Compose-Projekts mit docker compose pull und danach docker compose up -d. Compose erstellt die Container neu und behält die eingebundenen Volumes.
Ist CPU-Inferenz für Produktivbetrieb geeignet?
Das hängt von Modell, Kontext und Zahl paralleler Anfragen ab. Standardmäßig bearbeitet ein Modell eine Anfrage gleichzeitig; mehr parallele Anfragen brauchen mehr Arbeitsspeicher. RackDiff listet derzeit keine GPU-Server.
Listet RackDiff GPU-Server für Ollama?
Nein, RackDiff listet derzeit keine GPU-Server. Der VPS-Vergleich und der Ollama-Rechner zeigen Server ohne GPU.

VPS für Ollama gesucht?

Der Ollama-Rechner zeigt passende Server für Llama, Qwen und weitere Modelle; wie die Liste gewichtet ist, steht auf der Methodik-Seite.

Zum Ollama-Rechner

Passender VPS-Rechner

Ollama auf eigenem VPS: Lokale KI-Modelle selbst hosten

Agentic Coding & Local LLMs auf eigener Hardware – inspiriert von r/LocalLLaMA.

Zum VPS-Rechner

Verwandte Artikel