> For the complete documentation index, see [llms.txt](https://docs.clore.ai/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.clore.ai/guides/guides_v2-de/ki-plattformen-and-agenten/n8n.md).

# n8n KI-Workflows

Deploye n8n auf Clore.ai — hoste selbst eine leistungsstarke Plattform zur Automatisierung von KI-Workflows mit über 400 Integrationen und nativer LLM-Agenten-Unterstützung für nur Cent pro Stunde.

## Überblick

[n8n](https://github.com/n8n-io/n8n) ist eine Fair-Code-Workflow-Automatisierungsplattform mit **55K+ GitHub-Sternen**. Im Gegensatz zu vollständig proprietären Alternativen (Zapier, Make) ermöglicht dir n8n, den gesamten Stack selbst zu hosten — mit vollständiger Datenkontrolle — und bietet dabei native KI-Agenten-Funktionen, einen JavaScript/Python-Code-Node sowie eine wachsende Bibliothek mit über 400 Integrationen.

Auf **Clore.ai**, n8n selbst läuft auf der CPU (keine GPU erforderlich), lässt sich aber hervorragend mit GPU-beschleunigten Diensten wie Ollama oder vLLM kombinieren, die auf demselben Server laufen, und gibt dir so einen vollständig lokalen KI-Automatisierungs-Stack. Du kannst eine produktive n8n-Instanz für unter **$0.10–0.20/Stunde**.

**Wichtige Funktionen:**

* 🔗 **400+ Integrationen** — Slack, GitHub, Google Sheets, Postgres, HTTP-Request, Webhooks und vieles mehr
* 🤖 **KI-Agent-Knoten** — integrierte, von LangChain betriebene Agenten mit Tool-Nutzung und Speicher
* 💻 **Code-Knoten** — führe beliebiges JavaScript oder Python direkt in Workflows aus
* 🔄 **Trigger-Vielfalt** — Webhooks, Cron-Zeitpläne, Datenbank-Polling, E-Mail, Warteschlangenereignisse
* 📊 **Unter-Workflows** — modulare, wiederverwendbare Workflow-Komponenten
* 🔐 **Anmeldedaten-Tresor** — verschlüsselte Speicherung für API-Schlüssel und OAuth-Token
* 🏠 **Selbst gehostet** — deine Daten verlassen niemals deinen Server

***

## Anforderungen

n8n ist eine Node.js-Anwendung, die als Docker-Image paketiert ist. Sie ist **Nur CPU** — für die Automatisierungs-Engine selbst ist keine GPU nötig. Eine GPU ist nur dann nützlich, wenn du parallel dazu ein lokales LLM betreibst (z. B. Ollama).

| Konfiguration                 | GPU         | VRAM  | System-RAM | Festplatte | Clore.ai-Preis                            |
| ----------------------------- | ----------- | ----- | ---------- | ---------- | ----------------------------------------- |
| **Minimal** (nur n8n)         | Keine / CPU | —     | 2 GB       | 10 GB      | \~$0.03/Stunde (CPU)                      |
| **Standard**                  | Keine / CPU | —     | 4 GB       | 20 GB      | \~$0,05/Std.                              |
| **+ Lokales LLM (Ollama)**    | RTX 3090    | 24 GB | 16 GB      | 60 GB      | ca. 0,07–0,21 $/h                         |
| **+ Hochdurchsatz-LLM**       | A100 40 GB  | 40 GB | 32 GB      | 100 GB     | [Bare Metal](https://clore.ai/bare-metal) |
| **AI Starter Kit (komplett)** | RTX 4090    | 24 GB | 32 GB      | 100 GB     | ca. 0,14–0,42 $/h                         |

> **Tipp:** Der [n8n Self-hosted AI Starter Kit](https://github.com/n8n-io/self-hosted-ai-starter-kit) bündelt n8n + Ollama + Qdrant + PostgreSQL in einem einzigen Docker-Compose-Stack. Siehe [AI Starter Kit](#ai-starter-kit-recommended) unten.

***

## Schnellstart

### 1. Miete einen Clore.ai-Server

Melde dich an bei [clore.ai](https://clore.ai) und stelle einen Server bereit:

* **Nur-CPU-Instanz** wenn du nur n8n-Automatisierung benötigst
* **RTX 3090/4090** wenn du lokale LLMs über Ollama möchtest
* Port freigeben **5678** in den Port-Mapping-Einstellungen des Angebots
* SSH-Zugriff aktivieren

### 2. Mit dem Server verbinden

```bash
ssh root@<clore-server-ip> -p <ssh-port>

# Prüfen, ob Docker installiert ist
docker --version
docker compose version
```

### 3. Option A — Minimaler Start mit einem einzelnen Container

Der schnellste Weg, n8n zum Laufen zu bringen:

```bash
# Ein benanntes Volume für die Persistenz erstellen
docker volume create n8n_data

# n8n starten
docker run -d \
  --name n8n \
  --restart unless-stopped \\
  -p 5678:5678 \
  -v n8n_data:/home/node/.n8n \
  -e N8N_HOST=<clore-server-ip> \
  -e N8N_PORT=5678 \
  -e N8N_PROTOCOL=http \
  -e WEBHOOK_URL=http://<clore-server-ip>:5678/ \
  docker.n8n.io/n8nio/n8n

# Protokolle prüfen
docker logs -f n8n
```

Greife auf die UI unter `http://<clore-server-ip>:5678`

### 4. Option B — Docker Compose mit Postgres (Produktion)

Für den Produktionseinsatz ersetze das standardmäßige SQLite durch Postgres:

```bash
mkdir n8n-prod && cd n8n-prod
cat > docker-compose.yml << 'EOF'
version: "3.8"

services:
  postgres:
    image: postgres:15-alpine
    restart: unless-stopped
    environment:
      POSTGRES_USER: n8n
      POSTGRES_PASSWORD: n8npassword   # Das ändern!
      POSTGRES_DB: n8n
    volumes:
      - postgres_data:/var/lib/postgresql/data
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U n8n"]
      interval: 10s
      timeout: 5s
      retries: 5

  n8n:
    image: docker.n8n.io/n8nio/n8n
    restart: unless-stopped
    depends_on:
      postgres:
        condition: service_healthy
    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: n8npassword
      N8N_HOST: <clore-server-ip>
      N8N_PORT: 5678
      N8N_PROTOCOL: http
      WEBHOOK_URL: http://<clore-server-ip>:5678/
      N8N_ENCRYPTION_KEY: your-32-char-encryption-key-here
      EXECUTIONS_MODE: regular
      N8N_BASIC_AUTH_ACTIVE: "true"
      N8N_BASIC_AUTH_USER: admin
      N8N_BASIC_AUTH_PASSWORD: changeme!
    volumes:
      - n8n_data:/home/node/.n8n

volumes:
  postgres_data:
  n8n_data:
EOF

docker compose up -d
docker compose logs -f n8n
```

***

## AI Starter Kit (Empfohlen)

Der [n8n Self-hosted AI Starter Kit](https://github.com/n8n-io/self-hosted-ai-starter-kit) ist der schnellste Weg zu einem vollständigen lokalen KI-Automatisierungs-Stack. Es enthält:

* **n8n** — Workflow-Automatisierung
* **Ollama** — lokale LLM-Inferenz (GPU oder CPU)
* **Qdrant** — Vektordatenbank für RAG
* **PostgreSQL** — persistenter Speicher

```bash
# Starter-Kit klonen
git clone https://github.com/n8n-io/self-hosted-ai-starter-kit.git
cd self-hosted-ai-starter-kit

# Für Server mit GPU-Unterstützung (RTX 3090, 4090, A100 usw.)
docker compose --profile gpu-nvidia up -d

# Für CPU-only-Server
docker compose --profile cpu up -d

# Startvorgang überwachen
docker compose logs -f

# Ein Modell in Ollama laden (nachdem der Stack gestartet ist)
docker exec ollama ollama pull llama3:8b
docker exec ollama ollama pull nomic-embed-text  # Für Embeddings
```

Dienste nach dem Start:

| Dienst     | URL                          |
| ---------- | ---------------------------- |
| n8n-UI     | `http://<ip>:5678`           |
| Ollama-API | `http://<ip>:11434`          |
| Qdrant-UI  | `http://<ip>:6333/dashboard` |

> **Hinweis:** Ollama mit GPU benötigt das [NVIDIA Container Toolkit](https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/install-guide.html), das auf Clore.ai-Servern bereits vorinstalliert ist.

***

## Konfiguration

### Referenz der Umgebungsvariablen

```bash
# ── Kerneinstellungen ───────────────────────────────────────────────────────────
N8N_HOST=0.0.0.0                  # Bind-Adresse
N8N_PORT=5678                     # Port, auf dem gelauscht wird
N8N_PROTOCOL=http                 # http oder https
WEBHOOK_URL=http://<ip>:5678/     # Öffentliche Basis-URL für Webhooks (kritisch!)

# ── Verschlüsselung ───────────────────────────────────────────────────────────
N8N_ENCRYPTION_KEY=<32-char-key>  # Verschlüsselt gespeicherte Anmeldedaten
# Generieren: openssl rand -hex 16

# ── Authentifizierung ─────────────────────────────────────────────────────────
N8N_BASIC_AUTH_ACTIVE=true
N8N_BASIC_AUTH_USER=admin
N8N_BASIC_AUTH_PASSWORD=dein-sicheres-passwort

# ── Ausführungseinstellungen ───────────────────────────────────────────────────────
EXECUTIONS_MODE=regular           # regular (einzeln) oder queue (Redis-gestützt)
EXECUTIONS_DATA_SAVE_ON_SUCCESS=all
EXECUTIONS_DATA_SAVE_ON_ERROR=all
EXECUTIONS_DATA_MAX_AGE=336       # Ausführungsdaten 14 Tage aufbewahren

# ── Zeitzone ─────────────────────────────────────────────────────────────────
GENERIC_TIMEZONE=UTC

# ── Telemetrie deaktivieren (optional) ─────────────────────────────────────────────
N8N_DIAGNOSTICS_ENABLED=false
N8N_VERSION_NOTIFICATIONS_ENABLED=false
```

### n8n mit Ollama für KI-Agenten verbinden

Sobald Ollama auf demselben Server läuft:

1. Füge in n8n neue Anmeldedaten hinzu: **Ollama-API**
   * Basis-URL: `http://ollama:11434` (wenn du Compose verwendest) oder `http://localhost:11434`
2. Füge in einem Workflow einen **AI-Agent** Knoten hinzu
3. Unter **Chat-Modell**, wähle Ollama aus und entscheide dich für dein Modell (z. B. `llama3:8b`)
4. Füge Tools hinzu wie **HTTP-Request**, **Postgres**, oder **Code** Knoten
5. Ausführen!

***

## Tipps & bewährte Praktiken

### Kostenoptimierung auf Clore.ai

```bash
# Exportiere alle Workflows, bevor du deine Instanz stoppst
# Verwende die n8n-CLI innerhalb des Containers:
docker exec n8n n8n export:workflow --all --output=/home/node/.n8n/workflows-backup.json

# Sicherung auf den lokalen Rechner kopieren
docker cp n8n:/home/node/.n8n/workflows-backup.json ./n8n-workflows-backup.json

# Auf einer neuen Instanz importieren:
docker exec n8n n8n import:workflow --input=/home/node/.n8n/workflows-backup.json
```

### Webhook-Zuverlässigkeit auf Clore.ai

Clore.ai-Server haben dynamische IPs. Wenn deine Webhooks nach einer erneuten Bereitstellung ausfallen:

```bash
# 1. Verwende eine statische Domain mit Caddy + Let's Encrypt
# Caddyfile:
# n8n.deinedomain.com {
#     reverse_proxy n8n:5678
# }

# 2. Oder verwende Cloudflare Tunnel (kostenlos, keine offenen Ports nötig):
docker run -d \
  --name cloudflared \
  --network n8n-prod_default \
  cloudflare/cloudflared:latest \
  tunnel --no-autoupdate run \
  --token <dein-cloudflare-tunnel-token>
```

### Warteschlangenmodus für Workflows mit hohem Volumen

```bash
# Füge Redis hinzu und starte n8n im Warteschlangenmodus für parallele Ausführung
# Zu docker-compose.yml hinzufügen:
  redis:
    image: redis:7-alpine
    restart: unless-stopped

  n8n-worker:
    image: docker.n8n.io/n8nio/n8n
    command: worker
    depends_on: [redis, postgres]
    environment:
      <<: *n8n-env
      EXECUTIONS_MODE: queue
      QUEUE_BULL_REDIS_HOST: redis
```

### Nützliche n8n-CLI-Befehle

```bash
# Alle Workflows auflisten
docker exec n8n n8n list:workflow

# Einen bestimmten Workflow manuell ausführen
docker exec n8n n8n execute --id=<workflow-id>

# n8n auf die neueste Version aktualisieren
docker pull docker.n8n.io/n8nio/n8n
docker compose up -d n8n

# n8n-Version prüfen
docker exec n8n n8n --version
```

### Härtung der Sicherheit

```bash
# n8n hinter einem Reverse Proxy mit HTTPS betreiben
# Setze den Port 5678 in der Produktion niemals direkt frei
# Verwende N8N_BASIC_AUTH oder konfiguriere SSO über LDAP/SAML

# Beschränke, welche Knoten erlaubt sind (Whitelist-Modus):
NODE_FUNCTION_ALLOW_EXTERNAL=axios,lodash
NODES_EXCLUDE='["n8n-nodes-base.executeCommand"]'  # Shell-Ausführung blockieren
```

***

## Fehlerbehebung

### n8n-Container beendet sich sofort

```bash
docker logs n8n

# Häufige Probleme:
# 1. DB-Verbindung fehlgeschlagen — prüfe, ob Postgres gesund ist
docker compose ps postgres

# 2. Nicht übereinstimmender Verschlüsselungsschlüssel — wenn du N8N_ENCRYPTION_KEY geändert hast
#    Anmeldedaten werden unlesbar; gib sie nach der Schlüsseländerung erneut ein

# 3. Portkonflikt
ss -tlnp | grep 5678
```

### Webhooks geben 404 zurück

```bash
# Stelle sicher, dass WEBHOOK_URL mit der öffentlichen Adresse übereinstimmt, die deine Webhook-Absender verwenden
# Es muss den abschließenden Schrägstrich enthalten
WEBHOOK_URL=http://<your-public-ip>:5678/

# Starte n8n nach dem Ändern dieser Umgebungsvariable neu
docker compose restart n8n
```

### KI-Agent-Node kann Ollama nicht erreichen

```bash
# Teste es von innerhalb des n8n-Containers aus
docker exec n8n wget -qO- http://ollama:11434/api/tags
# oder
docker exec n8n curl http://localhost:11434/api/tags

# Wenn du separate Container verwendest, die sich nicht im selben Compose-Netzwerk befinden:
# Verwende host.docker.internal oder die LAN-IP des Servers
```

### "ENOSPC: Kein Speicherplatz mehr auf dem Gerät"

```bash
# Festplattenbelegung prüfen
df -h
docker system df

# Alte Ausführungsdaten in der n8n-UI bereinigen:
# Einstellungen → Ausführungen → Alte Ausführungen löschen

# Oder automatische Bereinigung festlegen:
EXECUTIONS_DATA_PRUNE=true
EXECUTIONS_DATA_MAX_AGE=72   # 72 Stunden
```

### Langsame Workflow-Ausführung

```bash
# CPU-Auslastung prüfen
top -c

# Warteschlangenmodus für parallele Ausführung aktivieren (siehe Tipps oben)
# Falls nötig, den Node.js-Speicher erhöhen:
NODE_OPTIONS=--max-old-space-size=4096
```

***

## Weiterführende Lektüre

* [Offizielle n8n-Dokumentation](https://docs.n8n.io)
* [n8n-GitHub-Repository](https://github.com/n8n-io/n8n)
* [n8n Self-hosted AI Starter Kit](https://github.com/n8n-io/self-hosted-ai-starter-kit)
* [n8n Docker-Installationsanleitung](https://docs.n8n.io/hosting/installation/docker/)
* [Ollama auf Clore.ai ausführen](/guides/guides_v2-de/sprachmodelle/ollama.md)
* [GPU-Vergleich von Clore.ai](/guides/guides_v2-de/erste-schritte/gpu-comparison.md)
* [n8n Community-Forum](https://community.n8n.io)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.clore.ai/guides/guides_v2-de/ki-plattformen-and-agenten/n8n.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
