n8n Self-Hosting on netcup: GDPR-Compliant Setup in 30 Min

n8n selbst hosten bei netcup: DSGVO-konform in 30 Minuten

🇬🇧 English

This article contains affiliate links. If you buy through them, we may earn a commission at no extra cost to you.

n8n Self-Hosting on netcup: A GDPR-Compliant Server in 30 Minutes

Running automation workflows that touch personal data — customer emails, form submissions, CRM records — means you need to know exactly where that data lives. Cloud-based automation platforms process data on servers you do not control, which creates real headaches under GDPR. The clean solution: self-host your automation engine on a server inside the EU, ideally inside Germany. This guide walks you through the complete setup of n8n on a netcup VPS, from ordering the server to your first live workflow, in roughly 30 minutes.

Why Self-Hosting n8n Makes Sense for GDPR

When you self-host, your workflow data never leaves your own infrastructure. No vendor processes it on your behalf unless you explicitly call an external API. This dramatically simplifies your Article 30 records of processing activities and removes the need for additional Data Processing Agreements with your automation platform vendor.

  • Data residency: All workflow executions, credentials, and logs stay on your server.
  • No usage-based data sharing: Cloud platforms often log metadata about your automations. Self-hosting stops that.
  • Full audit control: You decide what gets logged and for how long — directly relevant to GDPR storage limitation requirements.
  • Cost predictability: A small VPS costs a fixed monthly amount regardless of how many executions you run.

What You Need Before You Start

  • A netcup account (registration takes about two minutes)
  • A domain or subdomain you control (e.g. automation.yourdomain.com)
  • Basic comfort with a Linux terminal and SSH
  • About 30 minutes of focused time

Step 1: Order a netcup VPS (2 Minutes)

Log in to your netcup customer control panel and order a VPS 1000 G11 or higher. The VPS 1000 G11 provides 2 vCores, 2 GB RAM, and 40 GB SSD — enough for n8n with dozens of active workflows. Select Ubuntu 22.04 LTS as the operating system. netcup's servers are located in Nuremberg and Karlsruhe, Germany, which means your data stays within EU jurisdiction by default.

Once the server is provisioned (usually under two minutes), note the public IPv4 address from the control panel.

Step 2: Point Your Domain to the Server (5 Minutes)

In your DNS provider's dashboard, create an A record for your chosen subdomain pointing to your server's IPv4 address. DNS propagation typically takes 5–15 minutes. You can continue with the next steps while it propagates.

Step 3: Connect via SSH and Harden the Server (5 Minutes)

Connect to your new server:

ssh root@YOUR_SERVER_IP

Run the following to update packages and install essentials:

apt update && apt upgrade -y
apt install -y ufw curl git

Configure the firewall:

ufw allow OpenSSH
ufw allow 80/tcp
ufw allow 443/tcp
ufw enable

Create a non-root user for day-to-day operations:

adduser n8nuser
usermod -aG sudo n8nuser

Step 4: Install Docker and Docker Compose (5 Minutes)

Docker is the cleanest way to run n8n because it isolates the application and makes updates trivial.

curl -fsSL https://get.docker.com | sh
systemctl enable docker
systemctl start docker

Verify the installation:

docker --version

Step 5: Configure and Launch n8n with Docker Compose (10 Minutes)

Create a working directory:

mkdir -p /opt/n8n && cd /opt/n8n

Create a docker-compose.yml file with the following content. Replace the placeholder values with your own domain and a strong encryption key:

version: '3.8'

services:
 n8n:
 image: n8nio/n8n:latest
 restart: always
 ports:
 - '5678:5678'
 environment:
 - N8N_HOST=automation.yourdomain.com
 - N8N_PORT=5678
 - N8N_PROTOCOL=https
 - WEBHOOK_URL=https://automation.yourdomain.com/
 - N8N_ENCRYPTION_KEY=replace_with_32char_random_string
 - GENERIC_TIMEZONE=Europe/Berlin
 - N8N_LOG_LEVEL=info
 - EXECUTIONS_DATA_PRUNE=true
 - EXECUTIONS_DATA_MAX_AGE=72
 volumes:
 - n8n_data:/home/node/.n8n

 caddy:
 image: caddy:2-alpine
 restart: always
 ports:
 - '80:80'
 - '443:443'
 volumes:
 - ./Caddyfile:/etc/caddy/Caddyfile
 - caddy_data:/data
 - caddy_config:/config
 depends_on:
 - n8n

volumes:
 n8n_data:
 caddy_data:
 caddy_config:

Now create the Caddyfile for automatic HTTPS via Let's Encrypt:

automation.yourdomain.com {
 reverse_proxy n8n:5678
}

Start everything:

docker compose up -d

After about 60 seconds, open https://automation.yourdomain.com in your browser. You will see the n8n setup wizard. Create your owner account — these credentials are stored only on your server.

Why EXECUTIONS_DATA_MAX_AGE Matters for GDPR

The EXECUTIONS_DATA_MAX_AGE=72 setting automatically deletes execution logs after 72 hours. This directly supports the GDPR storage limitation principle. Adjust the value to match your documented retention policy, and note it in your records of processing activities.

Step 6: Verify HTTPS and Security (3 Minutes)

Caddy automatically obtains and renews a Let's Encrypt certificate. Confirm everything is working:

  • Visit your subdomain — the browser should show a valid padlock.
  • Run docker compose logs caddy to confirm no certificate errors.
  • Run docker compose logs n8n to confirm n8n started without errors.

Step 7: Build Your First GDPR-Aware Workflow

Your n8n instance is live. Here are three principles to keep every workflow GDPR-compliant from day one:

  • Minimise data in workflow nodes: Only pass the fields you actually need. Avoid routing full contact records through nodes that only need an email address.
  • Use credentials, not hardcoded secrets: Store API keys in n8n's encrypted credentials vault, never in node parameters.
  • Set execution pruning per workflow: For workflows touching sensitive data, lower the log retention in the workflow settings panel.

n8n offers 400+ integrations — from Google Sheets and Slack to custom webhooks and REST APIs — so you can build almost any automation entirely on your own infrastructure.

Keeping Your Server Updated

To update n8n to the latest version:

cd /opt/n8n
docker compose pull
docker compose up -d

Schedule this as a monthly task. Subscribe to the n8n release notes to catch any security patches early.

Summary: What You Now Have

  • A dedicated n8n instance running on German infrastructure
  • Automatic HTTPS with certificate auto-renewal
  • Encrypted credential storage
  • Configurable execution log retention aligned with GDPR storage limitation
  • Full ownership of your automation data — no third-party platform touching it

If you want to start building GDPR-compliant automated workflows without vendor lock-in, you can get started for free via n8n — including self-hosting with 400+ integrations — to keep all your workflow data on your own infrastructure.

🇩🇪 Deutsch

Dieser Artikel enthält Affiliate-Links (Werbung). Kaufst du darüber, erhalten wir ggf. eine Provision – für dich ohne Mehrkosten.

n8n selbst hosten bei netcup: DSGVO-konformer Server in 30 Minuten

Wer Automatisierungsworkflows betreibt, die personenbezogene Daten berühren – Kundenmails, Formulareinreichungen, CRM-Einträge – muss genau wissen, wo diese Daten liegen. Cloud-Automatisierungsplattformen verarbeiten Daten auf Servern, die du nicht kontrollierst. Das schafft reale Probleme unter der DSGVO. Die saubere Lösung: Dein Automatisierungsserver läuft auf eigener Infrastruktur innerhalb der EU, idealerweise in Deutschland. Diese Anleitung zeigt den vollständigen Aufbau von n8n auf einem netcup VPS – von der Serverbestellung bis zum ersten Live-Workflow, in etwa 30 Minuten.

Warum Selbsthosten für die DSGVO sinnvoll ist

Beim Selbsthosten verlassen deine Workflow-Daten niemals deine eigene Infrastruktur. Kein Anbieter verarbeitet sie stellvertretend für dich, es sei denn, du rufst ausdrücklich eine externe API auf. Das vereinfacht dein Verzeichnis von Verarbeitungstätigkeiten nach Art. 30 DSGVO erheblich und eliminiert die Notwendigkeit zusätzlicher Auftragsverarbeitungsverträge mit deiner Automatisierungsplattform.

  • Datenspeicherort: Alle Workflow-Ausführungen, Zugangsdaten und Logs bleiben auf deinem Server.
  • Kein nutzungsbasiertes Datensharing: Cloud-Plattformen loggen oft Metadaten über deine Automatisierungen. Selbsthosten verhindert das.
  • Vollständige Audit-Kontrolle: Du entscheidest, was wie lange gespeichert wird – direkt relevant für das DSGVO-Prinzip der Speicherbegrenzung.
  • Planbare Kosten: Ein kleiner VPS kostet einen festen Monatsbetrag, unabhängig von der Anzahl deiner Workflow-Ausführungen.

Was du vor dem Start brauchst

  • Ein netcup-Kundenkonto (Registrierung dauert etwa zwei Minuten)
  • Eine Domain oder Subdomain, die du verwaltest (z. B. automation.deinedomain.de)
  • Grundkenntnisse im Umgang mit einem Linux-Terminal und SSH
  • Etwa 30 Minuten konzentrierte Zeit

Schritt 1: netcup VPS bestellen (2 Minuten)

Melde dich im netcup Kundenkontrollpanel an und bestelle einen VPS 1000 G11 oder größer. Der VPS 1000 G11 bietet 2 vCores, 2 GB RAM und 40 GB SSD – ausreichend für n8n mit Dutzenden aktiver Workflows. Wähle Ubuntu 22.04 LTS als Betriebssystem. Die Server von netcup stehen in Nürnberg und Karlsruhe, Deutschland – deine Daten bleiben damit standardmäßig innerhalb der EU-Jurisdiktion.

Sobald der Server bereitgestellt ist (meist unter zwei Minuten), notiere dir die öffentliche IPv4-Adresse aus dem Kontrollpanel.

Schritt 2: Domain auf den Server zeigen lassen (5 Minuten)

Lege im Dashboard deines DNS-Anbieters einen A-Record für deine gewählte Subdomain an, der auf die IPv4-Adresse deines Servers zeigt. Die DNS-Propagation dauert typischerweise 5–15 Minuten. Du kannst mit den nächsten Schritten fortfahren, während sie läuft.

Schritt 3: Per SSH verbinden und Server absichern (5 Minuten)

Verbinde dich mit deinem neuen Server:

ssh root@DEINE_SERVER_IP

Pakete aktualisieren und wichtige Tools installieren:

apt update && apt upgrade -y
apt install -y ufw curl git

Firewall konfigurieren:

ufw allow OpenSSH
ufw allow 80/tcp
ufw allow 443/tcp
ufw enable

Nicht-root-Benutzer für den laufenden Betrieb anlegen:

adduser n8nuser
usermod -aG sudo n8nuser

Schritt 4: Docker und Docker Compose installieren (5 Minuten)

Docker ist der sauberste Weg, n8n zu betreiben, da es die Anwendung isoliert und Updates trivial macht.

curl -fsSL https://get.docker.com | sh
systemctl enable docker
systemctl start docker

Installation prüfen:

docker --version

Schritt 5: n8n mit Docker Compose konfigurieren und starten (10 Minuten)

Arbeitsverzeichnis anlegen:

mkdir -p /opt/n8n && cd /opt/n8n

Erstelle eine Datei docker-compose.yml mit folgendem Inhalt. Ersetze die Platzhalter durch deine eigene Domain und einen starken Verschlüsselungsschlüssel:

version: '3.8'

services:
 n8n:
 image: n8nio/n8n:latest
 restart: always
 ports:
 - '5678:5678'
 environment:
 - N8N_HOST=automation.deinedomain.de
 - N8N_PORT=5678
 - N8N_PROTOCOL=https
 - WEBHOOK_URL=https://automation.deinedomain.de/
 - N8N_ENCRYPTION_KEY=ersetze_mit_32_zeichen_zufallsstring
 - GENERIC_TIMEZONE=Europe/Berlin
 - N8N_LOG_LEVEL=info
 - EXECUTIONS_DATA_PRUNE=true
 - EXECUTIONS_DATA_MAX_AGE=72
 volumes:
 - n8n_data:/home/node/.n8n

 caddy:
 image: caddy:2-alpine
 restart: always
 ports:
 - '80:80'
 - '443:443'
 volumes:
 - ./Caddyfile:/etc/caddy/Caddyfile
 - caddy_data:/data
 - caddy_config:/config
 depends_on:
 - n8n

volumes:
 n8n_data:
 caddy_data:
 caddy_config:

Erstelle jetzt das Caddyfile für automatisches HTTPS über Let's Encrypt:

automation.deinedomain.de {
 reverse_proxy n8n:5678
}

Alles starten:

docker compose up -d

Nach etwa 60 Sekunden öffne https://automation.deinedomain.de im Browser. Du siehst den n8n-Einrichtungsassistenten. Lege dein Besitzer-Konto an – diese Zugangsdaten werden ausschließlich auf deinem Server gespeichert.

Warum EXECUTIONS_DATA_MAX_AGE für die DSGVO wichtig ist

Die Einstellung EXECUTIONS_DATA_MAX_AGE=72 löscht Ausführungsprotokolle automatisch nach 72 Stunden. Das unterstützt direkt das DSGVO-Prinzip der Speicherbegrenzung. Passe den Wert an deine dokumentierte Aufbewahrungsrichtlinie an und halte ihn in deinem Verzeichnis von Verarbeitungstätigkeiten fest.

Schritt 6: HTTPS und Sicherheit prüfen (3 Minuten)

Caddy holt und erneuert das Let's Encrypt-Zertifikat automatisch. Überprüfe, ob alles funktioniert:

  • Rufe deine Subdomain auf – der Browser sollte ein gültiges Schlosssymbol anzeigen.
  • Führe docker compose logs caddy aus, um Zertifikatsfehler auszuschließen.
  • Führe docker compose logs n8n aus, um zu bestätigen, dass n8n fehlerfrei gestartet ist.

Schritt 7: Deinen ersten DSGVO-konformen Workflow bauen

Deine n8n-Instanz läuft. Drei Grundsätze, damit jeder Workflow von Anfang an DSGVO-konform bleibt:

  • Daten in Nodes minimieren: Übergib nur die Felder, die du wirklich brauchst. Leite keine vollständigen Kontaktdatensätze durch Nodes, die nur eine E-Mail-Adresse benötigen.
  • Zugangsdaten statt hartcodierter Secrets: Speichere API-Schlüssel im verschlüsselten Zugangsdaten-Tresor von n8n, niemals in Node-Parametern.
  • Ausführungs-Pruning pro Workflow einstellen: Für Workflows mit sensiblen Daten die Log-Aufbewahrung in den Workflow-Einstellungen reduzieren.

Server aktuell halten

So aktualisierst du n8n auf die neueste Version:

cd /opt/n8n
docker compose pull
docker compose up -d

Plane das als monatliche Aufgabe ein. Abonniere die n8n-Release-Notes, um Sicherheits-Patches frühzeitig zu erhalten.

Zusammenfassung: Was du jetzt hast

  • Eine dedizierte n8n-Instanz auf deutscher Infrastruktur
  • Automatisches HTTPS mit Zertifikatserneuerung
  • Verschlüsselter Zugangsdaten-Speicher
  • Konfigurierbare Ausführungslog-Aufbewahrung entsprechend dem DSGVO-Prinzip der Speicherbegrenzung
  • Vollständige Kontrolle über deine Automatisierungsdaten – keine Drittanbieterplattform greift darauf zu

Wenn du DSGVO-konforme Workflows ohne Vendor-Lock-in aufbauen möchtest, kannst du über n8n kostenlos starten — inklusive Selbsthosting mit über 400 Integrationen — und alle Workflow-Daten auf deiner eigenen Infrastruktur behalten.