n8n selbst hosten: Tutorial für Hetzner mit Debian 12

Aktualisiert: 2. Juli 2025

n8n selbst hosten: Tutorial für Hetzner mit Debian 12

n8n ist in aller Munde und das zu Recht! Wir setzen n8n selbst seit längerem ein und realisieren auch für Kunden Automatisierungen basierend auf n8n. Das Workflow-Automatisierungs-Tool ist extrem leistungsstark und kann neben der direkt von n8n angebotenen Cloud-Version auch auf eigenen Servern betrieben werden.

In der nachfolgenden Anleitung gehen wir die Installation am Beispiel eines Debian 12 Servers bei Hetzner durch.

Den gesamten Prozess inklusive des Anlegens des Servers zeige ich im Video. Die nachfolgende Anleitung setzt voraus, dass ein Server angelegt wurde und SSH-Zugang zu selbigem besteht (mehr dazu im Video). Die DNS-Einträge der Domain/Subdomain müssen entsprechend am Nameserver so gesetzt werden, dass die zu verwendende Domain/Subdomain auf den Server zeigt, auf dem die Installation durchgeführt wird (A-Record).

 

Paketlisten und Pakete aktualisieren:

apt update && apt upgrade -y

 

Git, Docker, Docker-Compose, AppArmor und UFW installieren:

apt install git docker.io docker-compose apparmor apparmor-utils ufw -y

 

Firewall konfigurieren für SSH, HTTP und HTTPS und anschließend aktivieren:

ufw allow 22
ufw allow 80
ufw allow 443
ufw enable

 

Neuen Benutzer anlegen und sudo-Rechte geben:

adduser n8n
usermod -aG sudo n8n

 

Wechsel auf den neuen Benutzer und ins Home-Verzeichnis wechseln:

su n8n
cd ~

 

n8n und Caddy klonen:

git clone https://github.com/n8n-io/n8n-docker-caddy.git
cd n8n-docker-caddy

 

Persistenten Speicher für n8n und Caddy anlegen:

sudo docker volume create caddy_data
sudo docker volume create n8n_data

 

Umgebungsvariablen setzen in der .env Datei. Solltet ihr den User n8n genannt haben, müsst ihr bei dem nachfolgenden Beispiel nur SUBDOMAIN und DOMAIN anpassen:

DATA_FOLDER=/home/n8n/n8n-docker-caddy
SUBDOMAIN=n8n
DOMAIN=philipthomas.de
GENERIC_TIMEZONE="Europe/Berlin"

 

Caddyfile anpassen im Verzeichnis caddy_config. Hier muss ebenfalls die Domain angepasst werden:

n8n.philipthomas.de {
    reverse_proxy n8n:5678 {
      flush_interval -1
    }
}

Dazu kann der Editor des Vertrauens genutzt werden.

 

Anschließend im Verzeichnis n8n-docker-caddy mittels docker-compose die Container starten:

sudo docker-compose up -d

 

Anschließend ist n8n auf der konfigurierten Subdomain verfügbar und es kann ein Account für den neuen Besitzer der Instanz angelegt werden:

n8n setup owner account

Philip Thomas

Philip Thomas

Wirtschaftsinformatiker mit 15+ Jahren Erfahrung: Ich helfe Unternehmen mit Cloud, KI & Automatisierung digitaler und effizienter zu arbeiten.