Server vorbereiten
System aktualisieren
sudo apt update && sudo apt upgrade -y
sudo apt install -y curl wget git ufw build-essential python3 nodejs
Firewall (UFW) konfigurieren
# Standardregeln setzen (SSH, HTTP, HTTPS)
sudo ufw allow OpenSSH
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
# Firewall aktivieren
sudo ufw --force enable
sudo ufw status
Node.js installieren
# NodeSource-Repository hinzufügen (für Node.js 22.x)
curl -fsSL https://deb.nodesource.com/setup_22.x | sudo -E bash -
# Node.js und npm installieren
sudo apt install -y nodejs
# Überprüfen
node --version # Sollte >= 22.x anzeigen
n8n installieren
n8n global installieren (empfohlen für Produktion)
sudo npm install -g n8n
Die Installation dauert einige Minuten und es werden einige Warnungen angezeigt, die ignoriert werden können.
n8n als Systemdienst einrichten
n8n-Installationspfad herausfinden
which n8n # angezeigten Pfad merken
Dienst-Datei erstellen
sudo nano /etc/systemd/system/n8n.service
Inhalt einfügen
[Unit]
Description=n8n Workflow Automation
After=network.target
[Service]
ExecStart=/usr/bin/n8n # ✏️ n8n-Installationspfad anpassen
User=root
Environment=N8N_TRUST_PROXY=true
Environment=N8N_HOST=n8n.dein-server.de # ✏️ Domain anpassen
Environment=N8N_PORT=5678
Environment=N8N_PROTOCOL=https
Environment=N8N_WEBHOOK_URL=https://n8n.dein-server.de/ # ✏️ Domain anpassen + abschließender Slash!
Environment=N8N_EDITOR_BASE_URL=https://n8n.dein-server.de # ✏️ Domain anpassen
Environment=N8N_PROXY_HOPS=1
Restart=always
RestartSec=10
[Install]
WantedBy=multi-user.target
Dienst aktivieren und starten
sudo systemctl daemon-reload
sudo systemctl enable n8n
sudo systemctl start n8n
sudo systemctl status n8n
SSL mit Let’s Encrypt (Certbot) einrichten
Certbot installieren
sudo apt install -y certbot python3-certbot-nginx
Nginx als Reverse-Proxy installieren
sudo apt install -y nginx
Nginx-Konfiguration für n8n
Proxy-Konfigurationsdatei erstellen
sudo nano /etc/nginx/sites-available/n8n
Inhalt einfügen
server {
listen 80;
server_name n8n.dein-server.de; # ✏️ Domain anpassen
location / {
proxy_pass http://localhost:5678;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto https;
proxy_set_header X-Forwarded-Port 443;
}
}
Konfiguration aktivieren
sudo ln -s /etc/nginx/sites-available/n8n /etc/nginx/sites-enabled/
sudo nginx -t # Testen
sudo systemctl restart nginx
SSL-Zertifikat anfordern
sudo certbot --nginx -d n8n.dein-server.de # ✏️ Domain anpassen
Automatische Zertifikatsverlängerung einrichten
sudo certbot renew --dry-run # Testlauf
Automatische Updates einrichten
Automatische Systemupdates (unattended-upgrades)
sudo apt install -y unattended-upgrades
sudo dpkg-reconfigure unattended-upgrades # Mit "Ja" bestätigen
Konfiguration anpassen
sudo nano /etc/apt/apt.conf.d/50unattended-upgrades
Folgende Zeilen sicherstellen (entkommentieren):
Unattended-Upgrade::Allowed-Origins {
"${distro_id}:${distro_codename}";
"${distro_id}:${distro_codename}-security";
"${distro_id}ESM:${distro_codename}";
};
Unattended-Upgrade::Automatic-Reboot "true";
Wenn du nicht sofort, sondern zu einer bestimmten Uhrzeit bei einem Update mit Neustart neu starten möchtest, kannst du mit der folgenden Option die Uhrzeit festlegen:
Unattended-Upgrade::Automatic-Reboot-Time "02:00";
Automatische Updates aktivieren
sudo systemctl enable unattended-upgrades
sudo systemctl start unattended-upgrades
Automatische n8n-Updates
Skript für n8n-Update erstellen
sudo nano /usr/local/bin/update_n8n.sh
Inhalt einfügen
#!/bin/bash
# n8n stoppen
systemctl stop n8n
# n8n aktualisieren
npm install -g n8n
# n8n neu starten
systemctl start n8n
# Log-Eintrag
echo "n8n updated on $(date)" >> /var/log/n8n_updates.log
Skript ausführbar machen
sudo chmod +x /usr/local/bin/update_n8n.sh
Cron-Job für tägliche Updates einrichten
sudo crontab -e
Füge folgende Zeile hinzu
0 3 * * * /usr/local/bin/update_n8n.sh # Jeden Tag um 3:00 Uhr
Installation überprüfen
n8n-Dienst prüfen
sudo systemctl status n8n
✅ Wir erwarten
● n8n.service - n8n Workflow Automation
Loaded: loaded (/etc/systemd/system/n8n.service; enabled; preset: enabled)
Active: active (running) since Sun 2026-08-23 10:47:07 UTC; 18min ago
Invocation: 553e06f796924a1f8a4d61b9f96e4373
Process: 12987 ExecStart=/usr/local/bin/n8n (code=exited, status=203/EXEC)
Main PID: 12987 (code=exited, status=203/EXEC)
Mem peak: 1.7M
CPU: 16ms
Nginx prüfen
sudo systemctl status nginx
✅ Wir erwarten
● nginx.service - A high performance web server and a reverse proxy server
Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; preset: enabled)
Active: active (running) since Sun 2026-08-23 10:47:46 UTC; 18min ago
Invocation: 003a35cb62914456b70a747a7018c31f
Docs: man:nginx(8)
Main PID: 12115 (nginx)
Tasks: 3 (limit: 3647)
Memory: 3.3M (peak: 5.9M)
CPU: 207ms
CGroup: /system.slice/nginx.service
├─12115 "nginx: master process /usr/sbin/nginx -g daemon on; master_process on;"
├─12204 "nginx: worker process"
└─12205 "nginx: worker process"
SSL-Zertifikat prüfen
sudo certbot certificates
✅ Wir erwarten
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Found the following certs:
Certificate Name: n8n.dein-server.de
Serial Number: 12345678901234567890123456789012345
Key Type: ECDSA
Domains: n8n.dein-server.de
Expiry Date: 2026-11-21 10:23:49+00:00 (VALID: 89 days)
Certificate Path: /etc/letsencrypt/live/n8n.dein-server.de/fullchain.pem
Private Key Path: /etc/letsencrypt/live/n8n.dein-server.de/privkey.pem
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
n8n im Browser öffnen
https://n8n.dein-server.de # Adresse an deine Adresse anpassen
✅ Wir erwarten
- Login-Fenster, in dem du den Admin-Account anlegen musst
- danach eine kleine Umfrage, die du beantworten kannst
- einen Willkommens-Bildschirm von n8n 🥳

Antworten