Selbst gehosteter, S3-kompatibler Objektspeicher für Backups: MinIO hinter einem Nginx-Proxy, dazu ein rclone-basierter Backup-Agent mit versionierten Buckets. Ihre Offsite-Backups ohne Cloud-Rechnung
Selbst gehosteter, S3-kompatibler Objektspeicher für Backups: MinIO hinter einem Nginx-Proxy, dazu ein rclone-basierter Backup-Agent mit versionierten Buckets. Ihre Offsite-Backups ohne Cloud-Rechnung
n8n im Queue-Modus mit Redis, PostgreSQL-Persistenz und sauberem Prozess-Supervising — das unspektakuläre, zuverlässige Setup, das Neustarts und Lastspitzen übersteht. Die Automatisierungsschicht hinter mehreren meiner eigenen Integrationen.
Ein Deployment-Guide mit lauffähigen Beispielen — kein herunterladbares Produkt. Alles unten ist die tatsächlich eingesetzte Konfiguration, gekürzt auf das, worauf es ankommt.
services:
n8n:
image: n8nio/n8n:${N8N_VERSION:-2.37.11}
container_name: n8n
restart: unless-stopped
depends_on:
postgres:
condition: service_healthy
redis:
condition: service_healthy
volumes:
- n8n_data:/home/node/.n8n
- ./config/n8n:/home/node/.n8n/custom:ro
ports:
- ${N8N_PORT:-5678}:5678
environment:
- N8N_HOST=${N8N_HOST:-localhost}
- N8N_PORT=5678
- N8N_PROTOCOL=${N8N_PROTOCOL:-http}
- NODE_ENV=production
- DB_TYPE=postgresdb
- DB_POSTGRESDB_HOST=postgres
- DB_POSTGRESDB_PORT=5432
- DB_POSTGRESDB_USER=${POSTGRES_USER:-n8n}
- DB_POSTGRESDB_PASSWORD=${POSTGRES_PASSWORD:?POSTGRES_PASSWORD is required}
- DB_POSTGRESDB_DATABASE=${POSTGRES_DB:-n8n}
- DB_POSTGRESDB_POOL_SIZE=${DB_POOL_SIZE:-3}
- EXECUTIONS_DATA_PRUNE=${EXECUTIONS_DATA_PRUNE:-true}
- EXECUTIONS_DATA_MAX_AGE=${EXECUTIONS_DATA_MAX_AGE:-336}
- EXECUTIONS_DATA_PRUNE_TIMEOUT=${EXECUTIONS_DATA_PRUNE_TIMEOUT:-3600000}
- N8N_ENCRYPTION_KEY=${N8N_ENCRYPTION_KEY:?N8N_ENCRYPTION_KEY is required}
- N8N_USER_FOLDER=/home/node/.n8n
- REDIS_ENABLED=${REDIS_ENABLED:-true}
- REDIS_HOST=redis
- REDIS_PORT=${REDIS_PORT:-6379}
- REDIS_PASSWORD=${REDIS_PASSWORD:?REDIS_PASSWORD is required}
- EXECUTIONS_MODE=${EXECUTIONS_MODE:-queue}
- N8N_METRICS=${N8N_METRICS:-false}
healthcheck:
test:
- CMD
- wget
- --spider
- http://localhost:5678/healthz
interval: 30s
timeout: 10s
retries: 3
networks:
- n8n_network
Auszug — n8n aus der Compose-Datei. Die übrigen Services (proxies, init jobs, exporters) folgen demselben Muster und binden ihre Konfiguration aus einem config/-Verzeichnis ein.
Kopieren Sie .env.example zu .env und setzen Sie mindestens:
N8N_VERSION=latest
N8N_HOST=n8n.example.com
N8N_PORT=5678
N8N_PROTOCOL=https
N8N_ENCRYPTION_KEY=super_secret_encryption_key_here_32_bytes_long
N8N_METRICS=false
.env setzen — niemals die Beispielwerte übernehmenEin Guide, kein Produkt. Diese Seite ist Deployment-Dokumentation mit lauffähigen Beispielen — kein Zip, kein Download, kein Supportvertrag. Sie adaptieren die Muster auf Ihre eigene Umgebung, und das Ergebnis gehört Ihnen.
Wenn Sie das produktionsreif in Ihrer Infrastruktur wollen: Das vermittle ich im eintägigen Workshop n8n-Automatisierung — Details auf der Consulting-Seite: 1.000 €/Tag, remote oder vor Ort, Abrechnung per Rechnung.