Du wirst einen funktionsfähigen Local AI Stack mit Ollama (LLM + Embeddings), Open WebUI (Web-Interface) und n8n (Workflow-Engine) aufsetzen. Danach kannst du Prompts eingeben, Modelle wechseln und erste Workflows bauen.
Voraussetzungen
- Hardware: 16GB RAM (mindestens), 4 CPU-Kerne, 50GB freier Platz
- Software: Docker + Docker Compose installiert (https://docs.docker.com/compose/install/)
- Linux/Mac/Windows mit WSL2: Funktioniert auf allen
- Optional für GPU: NVIDIA Grafikkarte mit CUDA Support oder AMD mit ROCm
Was wird installiert
- Ollama: Lokale LLM Engine (Mistral, Llama 2, Qwen usw.)
- Open WebUI: ChatGPT-ähnliches Interface
- n8n: Workflow Engine für AI Automatisierung
- PostgreSQL: Datenbank für n8n Workflows
Schritt 1: Docker Compose Datei erstellen
Erstelle ein neues Verzeichnis:
mkdir ai-stack && cd ai-stack
Erstelle docker-compose.yml:
version: '3.8'
services:
ollama:
image: ollama/ollama:latest
container_name: ai-ollama
ports:
- "11434:11434"
volumes:
- ollama-models:/root/.ollama
environment:
- OLLAMA_HOST=0.0.0.0:11434
networks:
- ai-network
# GPU Support für NVIDIA (optional):
# deploy:
# resources:
# reservations:
# devices:
# - driver: nvidia
# count: 1
# capabilities: [gpu]
open-webui:
image: ghcr.io/open-webui/open-webui:latest
container_name: ai-webui
ports:
- "3000:8080"
volumes:
- webui-data:/app/backend/data
environment:
- OLLAMA_BASE_URL=http://ollama:11434
networks:
- ai-network
depends_on:
- ollama
postgres:
image: postgres:15-alpine
container_name: ai-postgres
environment:
POSTGRES_DB: n8n
POSTGRES_USER: n8n
POSTGRES_PASSWORD: n8n_password_change_me
volumes:
- postgres-data:/var/lib/postgresql/data
networks:
- ai-network
ports:
- "5432:5432"
n8n:
image: n8nio/n8n:latest
container_name: ai-n8n
ports:
- "5678:5678"
environment:
DB_TYPE: postgresdb
DB_POSTGRESDB_HOST: postgres
DB_POSTGRESDB_PORT: 5432
DB_POSTGRESDB_DATABASE: n8n
DB_POSTGRESDB_USER: n8n
DB_POSTGRESDB_PASSWORD: n8n_password_change_me
N8N_BASIC_AUTH_ACTIVE: "true"
N8N_BASIC_AUTH_USER: admin
N8N_BASIC_AUTH_PASSWORD: change_me_password
N8N_HOST: localhost
N8N_PORT: 5678
N8N_PROTOCOL: http
NODE_ENV: production
EXECUTIONS_DATA_SAVE_ON_ERROR: "true"
EXECUTIONS_DATA_SAVE_ON_SUCCESS: "true"
volumes:
- n8n-data:/home/node/.n8n
networks:
- ai-network
depends_on:
- postgres
volumes:
ollama-models:
webui-data:
postgres-data:
n8n-data:
networks:
ai-network:
driver: bridge
Schritt 2: Stack starten
docker-compose up -d
Checke ob alles läuft:
docker-compose ps
Du solltest alle 4 Container mit Status "Up" sehen.
Schritt 3: Ollama Modell downloaden
Ollama ist jetzt am Laufen, hat aber noch kein Modell. Lade dir ein kleines Modell (schnell, 4GB RAM):
docker exec ai-ollama ollama pull mistral
Oder größer (8-10GB, bessere Qualität):
docker exec ai-ollama ollama pull llama2
Das kann einige Minuten dauern — du suchst dir einen Kaffee.
Schritt 4: Open WebUI öffnen
Geh auf http://localhost:3000 und registriere dich (erste Person wird Admin).
Im Chat-Interface wählst du unten das Modell (z.B. "mistral") und gibst einen Prompt ein:
Erkläre mir Docker in 3 Sätzen.
Falls das nicht geht, checke die Logs:
docker-compose logs open-webui
Schritt 5: n8n öffnen
Geh auf http://localhost:5678, logge dich mit:
- User: admin
- Password: change_me_password (die aus der docker-compose.yml)
Klick "New Workflow" und erstelle deinen ersten Workflow:
Webhook Trigger → Code Node (Call Ollama) → Response
Code-Node Beispiel (Node.js):
const response = await fetch('http://ollama:11434/api/generate', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
model: 'mistral',
prompt: 'Explain Docker in German',
stream: false
})
});
const data = await response.json();
return { output: data.response };
GPU aktivieren (Optional — NVIDIA)
Falls du eine NVIDIA Grafikkarte hast:
- Installiere NVIDIA Docker Runtime:
curl https://get.docker.com | sh && sudo systemctl start docker
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -
curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | \
sudo tee /etc/apt/sources.list.d/nvidia-docker.list
sudo apt-get update && sudo apt-get install -y nvidia-docker2
sudo systemctl restart docker
-
Decommentiere die GPU-Section in der Ollama Service in docker-compose.yml
-
Neustart:
docker-compose down && docker-compose up -d
Netzwerk-Setup: Remote Zugriff
Falls du von einem anderen Rechner zugreifen willst (z.B. 192.168.1.100:3000):
In docker-compose.yml ändere:
open-webui:
ports:
- "0.0.0.0:3000:8080" # Statt nur localhost
n8n:
environment:
N8N_HOST: "192.168.1.100" # deine Maschinen-IP
Neustart:
docker-compose down && docker-compose up -d
Troubleshooting
Ollama lädt, aber Modell wird nicht gefunden
docker exec ai-ollama ollama list
Falls leer: Modell ist noch nicht fertig heruntergeladen. Warte oder checke:
docker-compose logs ollama
Open WebUI sagt "Connection refused"
docker-compose logs open-webui
Meist bedeutet es, dass Ollama noch nicht bereit ist. Warte 10 Sekunden, reload browser.
n8n startet nicht, PostgreSQL-Fehler
docker-compose down
docker-compose up -d postgres
sleep 10
docker-compose up -d
Postgres braucht kurz zum initialisieren.
Speicher wird zu knapp
Ollama speichert Modelle in /root/.ollama im Container. Falls Platz voll:
docker exec ai-ollama ollama list
docker exec ai-ollama ollama rm mistral # Modell löschen
docker exec ai-ollama ollama pull mistral:7b # Kleinere Variante
Beliebte Modelle zum Ausprobieren
| Modell | Größe | RAM | Qualität | Deutsch |
|---|---|---|---|---|
| mistral | 7B | 4GB | Gut | OK |
| neural-chat | 7B | 4GB | Gut | Gut |
| llama2 | 7B | 4GB | Besser | Besser |
| mistral:13b | 13B | 8GB | Sehr gut | Sehr gut |
Installieren mit: docker exec ai-ollama ollama pull mistral
Nächste Schritte
- Lies: Deine ersten 3 AI Workflows mit n8n — baue Automation auf
- Konfiguriere: AI Monitoring Dashboard — Track Model Performance
- Für Produktion: Ändere alle Passwörter in docker-compose.yml
Checkliste
- Docker Compose Datei erstellt
-
docker-compose up -derfolgreich - Ollama Modell heruntergeladen (
docker-compose logs ollama) - Open WebUI unter http://localhost:3000 erreichbar
- Chat-Test mit Mistral erfolgreich
- n8n unter http://localhost:5678 erreichbar
- n8n Passwort geändert
- Postgres Passwort geändert
- (Optional) GPU aktiviert und getestet
