n8n lokal hosten: Mein Setup für Automationen ohne Cloud
Ich mag Automationen, aber nicht jede Aufgabe gehört in eine SaaS. Vieles läuft bei mir auf eigener Hardware – insbesondere n8n, mein Schweizer Taschenmesser für Workflows. Hier ist mein Setup, Schritt für Schritt.
Was ist n8n?
n8n ist ein Open-Source-Automatisierungstool (node-based workflow builder) mit über 400 Integrationen. Es verbindet Webhooks, APIs, Datenbanken, Messaging-Dienste und lokale Systeme. Die Low-Code-Oberfläche erlaubt Business-Teams schnelle Automationen, während man dennoch jederzeit eigene JavaScript- oder Function-Nodes einbauen kann.
Warum lokal?
- Datensouveränität: Kundendaten bleiben im eigenen Netz.
- Keine Limits: Keine Workflow-Credits oder künstliche Trigger-Beschränkungen.
- Integration in bestehende Tools: Zugriff auf lokale Systeme, Datenbanken, Fileshares.
Voraussetzungen
- Docker + Docker Compose (
docker --version,docker compose version) - Eine kleine Maschine (NUC, Homelab-Server, Raspberry Pi 4/5 mit 4 GB+ RAM)
- Optional: Domain/Reverse Proxy, falls du von außen zugreifen willst
Verzeichnisstruktur
mkdir -p ~/n8n/data
cd ~/n8n
Alles, was n8n speichert (Workflows, Credentials, Logs), landet in ~/n8n/data. Damit sind Backups trivial.
Docker Compose
services:
n8n:
image: n8nio/n8n:latest
container_name: n8n
restart: unless-stopped
ports:
- "5678:5678"
environment:
- GENERIC_TIMEZONE=Europe/Vienna
- TZ=Europe/Vienna
- N8N_BASIC_AUTH_ACTIVE=true
- N8N_BASIC_AUTH_USER=meinuser
- N8N_BASIC_AUTH_PASSWORD=ein_sicheres_passwort
- N8N_HOST=localhost
- N8N_PORT=5678
- N8N_PROTOCOL=http
- NODE_ENV=production
- N8N_EDITOR_BASE_URL=http://localhost:5678
- N8N_PUBLIC_API_DISABLED=false
volumes:
- ./data:/home/node/.n8n
Wichtig: Wenn du n8n hinter einem Reverse Proxy betreibst, trage bei N8N_HOST deine Domain ein und setze N8N_PROTOCOL=https.
Starten & Loggen
docker compose up -d
docker compose logs -f
Sobald im Log „n8n ready on port 5678“ erscheint, erreichst du das Backend unter http://localhost:5678 (oder der IP deines Servers).
Erster Login
- Anmelden mit dem Basic-Auth-User aus den Env-Variablen
- Encryption-Key sichern (Einstellungen → Encryption)
- Optional: Default-Workflow löschen, neuen anlegen
Workflows bauen
- Trigger Node: Webhook, Cron, Email, Form Submission …
- Processing Nodes: HTTP Request, Function, Set, Merge
- Output: Slack, Telegram, Airtable, Google Sheets, eigene APIs
Ich arbeite gerne iterativ: zuerst Trigger + Mock-Daten, dann logische Schritte, zum Schluss Aktoren. Execute workflow zeigt sofort, ob alles funktioniert.
Backups & Updates
- Daten liegen in
~/n8n/data→ viarsyncoder Snapshot sichern - Updates:
docker compose pull && docker compose up -d - Version pinnen, wenn du reproduzierbare Builds brauchst (
image: n8nio/n8n:1.64.0)
Sicherheit
- Basic Auth ist Pflicht (siehe Env-Variablen)
- Für externen Zugriff: Reverse Proxy (Traefik/Caddy/NGINX) + HTTPS
- Fail2Ban oder Geoblocking, falls nötig
- Keine unnötigen Ports ins Internet forwarden
Bonus: CLI & Exporte
n8n bringt ein CLI mit:
n8n export workflow --all --output backup.json
n8n import workflow --input backup.json
So versionierst du deine Automationen in Git oder nimmst sie auf einen anderen Server mit.
Mit diesem Setup steht ein vollwertiges, lokal betriebenes n8n zur Verfügung – skalierbar genug für KMU-Prozesse, flexibel genug für Ad-hoc-Automationen. Wer mehrere Standorte oder sensible Datenpunkte orchestrieren muss, bekommt damit die volle Kontrolle über Integrationen, Latenzen und Sicherheitsmaßnahmen.