Das Projekt installiert und konfiguriert einen vollständigen, produktionsnahen n8n-Stack auf einem Ubuntu-Linux-System.
- Shell 100%
Stellt my_webapp.conf nach yunohost app upgrade automatisch wieder her. Deploy: /etc/yunohost/hooks.d/post_app_upgrade/99-n8n-proxy Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> |
||
|---|---|---|
| compose | ||
| docs | ||
| scripts | ||
| .env.example | ||
| .gitignore | ||
| CLAUDE.md | ||
| INITIAL_PROMPT.md | ||
| README.md | ||
n8n Stack
Produktionsnaher n8n-Stack auf Docker Compose mit PostgreSQL, Redis und Queue-Mode.
Architektur
Internet → n8n.linix.de:443
→ YunoHost (192.168.179.10) — TLS-Terminierung (Let's Encrypt)
→ nginx lokal :8088 (192.168.179.124)
→ n8n Docker :5678
↔ PostgreSQL (n8n-stack-postgres-1)
↔ Redis (n8n-stack-redis-1)
← n8n-worker (n8n-stack-n8n-worker-1)
Verzeichnisstruktur
n8n_stack/
├── compose/docker-compose.yml # Stack-Definition
├── .env # Secrets (600, nie committen!)
├── .env.example # Vorlage
├── scripts/ # Hilfsskripte (700)
├── data/ # Docker-Volumes (gitignoriert)
│ ├── n8n/
│ ├── postgres/
│ └── redis/
├── backups/ # Backups, max. 2 (gitignoriert)
├── imports/workflows/ # Workflow-JSONs zum Importieren
├── imports/credentials/ # Credentials-Exporte (unverschlüsselt!)
├── local-files/ # Dateien für n8n-Container (/files)
└── docs/ # nginx-Configs, Runbooks
Start / Stop / Status
# Start
docker compose -f compose/docker-compose.yml up -d
# Stop
docker compose -f compose/docker-compose.yml down
# Status
docker compose -f compose/docker-compose.yml ps
# Logs
docker compose -f compose/docker-compose.yml logs -f n8n
# Worker skalieren (z.B. auf 2)
docker compose -f compose/docker-compose.yml up -d --scale n8n-worker=2
Update
bash scripts/update-n8n.sh
Führt automatisch ein Backup aus, zieht neue Images und startet den Stack neu.
Backup / Restore
# Backup erstellen (behält immer die letzten 2)
bash scripts/backup-n8n.sh
# Restore aus Backup-Verzeichnis
bash scripts/restore-n8n.sh backups/backup_20240101_120000
Import / Export von Workflows
# Einzelne Workflow-JSON importieren
bash scripts/import-workflow.sh imports/workflows/mein-workflow.json
# Ganzes Verzeichnis importieren
bash scripts/import-workflow.sh imports/workflows/
# Alle Workflows exportieren
bash scripts/export-workflows.sh
Import / Export von Credentials
# Credentials importieren
bash scripts/import-credentials.sh imports/credentials/creds.json
# Credentials exportieren (UNVERSCHLÜSSELT — sicher aufbewahren!)
bash scripts/export-credentials.sh
Wichtig: Credential-Exporte enthalten alle Secrets im Klartext. Export-Dateien nach Gebrauch löschen.
Übernahme fremder n8n-Projekte
- Workflow-JSON-Dateien nach
imports/workflows/kopieren bash scripts/import-workflow.sh imports/workflows/<datei>.json- Falls Credentials mitgeliefert:
bash scripts/import-credentials.sh <datei.json> - In der n8n-UI: Credentials der importierten Workflows prüfen und neu verknüpfen
Bei Voll-Exporten (.zip mit mehreren JSONs): entpacken, dann Verzeichnis übergeben.
Deployment auf neuem Host
- Repo klonen
.env.example→.envkopieren, alle Werte ausfüllen- Neuen
N8N_ENCRYPTION_KEYgenerieren:openssl rand -base64 32 N8N_HOSTundWEBHOOK_URLauf die neue Domain anpassen- nginx-Config aus
docs/nginx-local-n8n.confanpassen und aktivieren - YunoHost-Config aus
docs/yunohost-nginx-n8n.confanpassen und installieren docker compose -f compose/docker-compose.yml up -d
Kritische Hinweise
N8N_ENCRYPTION_KEYdarf nach dem ersten Start nie geändert werden — eine Änderung macht alle gespeicherten Credentials unbrauchbar. Key steht in.env..envnie committen (steht in.gitignore).- Backup vor jedem Update läuft automatisch via
update-n8n.sh.
URLs und Zugangspfade
| Was | Wert |
|---|---|
| n8n Web-UI | https://n8n.linix.de |
| Erster Login | Beim ersten Aufruf Owner-Account anlegen |
| Secrets-Datei | ./.env (Rechte 600) |
| Backup-Verzeichnis | ./backups/ |
| nginx lokal | /etc/nginx/sites-available/n8n (Port 8088) |
| YunoHost nginx | /etc/nginx/conf.d/n8n.linix.de.conf |
Setup-Status
- DNS:
n8n.linix.de→92.50.108.218 - YunoHost: Domain + Let's Encrypt
- YunoHost:
my_webappals SSOwat-Shim installiert, nginx-Proxy auf 192.168.179.124:8088 - SMTP-Credentials in
.enveingetragen - Owner-Account angelegt