
n8n auf einem Ubuntu-Server selbst hosten

Willst du Aufgaben automatisieren mit n8n, möchtest aber die volle Kontrolle über deine IT-Infrastruktur behalten? Mit einem selbstgehosteten n8n auf einem Ubuntu-Server reduzierst du Kosten und verwaltest deine Daten selbst!
Diese einfache Schritt-für-Schritt-Anleitung zeigt dir, wie du n8n mithilfe von Docker und dem Caddy-Webserver für automatische HTTPS-Zertifikate installierst.
Bevor wir loslegen, überprüfe, ob du folgendes hast:
- Einen laufenden Ubuntu Linux-Server. Eine tolle Option ist zum Beispiel Hetzner, aber jeder Ubuntu-Server mit SSH-Zugang und öffentlicher IP-Adresse funktioniert.
- Grundlegende Erfahrung mit SSH.
Schritt 1: Deinen Server aktualisieren
Logge dich per SSH auf deinem Server ein und führe die neuesten Updates durch, damit dein System sicher und aktuell ist:
sudo apt-get update
sudo apt-get upgrade -y
Nach diesem Schritt ist dein Server startklar!
Schritt 2: Die UFW Firewall installieren und einrichten
Schütze deinen Server, indem du nur nötige Ports freigibst: SSH (22), HTTP (80), HTTPS (443).
Installiere und aktiviere die Firewall so:
sudo apt install ufw -y
sudo ufw allow 22 # SSH
sudo ufw allow 80 # HTTP
sudo ufw allow 443 # HTTPS
sudo ufw enable
Checke deine aktuelle Firewall-Konfiguration:
sudo ufw status verbose
Achtung: Docker ignoriert manchmal UFW-Einstellungen. Schau zur Sicherheit auch hier vorbei.
Schritt 3: Docker installieren
Docker brauchen wir, um n8n laufen zu lassen. Also los geht’s, Docker einrichten:
Erst die Dependencies und den GPG-Schlüssel von Docker installieren:
sudo apt-get update
sudo apt-get install ca-certificates curl gnupg
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg \
| sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
Nun das Docker-Repository hinzufügen:
echo \
"deb [arch=$(dpkg --print-architecture) \
signed-by=/etc/apt/keyrings/docker.gpg] \
https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo $VERSION_CODENAME) stable" \
| sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
Docker Engine und compose-plugin installieren:
sudo apt-get install docker-ce docker-ce-cli \
containerd.io docker-buildx-plugin docker-compose-plugin -y
Prüfe, ob Docker läuft:
sudo docker run hello-world
Siehst du die "hello-world" Nachricht? Klasse, Docker ist startklar!
Schritt 4: Caddy installieren für automatische HTTPS-Zertifikate
Caddy übernimmt die Herausforderung von SSL-Zertifikaten automatisch (dank Let's Encrypt).
Installiere Caddy:
sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https curl
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' \
| sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' \
| sudo tee /etc/apt/sources.list.d/caddy-stable.list
sudo apt update
sudo apt install caddy -y
Nun bearbeitest du die Caddyfile-Konfiguration:
sudo nano /etc/caddy/Caddyfile
Gib deine Domain ein. Ersetze "yourdomain.com" mit deiner echten Domain:
yourdomain.com {
reverse_proxy localhost:5678
}
Noch keine Domain? Nutze vorübergehend das hier:
:80 {
reverse_proxy localhost:5678
}
Starte Caddy neu, um alles zu laden:
sudo systemctl restart caddy
Schritt 5: n8n mit Docker Compose starten
Docker Compose macht dein Leben einfacher. Erstelle das Verzeichnis und die Datei dafür:
mkdir ~/n8n
cd ~/n8n
Erstelle die Datei docker-compose.yml
mit folgendem Inhalt:
services:
n8n:
image: docker.n8n.io/n8nio/n8n:latest
restart: always
ports:
- "5678:5678"
volumes:
- n8n_data:/home/node/.n8n
volumes:
n8n_data:
Nun startest du n8n, indem du Docker Compose ausführst:
sudo docker compose up -d
Docker lädt automatisch das Image und startet es im Hintergrund auf Port 5678.
Schritt 6: Deine n8n-Instanz verwenden
Rufe deine Domain im Webbrowser auf, die n8n-Oberfläche erscheint jetzt unter https://yourdomain.com
. Folge den Schritten auf dem Bildschirm zur Einrichtung.
Sicherheitstipps
Öffentliche Server sollten immer sicher sein. Hier ein paar Tipps:
- Installiere regelmäßig Updates und Sicherheitspatches.
- Setze starke Passwörter und schränke Nutzerzugriffe ein.
- Überwache Serverlogs auf ungewöhnliche Aktivitäten hin.
- Erwäge Sicherheitssoftware wie Fail2ban zu nutzen.
Deine n8n-Installation updaten
Updates machst du ganz einfach per Docker Compose:
sudo docker compose pull
sudo docker compose up -d
Docker lädt automatisch die neuesten Container-Versionen herunter.
Kostenvergleich mit anderen Anbietern
Selbstgehostete n8n-Lösungen sind günstiger als hosted Varianten:
Anbieter | vCPU | RAM | Disk | Monatliche Kosten |
---|---|---|---|---|
Render.com | 1 | 2 GB | 40 GB | ~35$ |
Fly.io | 2 | 2 GB | 40 GB | ~17–20$ |
Railway | 2 | 2 GB | 40 GB | ~15–30$ |
Sliplane.io | 2 | 2 GB | 40 GB | ~9,50€ |
Hetzner Cloud (selbstgehostet) | 2 | 2 GB | 40 GB | ~5–10€ pro Monat |
Natürlich gibt's nichts umsonst, jetzt bist du verantwortlich für die Server-Pflege. Dafür hast du aber volle Kontrolle!
Fehlt selbstgehosteten n8n-Versionen irgendwas?
Der Community-Version fehlen einige Features der offiziellen hosted-Variante, aber grundsätzlich bietet sie alles Nötige. Eine detaillierte Übersicht gibt's direkt bei n8n.
Geschafft! Dein eigener n8n-Server läuft jetzt auf Ubuntu. Zeit, deine Workflows zu automatisieren.
Falls dir die Serverwartung und Sicherheit zu viel Aufwand sind, schau dir an, wie du n8n in 45 Sekunden auf sliplane installieren kannst!