diff --git a/README.md b/README.md index 08c56c5..9ab7255 100644 --- a/README.md +++ b/README.md @@ -10,13 +10,43 @@ Automatischer Abgleich zwischen Proxmox-Inventar und der Homelab-Dokumentation i ## Setup -1. **Script konfigurieren:** In `scripts/proxmox-inventory-json.sh` die Variable `N8N_WEBHOOK_URL` auf die echte n8n-Webhook-URL setzen (aktuell ein Platzhalter, da diese pro Installation individuell ist). -2. **n8n-Workflow importieren:** JSON-Datei in n8n importieren. Folgende Credentials werden benötigt (nicht im Export enthalten, aus Sicherheitsgründen): +1. **Script konfigurieren:** In `scripts/proxmox-inventory-json.sh` die Variable `N8N_WEBHOOK_URL` auf die echte n8n-Webhook-URL setzen (aktuell ein Platzhalter, da diese pro Installation individuell ist). Wichtig: **Produktions-Pfad** (`/webhook/...`) verwenden, nicht `/webhook-test/...` – der Test-Pfad funktioniert nur, während der Workflow im n8n-Editor auf "Listen for test event" steht. +2. **n8n-Workflow importieren:** JSON-Datei in n8n importieren und **aktivieren/publishen** (der Webhook reagiert sonst nicht auf den Produktions-Pfad). Folgende Credentials werden benötigt (nicht im Export enthalten, aus Sicherheitsgründen): - **Outline Bearer Auth** (Header Auth, `Authorization: Bearer `) – für alle `outline.vogt.de.com/api/...`-Requests - **NTFY Bearer Auth** (Header Auth) – für die ntfy-Benachrichtigung am Ende 3. **Webhook-Pfad in n8n** mit der URL im Script abgleichen. 4. Erst mit `--vmids= --dry-run` testen, bevor der volle Sync scharf geschaltet wird. +## Automatischer Betrieb per Cron + +Auf dem Proxmox-Host `crontab -e` und folgende Zeile eintragen, um das Script stündlich zwischen 07:00 und 20:00 Uhr laufen zu lassen: + +```cron +0 7-20 * * * /root/proxmox-inventory-json.sh >> /var/log/proxmox-inventory-sync.log 2>&1 +``` + +- `7-20` = jede volle Stunde von 7 bis 20 Uhr (14 Läufe/Tag) +- Ausgabe (inkl. Fehler) landet in `/var/log/proxmox-inventory-sync.log` + +Optionale Logrotate-Regel, damit das Log nicht unbegrenzt wächst: + +```bash +cat > /etc/logrotate.d/proxmox-inventory-sync << 'EOF' +/var/log/proxmox-inventory-sync.log { + weekly + rotate 4 + compress + missingok + notifempty +} +EOF +``` + +**Vor dem Scharfschalten prüfen:** +- Läuft das Script lokal auf dem Host mit der echten (nicht der Platzhalter-)Webhook-URL? +- Ist der n8n-Workflow aktiviert (`active: true`)? +- Ein manueller Testlauf (`./proxmox-inventory-json.sh --dry-run`) zeigt das gebaute JSON ohne etwas zu senden – guter erster Check nach jeder Änderung. + ## Funktionsweise (Kurzfassung) - Script sammelt Proxmox-Daten (LXC + VM) → sendet JSON an n8n