n8n

Die Software n8n ist eine sogenannte Low-Code-/ No-Code-Plattform. Damit kann man sehr flexibel Abläufe definieren und verschiedenste Anwendungen ansteuern bzw. für die abzubildenden Prozesse einbinden. Zur Bedienung und Benutzung von n8n gibt es zahlreiche Anleitungen. Hier beschreibe ich nur kurz, wie ich n8n auf einem virtuellen Server in meinem lokalen Netzwerk installiert habe.


Installation Docker

Docker installiere ich entsprechend meiner Anleitung oder mit folgendem Script, welches ich mit meinem Lieblingseditor nano erstelle:


# Shell-Skript zur Installation von Docker (mit sudo ausführen:
#!/bin/bash
for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do
apt-get remove $pkg;
done
apt-get update
apt-get install ca-certificates curl
install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc
chmod a+r /etc/apt/keyrings/docker.asc
echo \
 "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian \
 $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
tee /etc/apt/sources.list.d/docker.list > /dev/null
apt-get update
apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
systemctl start docker
systemctl enable docker
usermod -aG docker "$SUDO_USER"
  
Dieses Script ist für Debian Linux geschrieben. Für Ubuntu muss lediglich die Zeichenkette "debian", die hier zweimal vorkommt, gegen "ubuntu" ausgetauscht werden. Ich nenne das Script dockerinstall.sh und mache es ausführbar. Dann führe ich es aus. Das muss ich mit sudo machen, weil einige Befehle darin Root-Rechte erfordern.

chmod +x dockerinstall.sh
sudo ./dockerinstall.sh
  
Danach melde ich mich einmal an der Konsole ab und wieder an. Nun ist Docker installiert und ich habe mit meinem normalen Useraccount die Berechtigung, Docker-Befehle ohne Rootrechte auszuführen.



Installation n8n

Da n8n mit Docker und Docker Compose installiert wird, erstelle ich zunächst einen Ordner n8n in dem Verzeichnis, in dem ich üblicherweise Dockerprojekte auf meinen Servern speichere. Ich nutze dazu einfach mein Homeshare auf dem jeweiligen Server. Das kann man anders machen, aber für mich passt das so.

mkdir n8n
cd n8n
Dann erstelle ich mit nano folgende Datei namens docker-compose.yml:

services:
  n8n:
    image: docker.n8n.io/n8nio/n8n
    restart: always
    container_name: n8n
    ports:
      - "5678:5678"
    volumes:
      - ./n8n_data:/home/node/.n8n
    environment:
      - N8N_SECURE_COOKIE=false                 # Wichtig für lokales HTTP ohne SSL
      - N8N_PAYLOAD_SIZE_MAX=100                # Kapazitaetsparameter
      - NODE_OPTIONS=--max-old-space-size=4096  # Kapazitaetsparameter
      - GENERIC_TIMEZONE=Europe/Berlin          # Zeitzone

Die Dockeranwendung n8n wird dann auf Port 5678 lauschen. Es wird ein persistentes Volume namens n8n_data im Homeshare angelegt, in dem alle für das System benötigten Dateien liegen. Die Environment-Variablen sind im Code hinreichend dokumentiert.

Den Container starte ich mit

docker compose up -d
Den Erfolg kann ich mit

docker ps
überprüfen oder mit

docker logs n8n
das entsprechende Log einsehen. Es sollte alles in Ordnung sein.