n8n - Installation auf einem Managed Server

Diese Anleitung beschreibt wie Sie n8n auf einem Managed Server einrichten und in Betrieb nehmen können. Für die Installation wird ein SSH Zugang benötigt. n8n wird nach der Installation als Dienst konfiguriert.

Vorbereitung

Anpassung Angebot Endkunde

Der Endkunde, unter dem n8n als Dienst laufen soll, muss das Arbeitsspeicherlimit für Dienste deaktiviert haben. Ansonsten kann es zu Speicherfehlern kommen. Tragen Sie dazu im Angebot des Endkunden unter „Limits für Cronjobs und Dienste“ beim Arbeitsspeicherlimit eine „-1“ ein.

../../../_images/Limits_für_Cronjobs_und_Dienste.png

Anpassungen im Home-Verzeichns

Melden Sie sich mit Ihrem Benutzer per SSH an. Es wird ein „bin“ Ordner im Home-Verzeichnis angelegt und in die PATH Variable angepasst:

mkdir bin
echo "export PATH=$HOME/bin:$PATH" >> .bash_profile

Bitte melden Sie sich nach der Anpassung einmal neu per SSH an.

Installation NodeJs

Für n8n benötigt man NodeJS. In dieser Anleitung verwenden wir die Long Term Support Version 22.20. von NodeJS. Die Download Seite finden Sie hier:

https://nodejs.org/en/download

NodeJS wird mit folgenden Befehlen eingerichtet:

wget https://nodejs.org/dist/v22.20.0/node-v22.20.0-linux-x64.tar.xz
tar xf node-v22.20.0-linux-x64.tar.xz
ln -s ~/node-v22.20.0-linux-x64/bin/node ~/bin/node
ln -s ~/node-v22.20.0-linux-x64/bin/npm ~/bin/npm
ln -s ~/node-v22.20.0-linux-x64/bin/npx ~/bin/npx
# Version prüfen
node -v

Installation n8n

Die Installation von n8n ist mit einem Befehl erledigt:

npm install n8n

Im Home-Verzeichnis des Nutzers sind nun zwei Ordner:

node-v22.20.0-linux-x64
node_modules
  • node-v22.20.0-linux-x64 enthält die NodeJS Daten.
  • node_modules enthält u.a. die n8n Module.

Getestet werden kann die Ausführung von n8n auf der Bash mit

~/node_modules/n8n/bin/n8n start

Die Anwendung soll jedoch als Dienst laufen. Dazu wird ein Skript benötigt.

Einrichtung von n8n als Dienst

Zuerst wird das Skript angelegt:

mkdir ~/n8n-service
vi ~/n8n-service/run-n8n.sh

In die Datei „run-n8n.sh“ wird dann folgender Inhalt eingefügt:

export HOME=~
source ~/.bashrc

set -euo pipefail

ulimit -u 8192 || true
ulimit -n 4096 || true

export EXECUTIONS_TIMEOUT=3600
export EXECUTIONS_TIMEOUT_MAX=7200
export N8N_LISTEN_ADDRESS=127.0.0.1
export N8N_HOST=<HOSTNAME>
export N8N_PROTOCOL=http
export WEBHOOK_URL=http://<HOSTNAME>/
export N8N_SECURE_COOKIE=false
export N8N_RUNNERS_ENABLED=true
export N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=true
export N8N_PUSH_BACKEND=sse
export N8N_PUBLIC_URL=https://<HOSTNAME>/

exec /home/<USER>/node_modules/n8n/bin/n8n start

Die Angaben „<HOSTNAME>“ und „<USER>“ sind im Skript entsprechend zu ersetzen.

Zum Schluss werden die Berechtigungen angepasst, damit das Skript ausgeführt werden kann:

chmod +x n8n-service/run-n8n.sh

In der pd-admin Oberfläche wird dann unter „Dienste“ der Dienst eingerichtet:

../../../_images/Endkunden_Dienste.png

In das Feld „Befehl“ wird folgender Befehl eingetragen:

/home/<USER>/n8n-service/run-n8n.sh >> /home/<USER>/n8n-service/run-n8n.out.log 2>> /home/<USER>/n8n-service/run-n8n.err.log

„<USER>“ ersetzen Sie bitte dem entsprechenden Benutzernamen. Mit Bestätigung auf „OK“ wird der Dienst gestartet. Es kann einen kurzen Moment dauern, bis der Dienst gestartet ist. Über „Info“ sehen Sie, ob der Dienst gestartet wurde:

../../../_images/Endkunde_Dienst_Info.png

Einrichten des Webserver Proxy

Der n8n Dienst läuft in dieser Konfiguration auf der lokalen IP-Adresse 127.0.0.1. Damit n8n von außen zu erreichen ist, muss im Webserver ein Proxy eingerichtet werden. Dies kann im Endkundenbereich über den Menüpunkt „Subdomains“ realisiert werden.

Sie können eine neue Subdomain anlegen oder eine bestehende Subdomain verwenden. In diesem Beispiel verwenden wir eine bestehende Domain. Um den Proxy Eintrag vorzunehmen klicken Sie auf „Ziel“.

../../../_images/Endkunde_Subdomains_Ziel.png

Auf Wunsch können Sie auch einen Passwortschutz einrichten. Dies kann als zusätzlicher Schutz sinnvoll sein. Die .htuser Datei sollte dazu im Home-Verzeichnis des Nutzers hinterlegt werden. Mit Bestägigung durch „OK“ kommt man zurück zur Übersicht.

../../../_images/Endkunde_Subdomains_Uebersicht.png

Damit ist n8n über die eingerichtet Subdomain erreichbar. Wichtig ist zu beachten, dass ein Aufruf der Subdomain verschlüsselt per HTTPS erfolgen muss. Es ist somit erforderlich, dass ein TLS-Zertifikat eingerichtet ist.