Fertiges Shell-Script: n8n auf einem DigitalOcean 1-Click-Droplet aktualisieren

n8n_logo_anleitung

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


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.