In diesem Beitrag zeige ich dir Schritt für Schritt, wie du ein vollständiges Shellscript erstellst, das deine n8n-Installation auf einem DigitalOcean 1-Click-Droplet automatisch aktualisiert. Du lernst, wo du das Script speichern solltest, wie du es als root-User nutzt und wie du es bei Bedarf über einen Cronjob regelmäßig ausführen lässt.
Voraussetzungen
- Du verwendest ein DigitalOcean 1-Click-Droplet mit n8n (Docker-basiert)
- Du hast SSH-Zugriff auf das Droplet als
root
- Deine n8n-Installation befindet sich im Verzeichnis
/opt/n8n-docker-caddy
- Optional: Du hast die manuelle Schritt-für-Schritt Anleitung zur Aktualisierung von n8n auf einem DigitalOcean 1-Click-Droplet bereits erfolgreich ausprobiert.
Schritt 1: Shellscript erstellen
Melde dich per SSH auf deinem Droplet an:
ssh root@deine_droplet_ip
Erstelle ein neues Skript unter /usr/local/bin/n8n-update.sh
:
nano /usr/local/bin/n8n-update.sh
Füge folgenden Inhalt ein:
#!/bin/bash # n8n-update.sh # Automatisches Update-Skript für n8n auf einem DigitalOcean 1-Click-Droplet # Stand: 10.04.2025 # Konfiguration N8N_DIR="/opt/n8n-docker-caddy" LOGFILE="/var/log/n8n-update.log" echo "==============================================" | tee -a "$LOGFILE" echo "n8n Update gestartet am $(date)" | tee -a "$LOGFILE" echo "Arbeitsverzeichnis: $N8N_DIR" | tee -a "$LOGFILE" echo "==============================================" | tee -a "$LOGFILE" # Prüfen, ob das Verzeichnis existiert if [ ! -d "$N8N_DIR" ]; then echo "Fehler: Verzeichnis $N8N_DIR wurde nicht gefunden!" | tee -a "$LOGFILE" exit 1 fi cd "$N8N_DIR" || exit 1 # Neues n8n-Docker-Image ziehen echo "[1/3] Neues n8n-Docker-Image wird heruntergeladen..." | tee -a "$LOGFILE" docker compose pull >> "$LOGFILE" 2>&1 if [ $? -ne 0 ]; then echo "Fehler beim Herunterladen des Docker-Images." | tee -a "$LOGFILE" exit 1 fi # Bestehende Container stoppen echo "[2/3] Container werden gestoppt..." | tee -a "$LOGFILE" docker compose down >> "$LOGFILE" 2>&1 if [ $? -ne 0 ]; then echo "Fehler beim Stoppen der Container." | tee -a "$LOGFILE" exit 1 fi # Container mit neuer Version starten echo "[3/3] Container werden neu gestartet..." | tee -a "$LOGFILE" docker compose up -d >> "$LOGFILE" 2>&1 if [ $? -ne 0 ]; then echo "Fehler beim Starten der Container." | tee -a "$LOGFILE" exit 1 fi echo "n8n wurde erfolgreich aktualisiert!" | tee -a "$LOGFILE" echo "Logfile: $LOGFILE"
Drücke STRG + O
, bestätige mit Enter
und beende den Editor mit STRG + X
.
Schritt 2: Skript ausführbar machen
Führe folgenden Befehl aus, um das Skript ausführbar zu machen:
chmod +x /usr/local/bin/n8n-update.sh
Jetzt kannst du das Update jederzeit mit folgendem Befehl manuell starten:
n8n-update.sh
Schritt 3: Logdateien einsehen
Die Logdatei wird bei jedem Lauf unter /var/log/n8n-update.log
gespeichert. Du kannst sie z.?B. so einsehen:
tail -f /var/log/n8n-update.log
Schritt 4 (optional): Automatische Updates per Cronjob
Wenn du möchtest, dass das Skript automatisch regelmäßig ausgeführt wird, kannst du einen Cronjob einrichten. Beispiel: wöchentlicher Lauf jeden Sonntag um 3:00 Uhr morgens.
Öffne den Crontab des root-Users:
crontab -e
Füge folgende Zeile hinzu:
0 3 * * 0 /usr/local/bin/n8n-update.sh >> /var/log/n8n-update.log 2>&1
Speichern und schließen. Damit läuft das Update automatisch jede Woche.
Fazit
Mit diesem kleinen Shellscript kannst du deine n8n-Installation auf einem DigitalOcean-Droplet ganz einfach aktuell halten – manuell oder automatisiert. Wenn Du noch keine eigene N8N Instanz auf einem DigitalOcean Droplet hast, kannst Du über diesen DigitalOcean Affiliate-Link mit zusätzlichen Credits starten. Dank der Docker-basierten Architektur bleibt deine Konfiguration erhalten, und du profitierst immer von den neuesten Funktionen und Sicherheitsupdates.