n8n Automatisierungsplatform
N8n ist eine Open‑Source-Workflow-Automatisierungsplattform, die sich hervorragend für das Erstellen von Integrationen zwischen verschiedenen Diensten und APIs eignet. Die Anwendung läuft als Docker‑Container, sodass sie einfach in bestehende Container‑Infrastrukturen eingebunden werden kann. Mit einem visuell erstellten Flow‑Editor können Benutzer komplexe Automatisierungen ohne Programmierkenntnisse entwerfen.
N8n ist eine leistungsstarke, quelloffene Alternative zu proprietären Workflow‑Tools. Es kombiniert die Vorteile von Automatisierungs- und Integrationsplattformen in einem leichtgewichtigen, containerfreundlichen Paket.
Quelle des Projekts: https://n8n.io
Voraussetzung
Docker muss installiert sein. Z.B. so:
curl -fsSL https://get.docker.com | sh
Vorgehen
Du kannst Dir auf einem Server Deiner Wahl ein Verzeichnis erstellen. Darin erstellst Du die benötigten Dateien "docker-compse.yml" und ".env":
docker-compose.yml
services:
n8n-postgres:
image: postgres:17
container_name: n8n-db
restart: unless-stopped
environment:
- POSTGRES_USER=${POSTGRES_USER}
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
- POSTGRES_DB=${POSTGRES_DB}
volumes:
- /path/to/n8n/db:/var/lib/postgresql/data
healthcheck:
test: ['CMD-SHELL', 'pg_isready -h localhost -U ${POSTGRES_USER} -d ${POSTGRES_DB}']
interval: 5s
timeout: 5s
retries: 10
start_period: 20s
networks:
- n8n-network
n8n:
image: n8nio/n8n
container_name: n8n-app
restart: unless-stopped
user: root
volumes:
- /path/to/n8n/data:/home/node/.n8n
environment:
- DB_TYPE=postgresdb
- DB_POSTGRESDB_HOST=n8n-postgres
- DB_POSTGRESDB_PORT=5432
- DB_POSTGRESDB_DATABASE=${POSTGRES_DB}
- DB_POSTGRESDB_USER=${POSTGRES_USER}
- DB_POSTGRESDB_PASSWORD=${POSTGRES_PASSWORD}
- N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=true
- N8N_ENCRYPTION_KEY=${N8N_ENCRYPTION_KEY}
- WEBHOOK_URL=${WEBHOOK_URL}
- N8N_EDITOR_BASE_URL=${N8N_EDITOR_BASE_URL}
- N8N_HOST=${N8N_HOST}
- N8N_BASE_URL=https://${N8N_HOST}
- TZ=Europe/Berlin
- NODE_ENV=production
- N8N_RUNNERS_ENABLED=true
- N8N_WORKER_MODE=true
- N8N_COMMUNITY_PACKAGES_ALLOW_TOOL_USAGE=true
links:
- n8n-postgres
depends_on:
n8n-postgres:
condition: service_healthy
networks:
- n8n-network
- proxy-net
networks:
n8n-network:
proxy-net:
external: true
Das setzen des Schalters N8N_COMMUNITY_PACKAGES_ALLOW_TOOL_USAGE auf true bewirkt, dass auch Community Packages installiert werden können.
In der Datei ".env" werden dann die Inhalte der Umgebungsvariablen gespeichert. Außerdem muss das externe Netzwerk "proxy-net" existieren, in dem der reverse proxy hängt (-> siehe meine Seite zu nginx proxy manager).
.env
POSTGRES_DB=n8n
POSTGRES_USER=n8n
POSTGRES_PASSWORD=
N8N_ENCRYPTION_KEY=
WEBHOOK_URL=https://n8n.geekgully.de
N8N_EDITOR_BASE_URL=https://n8n.geekgully.de
N8N_HOST=n8n.geekgully.de
Hier musst Du noch ein Passwort für die postgres-Datzenbank und einen langen Encryption Key vergeben. Den Hostnamen für Deine n8n-Instanz solltest Du auch noch anpassen.
Starten der Container
Jetzt kannst Du auf der Kommandozeile oder über einen docker-Manager wie Portainer die Container starten:
docker compose up -d
Reverse proxy
Im nginx proxy manager erstellt Du nun den Hostnamen der Seite, z.B. n8n.geekgully.de, und generierst das SSL-Zertifikat. Danach ist Kitchenowl z.B. unter https://n8n.geekgully.de erreichbar.