In dieser Anleitung zeige ich dir, wie du n8n auf einem bestehenden Debian-Server installierst und über einen Cloudflare Tunnel sicher im Internet verfügbar machst – ohne komplizierte Portfreigaben oder separate SSL-Zertifikate.
Alles läuft in Docker Compose, sodass du nur ein einziges Setup brauchst, das automatisch mit dem System startet.
✅ Voraussetzungen
- Debian 12 (Bookworm) Server mit SSH-Zugang
- Docker ist installiert (
docker ps
sollte laufen) - Kostenloser Cloudflare-Account (cloudflare.com)
- Eigene Domain (z. B.
example.com
), die bei Cloudflare eingebunden ist
👉 Falls Docker noch nicht installiert ist, hier die Schnellinstallation:
curl -fsSL https://get.docker.com | sh
1. Docker Compose installieren
Debian bringt Compose oft nicht mit. Installiere es über das Docker-Repository:
sudo apt update
sudo apt install ca-certificates curl gnupg -y
# Docker GPG-Key hinzufügen
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
# Docker-Repo einrichten
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] \
https://download.docker.com/linux/debian $(lsb_release -cs) stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# Docker + Compose installieren
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y
Testen:
docker compose version
2. Cloudflare Tunnel vorbereiten
a) Cloudflare-Account erstellen
Falls du noch keinen Account hast:
- Gehe auf cloudflare.com
- Registriere dich kostenlos
- Lege deine Domain in Cloudflare an (DNS wird zu Cloudflare umgeleitet)
b) Cloudflared installieren
sudo mkdir -p /usr/local/bin
sudo curl -L https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64 -o /usr/local/bin/cloudflared
sudo chmod +x /usr/local/bin/cloudflared
c) Einloggen
cloudflared tunnel login
👉 Browser öffnet sich → in Cloudflare einloggen → Domain auswählen.
d) Tunnel erstellen
cloudflared tunnel create n8n-tunnel
Cloudflare legt eine JSON-Datei mit den Credentials in ~/.cloudflared/
an.
Die Tunnel-ID notieren (z. B. abcd1234-xxxx-yyyy-zzzz-abcdef123456
).
3. Cloudflare Tunnel konfigurieren
Config-Datei anlegen:
nano ~/.cloudflared/config.yml
Inhalt:
tunnel: abcd1234-xxxx-yyyy-zzzz-abcdef123456
credentials-file: /etc/cloudflared/abcd1234-xxxx-yyyy-zzzz-abcdef123456.json
ingress:
- hostname: n8n.example.com
service: http://n8n:5678
- service: http_status:404
👉 n8n.example.com
ist die Subdomain, unter der n8n erreichbar sein soll.
DNS-Eintrag setzen
cloudflared tunnel route dns n8n-tunnel n8n.example.com
4. Docker-Compose Setup erstellen
Projektordner anlegen:
mkdir -p ~/n8n-docker
cd ~/n8n-docker
Datei erstellen:
nano docker-compose.yml
Inhalt einfügen:
version: "3.8"
services:
n8n:
image: n8nio/n8n
container_name: n8n
restart: unless-stopped
ports:
- "5678:5678"
environment:
- N8N_HOST=n8n.example.com
- N8N_PORT=5678
- N8N_PROTOCOL=https
- WEBHOOK_URL=https://n8n.example.com/
- N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=true
- DB_SQLITE_POOL_SIZE=1
- N8N_RUNNERS_ENABLED=true
- N8N_BLOCK_ENV_ACCESS_IN_NODE=false
- N8N_SECURE_COOKIE=true
volumes:
- ./n8n_data:/home/node/.n8n
cloudflared:
image: cloudflare/cloudflared:latest
container_name: cloudflared
restart: unless-stopped
command: tunnel run abcd1234-xxxx-yyyy-zzzz-abcdef123456
volumes:
- /home/<user>/.cloudflared:/etc/cloudflared
👉 Wichtig:
- Ersetze die Tunnel-ID mit deiner eigenen.
- Passe
<user>
an deinen Server-Benutzernamen an. - Setze deine eigene Domain
n8n.example.com
.
5. Container starten
cd ~/n8n-docker
docker compose up -d
Logs prüfen:
docker compose logs -f cloudflared
👉 Wenn du Meldungen wie Registered tunnel connection
siehst → läuft.
6. n8n im Browser öffnen
Gehe auf:
https://n8n.example.com
➡️ Dein n8n ist jetzt öffentlich erreichbar – über HTTPS, abgesichert durch Cloudflare.
✅ Fazit
Mit diesem Setup hast du:
- n8n in Docker laufen
- einen sicheren Cloudflare Tunnel ohne Portfreigaben
- automatisches SSL-Zertifikat über Cloudflare
- Autostart über Docker Compose
Das Ganze ist leicht zu warten, portabel und sicher.
🔄 Update mit Docker Compose
1. In den Projektordner wechseln
cd ~/n8n-docker
2. Neueste Images laden
docker compose pull
👉 Dadurch wird das aktuellste n8nio/n8n
-Image heruntergeladen.
3. Container neu starten
docker compose up -d
👉 n8n läuft jetzt mit der neuen Version.
Deine Daten bleiben erhalten, weil sie in ./n8n_data
gespeichert sind (Volume).
✅ Version prüfen
Du kannst die aktuelle Version in den n8n-Einstellungen („About“) sehen oder per Container-Log prüfen:
docker exec -it n8n n8n --version
🔒 Empfehlung vor Updates
- Backup machen: Sichere den Ordner
./n8n_data
.tar -czf n8n_backup_$(date +%F).tar.gz ./n8n_data
- Changelog ansehen: Auf GitHub Releases checken, ob es Breaking Changes gibt.