Voraussetzungen
- macOS (Intel oder Apple Silicon)
- Docker Desktop installiert & gestartet
- Terminal (z. B. iTerm2 oder Apple Terminal)
Installation & Start (lokal)
2.1 Projektordner anlegen
mkdir -p ~/n8n && cd ~/n8n
2.2 docker-compose.yml schreiben
Minimalvariante für den lokalen Start – der Datenspeicher liegt in einem Docker‑Volume.
services:
n8n:
image: n8nio/n8n:latest
ports:
- "5678:5678"
volumes:
- n8n_data:/home/node/.n8n
restart: unless-stopped
volumes:
n8n_data:
2.3 Starten
docker compose up -d && docker compose ps
Öffne http://localhost:5678 – du solltest den n8n‑Setup‑Wizard sehen.
Absicherung (Basic‑Auth & ENCRYPTION_KEY)
Empfohlen für jede produktive Nutzung – auch lokal. Der N8N_ENCRYPTION_KEY schützt gespeicherte Zugangsdaten in n8n.
-
3.1 Sicheren Schlüssel erzeugen
KEY=$(openssl rand -hex 32); echo "N8N_ENCRYPTION_KEY=$KEY" -
3.2 Basic‑Auth definieren
export N8N_USER=leo; export N8N_PASS=SuperSicher!2025 -
3.3 compose erweitern
Umgebungsvariablen hinzufügen (ersetze die Platzhalter durch deine Werte):
environment: - N8N_BASIC_AUTH_ACTIVE=true - N8N_BASIC_AUTH_USER=${N8N_USER} - N8N_BASIC_AUTH_PASSWORD=${N8N_PASS} - N8N_ENCRYPTION_KEY=${KEY}docker compose down && docker compose up -dWenn ein vorhandenesconfig‑File in~/.n8neinen anderen Schlüssel enthält, stoppt n8n mit „Mismatching encryption keys“. Lösung: config sichern/entfernen oder den alten Schlüssel wiederverwenden (siehe Troubleshooting).
Backups & Wiederherstellung
Alle Flows, Credentials und Einstellungen liegen im Volume n8n_data unter /home/node/.n8n.
4.1 Manuelles Backup des Volumes
docker run --rm -v n8n_n8n_data:/data -v "$PWD":/backup busybox \
sh -c 'tar czf /backup/n8n_data_$(date +%F_%H%M).tgz -C /data . && ls -lh /backup/*.tgz'
4.2 Wiederherstellung
- n8n stoppen:
docker compose down - Backup entpacken:
docker run --rm -v n8n_n8n_data:/data -v "$PWD":/backup busybox \ sh -c 'rm -rf /data/*; tar xzf /backup/DEIN_BACKUP.tgz -C /data' - Besitzrechte fixen (wichtig):
docker run --rm -v n8n_n8n_data:/data busybox \ sh -c 'chown -R 1000:1000 /data' - n8n starten:
docker compose up -d
Troubleshooting (häufige Fälle)
| Problem | Ursache | Fix |
|---|---|---|
502 Bad Gateway über Reverse‑Proxy |
Container heißt anders / DNS im Proxy zeigt nicht auf den Service | Service‑Name prüfen (docker compose ps), im Proxy reverse_proxy n8n:5678 setzen |
| "Mismatching encryption keys" | Alter config‑Key ≠ N8N_ENCRYPTION_KEY |
Entweder alten Key als Env setzen ODER config sichern/entfernen und neu starten |
| n8n startet, aber kein Zugriff | Port blockiert / Container nicht erreichbar | Ports prüfen (lsof -i :5678), Logs ansehen: docker compose logs -n 200 n8n |
Permission‑Hinweis zu config |
Dateirechte zu weit | N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=true setzen oder Rechte korrigieren |
docker compose ps && docker compose logs -n 200 n8n
Domain & TLS mit Caddy (Reverse‑Proxy)
Für eigenen Server (z. B. Hetzner). Voraussetzung: A‑Record zeigt auf deine Server‑IP.
n8n.example.com {
encode zstd gzip
reverse_proxy n8n:5678
}
Compose‑Zusatz (Caddy neben n8n betreiben):
services:
caddy:
image: caddy:2
ports:
- "80:80"
- "443:443"
volumes:
- ./Caddyfile:/etc/caddy/Caddyfile:ro
- caddy_data:/data
- caddy_config:/config
depends_on: [n8n]
volumes:
caddy_data:
caddy_config:
FAQ
Ist das kostenlos? n8n Community‑Edition ist kostenlos. Eigene Server‑Kosten (z. B. Hetzner) fallen separat an.
Bleibt der Dienst nach Neustart erreichbar? Ja. restart: unless-stopped sorgt dafür, dass Docker den Container beim Systemstart wieder startet.
Wo liegen meine Daten? Im Docker‑Volume n8n_data (/home/node/.n8n). Sichere dieses Volume regelmäßig (siehe Kapitel 4).
Wie sichere ich den Zugriff? Nutze Basic‑Auth, setze einen starken N8N_ENCRYPTION_KEY, und betreibe n8n hinter einem TLS‑Proxy (Caddy/Traefik/Nginx).
Cheat‑Sheet (Copy & Paste)
mkdir -p ~/n8n && cd ~/n8n
cat > docker-compose.yml <<'YAML'
services:
n8n:
image: n8nio/n8n:latest
ports:
- "5678:5678"
volumes:
- n8n_data:/home/node/.n8n
restart: unless-stopped
volumes:
n8n_data:
YAML
docker compose up -d
# ...später stoppen:
docker compose down
docker compose logs -n 200 n8n