n8n Installation auf Ubuntu 24.04 mit Caddy und automatischen SSL-Zertifikaten

Sie interessieren sich für das vorgestellte Produkt? Sprechen Sie uns an! Bei WZ-IT übernehmen wir Beratung, Installation, Support, Betrieb, Wartung und Monitoring Ihrer Lösung. Vereinbaren Sie hier Ihr kostenloses und unverbindliches Gespräch: Termin vereinbaren.
n8n ist eine leistungsstarke Open-Source-Workflow-Automatisierungsplattform, die es Ihnen ermöglicht, verschiedene Dienste und APIs miteinander zu verbinden. Als Alternative zu kommerziellen Lösungen wie Zapier oder Make bietet n8n volle Kontrolle über Ihre Automatisierungen und Daten. In dieser Anleitung zeigen wir Ihnen, wie Sie n8n auf einem Ubuntu 24.04 Server mit PostgreSQL-Datenbank installieren und automatisch SSL-Zertifikate von Let's Encrypt mit Caddy einrichten.
Inhaltsverzeichnis
- Voraussetzungen
- Schritt 1: Server vorbereiten
- Schritt 2: Docker und Docker Compose installieren
- Schritt 3: Benutzer für n8n erstellen
- Schritt 4: Verzeichnisstruktur einrichten
- Schritt 5: Umgebungsvariablen konfigurieren
- Schritt 6: Caddy als Reverse Proxy einrichten
- Schritt 7: Docker Compose Konfiguration
- Schritt 8: n8n starten
- Schritt 9: Erstkonfiguration & Benutzerverwaltung
- Firewall-Konfiguration
- Backup & Updates
- Fazit
Voraussetzungen
- Ein Ubuntu 24.04 Server (z.B. ein VPS von Hetzner oder einem anderen Anbieter)
- Zugriff auf den Server via SSH
- Domain, die auf den Server zeigt (mind. A Eintrag) (z.B.
n8n.example.com
)
In unserem Beispiel verwenden wir die Domain n8n-demo.wz-it.com
. Sie können diese Domain in der Anleitung durch Ihre eigene Domain ersetzen. Wir haben die Domain mit einem A Eintrag auf die IP-Adresse des Servers gesetzt, auf dem wir n8n installieren möchten.
Schritt 1: Server vorbereiten
Wir melden uns per SSH als root oder einem Benutzer mit sudo-Rechten auf dem Server an und aktualisieren die Paketliste:
apt update && apt upgrade -y
Schritt 2: Docker und Docker Compose installieren
curl -fsSL https://get.docker.com -o get-docker.sh
sh get-docker.sh
rm get-docker.sh
Dieses Skript installiert die neuste Version von Docker und Docker Compose. Schauen Sie sich auch gerne den Inhalt des Skripts an, um zu verstehen, was genau passiert. Generell ist es keine gute Idee, Skripte aus dem Internet blind auszuführen, aber in diesem Fall ist es eine gängige Methode, um Docker zu installieren.
Schritt 3: Benutzer für n8n erstellen
Wir erstellen einen neuen Benutzer, der später für die n8n Installation verwendet wird. Außerdem fügen wir den Benutzer zur Docker-Gruppe hinzu, damit er Docker-Befehle ohne sudo ausführen kann. Dies ist wichtig, da n8n in einem Docker-Container läuft und der Benutzer Zugriff auf die Docker-Ressourcen benötigt.
adduser --system --group --home /opt/n8n n8n
sudo usermod -aG docker n8n
Schritt 4: Verzeichnisstruktur einrichten
Wir wechseln in das Benutzerverzeichnis und erstellen die notwendigen Verzeichnisse:
cd /opt/n8n
sudo -u n8n mkdir -p n8n_data caddy_config local_files
- n8n_data speichert Verschlüsselungskeys, Logs und Source Control Assets
- local_files ermöglicht Dateizugriff in Workflows (z.B. Read/Write File Node)
- caddy_config enthält die Caddy-Konfiguration (Caddyfile)
Hinweis: Workflows, Credentials und Ausführungsdaten werden in der PostgreSQL-Datenbank gespeichert, während das n8n_data Verzeichnis wichtige Systemdaten wie Verschlüsselungskeys enthält.
Schritt 5: Umgebungsvariablen konfigurieren
Erstellen Sie die .env
Datei mit den notwendigen Konfigurationen:
sudo -u n8n nano .env
Fügen Sie folgenden Inhalt ein:
DOMAIN_NAME=wz-it.com
SUBDOMAIN=n8n-demo
GENERIC_TIMEZONE=Europe/Berlin
TZ=Europe/Berlin
[email protected]
# Host-Konfiguration
N8N_HOST=${SUBDOMAIN}.${DOMAIN_NAME}
N8N_PORT=5678
N8N_PROTOCOL=https
WEBHOOK_URL=https://${SUBDOMAIN}.${DOMAIN_NAME}/
# PostgreSQL Konfiguration
POSTGRES_USER=n8n
POSTGRES_PASSWORD=HIER_SICHERES_PASSWORT_EINFÜGEN
POSTGRES_DB=n8n
Generieren Sie ein sicheres Datenbankpasswort mit folgendem Befehl:
openssl rand -base64 32
Ersetzen Sie:
wz-it.com
mit Ihrer Domainn8n-demo
mit Ihrer gewünschten Subdomain[email protected]
mit Ihrer E-Mail-Adresse für Let's Encrypt BenachrichtigungenHIER_SICHERES_PASSWORT_EINFÜGEN
mit dem generierten Datenbankpasswort
Die WEBHOOK_URL
ist besonders wichtig, da n8n diese für die korrekte Funktion von Webhooks benötigt. Stellen Sie sicher, dass diese auf Ihre tatsächliche Domain mit HTTPS verweist.
Schritt 6: Caddy als Reverse Proxy einrichten
Erstellen Sie die Datei Caddyfile
im caddy_config Verzeichnis:
sudo -u n8n nano caddy_config/Caddyfile
Fügen Sie folgenden Inhalt ein:
{
email [email protected]
}
n8n-demo.wz-it.com {
reverse_proxy n8n:5678 {
flush_interval -1
}
}
Caddy kümmert sich automatisch um die SSL-Zertifikate via Let's Encrypt und leitet den Traffic an den n8n-Dienst weiter. Die flush_interval -1
Einstellung ist wichtig für n8n, um die Verbindung bei langen Workflows nicht zu unterbrechen.
Ersetzen Sie n8n-demo.wz-it.com
durch Ihre eigene Domain und [email protected]
durch Ihre E-Mail-Adresse.
Schritt 7: Docker Compose Konfiguration
Erstellen Sie die docker-compose.yml
:
sudo -u n8n nano docker-compose.yml
Fügen Sie folgenden Inhalt ein:
version: "3.7"
services:
caddy:
image: caddy:latest
restart: unless-stopped
ports:
- "80:80"
- "443:443"
volumes:
- caddy_data:/data
- ./caddy_config:/config
- ./caddy_config/Caddyfile:/etc/caddy/Caddyfile
depends_on:
- n8n
networks:
- n8n-network
postgres:
image: postgres:16
restart: unless-stopped
environment:
- POSTGRES_USER=${POSTGRES_USER}
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
- POSTGRES_DB=${POSTGRES_DB}
volumes:
- postgres_data:/var/lib/postgresql/data
healthcheck:
test: ['CMD-SHELL', 'pg_isready -h localhost -U ${POSTGRES_USER} -d ${POSTGRES_DB}']
interval: 5s
timeout: 5s
retries: 10
networks:
- n8n-network
n8n:
image: docker.n8n.io/n8nio/n8n:latest
restart: unless-stopped
environment:
- N8N_HOST=${SUBDOMAIN}.${DOMAIN_NAME}
- N8N_PORT=5678
- N8N_PROTOCOL=https
- WEBHOOK_URL=https://${SUBDOMAIN}.${DOMAIN_NAME}/
- GENERIC_TIMEZONE=${GENERIC_TIMEZONE}
- TZ=${TZ}
- N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=true
- N8N_RUNNERS_ENABLED=true
- DB_TYPE=postgresdb
- DB_POSTGRESDB_DATABASE=${POSTGRES_DB}
- DB_POSTGRESDB_HOST=postgres
- DB_POSTGRESDB_PORT=5432
- DB_POSTGRESDB_USER=${POSTGRES_USER}
- DB_POSTGRESDB_PASSWORD=${POSTGRES_PASSWORD}
volumes:
- n8n_data:/home/node/.n8n
- ./local_files:/files
depends_on:
postgres:
condition: service_healthy
networks:
- n8n-network
volumes:
caddy_data:
n8n_data:
postgres_data:
networks:
n8n-network:
driver: bridge
Diese Konfiguration enthält:
- postgres Container mit PostgreSQL 16 für die Datenbank
- postgres_data Volume für persistente Speicherung der Datenbankdaten
- n8n_data Volume für Verschlüsselungskeys, Logs und Source Control Assets
- local_files Verzeichnis für Workflows mit lokalen Dateien
- caddy_data Volume für SSL-Zertifikate und Caddy-Daten
- n8n-network für die Kommunikation zwischen den Containern
Schritt 8: n8n starten
Wir starten nun n8n und Caddy mit Docker Compose:
sudo -u n8n docker compose up -d
Überwachen Sie die Logs, um sicherzustellen, dass alles korrekt läuft:
sudo -u n8n docker compose logs -f caddy
sudo -u n8n docker compose logs -f n8n
Wenn alles korrekt läuft, sollten Sie n8n über https://n8n-demo.wz-it.com
(bzw. Ihre Domain) erreichen können.
Schritt 9: Erstkonfiguration & Benutzerverwaltung
Beim ersten Aufruf von n8n werden Sie aufgefordert, einen Administrator-Benutzer anzulegen. n8n verwendet ein modernes Benutzer- und Rollenverwaltungssystem, bei dem Sie:
- Einen Admin-Account mit E-Mail und Passwort erstellen
- Weitere Benutzer mit verschiedenen Rollen anlegen können
- Zugriffsrechte für Workflows und Credentials verwalten können

Nach der Einrichtung haben Sie Zugriff auf die n8n Oberfläche und können mit dem Erstellen Ihrer ersten Workflows beginnen.

Wichtige Hinweise:
- Die
WEBHOOK_URL
muss korrekt auf Ihre Domain mit HTTPS verweisen - Für produktive Umgebungen sollten Sie regelmäßige Backups einrichten
- Bei vielen Workflows empfiehlt sich der Queue Mode mit Redis
Firewall-Konfiguration
Wenn Sie eine Firewall auf Ihrem Server eingerichtet haben, stellen Sie sicher, dass die Ports 80 (HTTP) und 443 (HTTPS) geöffnet sind. Dies ist notwendig, damit Caddy die Anfragen über HTTP und HTTPS entgegennehmen kann. Sie können dies mit ufw
tun oder über die Firewall Ihres Cloud-Anbieters konfigurieren.
ufw allow 80
ufw allow 443
ufw enable
Backup & Updates
Backup
Für regelmäßige Backups sollten Sie sowohl die PostgreSQL-Datenbank als auch das n8n_data
Volume sichern:
PostgreSQL Datenbank Backup:
# Backup erstellen
sudo -u n8n docker compose exec postgres pg_dump -U n8n n8n > /opt/n8n/backups/n8n-db-backup-$(date +%Y%m%d).sql
# Oder als komprimiertes Backup
sudo -u n8n docker compose exec postgres pg_dump -U n8n n8n | gzip > /opt/n8n/backups/n8n-db-backup-$(date +%Y%m%d).sql.gz
n8n Data Volume Backup:
sudo -u n8n docker run --rm -v n8n_n8n_data:/data -v /opt/n8n/backups:/backup ubuntu tar czf /backup/n8n-data-backup-$(date +%Y%m%d).tar.gz /data
Zusätzlich können Sie Workflows und Credentials über die n8n UI exportieren.
Updates
Um n8n auf die neueste Version zu aktualisieren, führen Sie folgende Befehle aus:
cd /opt/n8n
sudo -u n8n docker compose pull
sudo -u n8n docker compose down
sudo -u n8n docker compose up -d
Wichtig: Erstellen Sie immer ein Backup, bevor Sie Updates durchführen!
Fazit
Mit dieser Anleitung haben Sie n8n erfolgreich auf einem Ubuntu 24.04 Server mit PostgreSQL-Datenbank installiert und mit Caddy ein SSL-Zertifikat von Let's Encrypt eingerichtet. Die Verwendung von PostgreSQL bietet bessere Performance und Skalierbarkeit im Vergleich zur Standard-SQLite-Installation, besonders bei höherer Last und vielen gleichzeitigen Workflows.
n8n bietet eine große Auswahl an Integrationen und kann als Alternative zu kommerziellen Workflow-Automatisierungstools wie Zapier oder Make verwendet werden. Weitere Informationen und eine vollständige Dokumentation finden Sie auf der offiziellen n8n Website: https://docs.n8n.io/.
Diese Installation ist produktionsbereit. Für Umgebungen mit sehr hoher Last empfehlen sich zusätzliche Konfigurationen wie:
- Redis für Queue Mode mit mehreren Workers
- Externe Speicher für Dateien (z.B. S3)
- SSO/OIDC-Integration für Unternehmen
- Load Balancer für mehrere n8n-Instanzen
Quellen
Diese Anleitung basiert auf der offiziellen n8n Dokumentation:
Lassen Sie uns über Ihr Projekt sprechen
Ob konkrete IT-Herausforderung oder einfach eine Idee – wir freuen uns auf den Austausch. In einem kurzen Gespräch prüfen wir gemeinsam, ob und wie Ihr Projekt zu WZ-IT passt.
Vertraut von führenden Unternehmen


