n8n Setup-Guide: Von Light bis Pro (SQLite, PostgreSQL, Supabase)
Ein umfassender Guide für n8n-Installationen – von SQLite-Einstieg bis zur PostgreSQL-Konfiguration mit Supabase.

KI-generiertn8n ist ein leistungsstarkes Werkzeug für Workflow-Automation, aber die Installation kann komplex erscheinen. Deshalb haben wir bei AIscream den Setup-Prozess in drei Varianten aufbereitet.
Vom einfachen SQLite-Setup für erste Schritte bis zur PostgreSQL-Installation für produktive Umgebungen. Welche Variante für Sie passt, hängt von Ihrem aktuellen Bedarf und Ihren Wachstumsplänen ab.
Voraussetzungen
Für alle Varianten benötigen Sie:
- Einen Hetzner Cloud Server (Mindestens CPX11, für produktive Umgebungen besser CPX21)
- Ubuntu 20.04 LTS oder neuer
- Docker und Docker Compose
- Eine Domain mit DNS-Konfiguration
Der Einrichtungsaufwand ist überschaubar und der Nutzen erheblich.
Variante 1: Die SQLite-Edition (Für Einsteiger)
Diese Variante ist die einfachste Option: Zuverlässig, wartungsarm, aber nicht für hohe Lasten ausgelegt.
Komponenten
- n8n: Das Workflow-Werkzeug (im Container)
- Caddy: Sorgt für HTTPS-Verschlüsselung (im Container)
- SQLite: Datenbank direkt im n8n-Container
Verzeichnisstruktur
/opt/n8n/
├── data/ # Datenspeicher
│ ├── caddy_config/ # Caddy-Konfiguration
│ │ └── Caddyfile # Reverse-Proxy-Konfiguration
│ └── local_files/ # Dateien für n8n-Workflows
└── docker-compose.yml # Container-Konfiguration
└── .env # UmgebungsvariablenInstallation
1. Verzeichnisse anlegen:
mkdir -p /opt/n8n/data/caddy_config
mkdir -p /opt/n8n/data/local_files2. Docker Volumes erstellen:
docker volume create caddy_data
docker volume create n8n_data3. Konfigurationsdateien erstellen:
Erstellen Sie zunächst die Docker-Compose-Datei:
services:
caddy:
container_name: caddy
image: caddy:latest
restart: unless-stopped
ports:
- "80:80"
- "443:443"
volumes:
- caddy_data:/data
- ${DATA_FOLDER}/caddy_config:/config
- ${DATA_FOLDER}/caddy_config/Caddyfile:/etc/caddy/Caddyfile
networks:
- n8n-network
n8n:
container_name: n8n
image: docker.n8n.io/n8nio/n8n
restart: always
ports:
- 5678:5678
environment:
- N8N_HOST=${SUBDOMAIN}.${DOMAIN_NAME}
- N8N_PORT=5678
- N8N_PROTOCOL=https
- NODE_ENV=production
- WEBHOOK_URL=https://${SUBDOMAIN}.${DOMAIN_NAME}/
- GENERIC_TIMEZONE=${GENERIC_TIMEZONE}
- N8N_BASIC_AUTH_ACTIVE=${N8N_BASIC_AUTH_ACTIVE}
- N8N_BASIC_AUTH_USER=${N8N_BASIC_AUTH_USER}
- N8N_BASIC_AUTH_PASSWORD=${N8N_BASIC_AUTH_PASSWORD}
- N8N_ENCRYPTION_KEY=${N8N_ENCRYPTION_KEY}
- N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=true
volumes:
- n8n_data:/home/node/.n8n
- ${DATA_FOLDER}/local_files:/files
networks:
- n8n-network
volumes:
caddy_data:
external: true
n8n_data:
external: true
networks:
n8n-network:
driver: bridgeDie .env-Datei für die Konfiguration:
DOMAIN_NAME=aiscream.de # Ihre Domain
SUBDOMAIN=demo # Ihre Subdomain für n8n
DATA_FOLDER=/opt/n8n/data # Speicherort der Daten
GENERIC_TIMEZONE=Europe/Berlin # Zeitzone
N8N_BASIC_AUTH_ACTIVE=true # Zugriffskontrolle aktivieren
N8N_BASIC_AUTH_USER=admin # Benutzername
N8N_BASIC_AUTH_PASSWORD=**** # Sicheres Passwort wählen
N8N_ENCRYPTION_KEY=**** # Verschlüsselungsschlüssel (mindestens 32 Zeichen)Die Caddyfile:
demo.aiscream.de {
reverse_proxy n8n:5678 {
flush_interval -1
}
}4. Container starten:
cd /opt/n8n
docker compose up -dNach dem Start erreichen Sie n8n unter https://demo.aiscream.de (bzw. Ihrer konfigurierten Domain).
Limitierungen der SQLite-Version
Diese Version eignet sich für den Einstieg und kleinere Workloads:
- Bis zu 5.000-10.000 tägliche Workflow-Ausführungen
- 10-15 gleichzeitige Workflows
- Datenbank sollte unter 5 GB bleiben
- SQLite ist nicht für viele gleichzeitige Schreibvorgänge optimiert
Variante 2: Die PostgreSQL-Edition (Für wachsende Unternehmen)
Wenn Ihr Bedarf wächst, bietet PostgreSQL mehr Leistung und Zuverlässigkeit.
Was ist neu?
Statt SQLite kommt PostgreSQL zum Einsatz – eine vollwertige Datenbank, die mit Ihrem Unternehmen skaliert.
Installation:
1. Verzeichnisse und Volumes anlegen:
mkdir -p /opt/n8n/data/caddy_config
mkdir -p /opt/n8n/data/local_files
cd /opt/n8n
docker volume create caddy_data
docker volume create n8n_data
docker volume create postgres_data2. Die Docker-Compose-Datei:
services:
caddy:
container_name: caddy
image: caddy:latest
restart: unless-stopped
ports:
- "80:80"
- "443:443"
volumes:
- caddy_data:/data
- ${DATA_FOLDER}/caddy_config:/config
- ${DATA_FOLDER}/caddy_config/Caddyfile:/etc/caddy/Caddyfile
networks:
- n8n-network
n8n:
container_name: n8n
image: docker.n8n.io/n8nio/n8n
restart: always
ports:
- 5678:5678
environment:
- N8N_HOST=${SUBDOMAIN}.${DOMAIN_NAME}
- N8N_PORT=5678
- N8N_PROTOCOL=https
- NODE_ENV=production
- WEBHOOK_URL=https://${SUBDOMAIN}.${DOMAIN_NAME}/
- GENERIC_TIMEZONE=${GENERIC_TIMEZONE}
- N8N_BASIC_AUTH_ACTIVE=${N8N_BASIC_AUTH_ACTIVE}
- N8N_BASIC_AUTH_USER=${N8N_BASIC_AUTH_USER}
- N8N_BASIC_AUTH_PASSWORD=${N8N_BASIC_AUTH_PASSWORD}
- N8N_ENCRYPTION_KEY=${N8N_ENCRYPTION_KEY}
- N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=true
# PostgreSQL-Konfiguration
- DB_TYPE=postgresdb
- DB_POSTGRESDB_HOST=postgres
- DB_POSTGRESDB_PORT=5432
- DB_POSTGRESDB_DATABASE=${DB_POSTGRESDB_DATABASE}
- DB_POSTGRESDB_USER=${DB_POSTGRESDB_USER}
- DB_POSTGRESDB_PASSWORD=${DB_POSTGRESDB_PASSWORD}
volumes:
- n8n_data:/home/node/.n8n
- ${DATA_FOLDER}/local_files:/files
depends_on:
- postgres
networks:
- n8n-network
postgres:
container_name: postgres
image: postgres:13
restart: always
environment:
- POSTGRES_USER=${DB_POSTGRESDB_USER}
- POSTGRES_PASSWORD=${DB_POSTGRESDB_PASSWORD}
- POSTGRES_DB=${DB_POSTGRESDB_DATABASE}
volumes:
- postgres_data:/var/lib/postgresql/data
networks:
- n8n-network
volumes:
caddy_data:
external: true
n8n_data:
external: true
postgres_data:
external: true
networks:
n8n-network:
driver: bridge3. .env-Datei erweitern:
DOMAIN_NAME=aiscream.de
SUBDOMAIN=demo
DATA_FOLDER=/opt/n8n/data
GENERIC_TIMEZONE=Europe/Berlin
# Authentifizierung
N8N_BASIC_AUTH_ACTIVE=true
N8N_BASIC_AUTH_USER=admin
N8N_BASIC_AUTH_PASSWORD=**** # Sicheres Passwort wählen
N8N_ENCRYPTION_KEY=**** # Mindestens 32 Zeichen, komplex und einzigartig
# PostgreSQL-Konfiguration
DB_POSTGRESDB_USER=n8n
DB_POSTGRESDB_PASSWORD=**** # Separates DB-Passwort, ebenfalls sicher wählen
DB_POSTGRESDB_DATABASE=n8nVorteile der PostgreSQL-Edition:
- Bessere Unterstützung für gleichzeitige Zugriffe
- Höhere Zuverlässigkeit bei umfangreichen Datenmengen
- Bessere Performance bei hohen Workloads
- Unterstützung für Team-Funktionen (mehrere Nutzer)
- Verarbeitet bis zu 50.000 tägliche Workflows
Variante 3: Die Supabase-Edition (Managed Database)
Wenn Sie sich nicht um die Datenbankverwaltung kümmern möchten, übernimmt Supabase dies als Managed Service.
Wichtig: Aktivieren Sie die automatischen Backups im Supabase-Dashboard unter „Project Settings" → „Database" → „Backups".
Welche Version passt zu Ihrem Unternehmen?
| Variante | Für wen? | Workload | Vorteile | Nachteile |
|---|---|---|---|---|
| SQLite | Einsteiger, Kleinunternehmen | Bis 10k Workflows/Tag | Einfach, schnell eingerichtet | Begrenzte Skalierbarkeit |
| PostgreSQL | Wachsende Unternehmen | Bis 50k Workflows/Tag | Zuverlässiger bei hoher Last, teamfähig | Höherer Ressourcenbedarf |
| Supabase | Unternehmen ohne DB-Expertise | Bis 50k Workflows/Tag | Keine DB-Wartung nötig, managed Service | Externe Abhängigkeit, Kosten |
Wartung: Updates und Pflege
Container aktualisieren (für alle Varianten):
cd /opt/n8n
docker compose pull
docker compose down
docker compose up -dLogs überwachen:
# Alle Container-Logs
docker compose logs
# Nur n8n-Logs
docker compose logs n8n
# Nur Caddy-Logs
docker compose logs caddyFazit: Skalierbare Automatisierung
Welche Variante Sie heute wählen, hängt von Ihrem aktuellen Bedarf ab – dieser wird sich voraussichtlich ändern. Mit diesen Anleitungen können Sie jederzeit upgraden. n8n wächst mit Ihrem Unternehmen.
Der SQLite-Start ist die einfachste Variante zum Ausprobieren. Sobald Ihre Automatisierungen produktiv werden, empfehlen wir PostgreSQL. Wenn Sie keine Datenbank-Administration übernehmen möchten, ist Supabase eine Alternative – mit den entsprechenden externen Abhängigkeiten und Kosten.
Häufig gestellte Fragen
Sie benötigen Unterstützung bei der n8n-Einrichtung oder möchten Ihre Automatisierungsstrategie besprechen? Sprechen Sie mit uns über Ihre Anforderungen.
Über den Autor

Sascha Seniuk
Mitgründer & Technical Lead
Mit über 20 Jahren IT-Erfahrung – vom Systemadministrator bis zum KI-Experten – navigiert Sascha mittelständische Unternehmen durch LLM-Ops, RAG-Pipelines und Workflow-Automatisierung. Als externer KI-Manager macht er künstliche Intelligenz für den Mittelstand greifbar und nutzbar.