Add Proxmox inventory scripts and n8n sync workflow
- proxmox-inventory.sh: text inventory (RAM/CPU/Swap/Disk/IP/Gateway/Subnetz) - proxmox-inventory-json.sh: JSON variant with n8n webhook push, --vmids filter, --dry-run - n8n workflow: automated fact-sync between Proxmox and Outline docs, auto-creates pages for new VMIDs, ntfy summary notification - credentials (Outline/NTFY bearer tokens) intentionally excluded, see README
This commit is contained in:
@@ -0,0 +1,31 @@
|
||||
# Auto Outline Doku Proxmox Inventory
|
||||
|
||||
Automatischer Abgleich zwischen Proxmox-Inventar und der Homelab-Dokumentation in Outline.
|
||||
|
||||
## Inhalt
|
||||
|
||||
- `scripts/proxmox-inventory.sh` – Text-Ausgabe des Proxmox-Inventars (VMID, Status, Ressourcen, Netzwerk inkl. Subnetzmaske/Gateway), zum manuellen Ausführen und Copy-Paste.
|
||||
- `scripts/proxmox-inventory-json.sh` – Baut dieselben Daten als JSON und sendet sie per `curl` an einen n8n-Webhook. Unterstützt `--dry-run`, `--print-only` und `--vmids=101,102,...` zum gezielten Testen einzelner Container/VMs.
|
||||
- `n8n-workflows/auto-outline-doku-proxmox-inventory.json` – Exportierter n8n-Workflow, der die vom Script gesendeten Daten mit Outline abgleicht: Fakten (RAM, CPU, Swap, Disk, IP, Gateway, Subnetz, MAC) patchen, neue VMIDs automatisch als Outline-Seite anlegen, und eine ntfy-Benachrichtigung mit Zusammenfassung senden.
|
||||
|
||||
## 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):
|
||||
- **Outline Bearer Auth** (Header Auth, `Authorization: Bearer <Outline-API-Token>`) – 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=<einzelne-VMID> --dry-run` testen, bevor der volle Sync scharf geschaltet wird.
|
||||
|
||||
## Funktionsweise (Kurzfassung)
|
||||
|
||||
- Script sammelt Proxmox-Daten (LXC + VM) → sendet JSON an n8n
|
||||
- n8n sucht pro VMID die passende Outline-Seite (`documents.search`), lädt den aktuellen Inhalt separat nach (`documents.info`, um Suchindex-Verzögerungen zu vermeiden)
|
||||
- Bei Abweichungen: gezielter Patch nur der betroffenen Felder (`documents.update`, editMode `patch`)
|
||||
- Bei keinem Treffer: neue Seite wird automatisch aus den bekannten Fakten angelegt (`documents.create`), unbekannte Felder wie Zweck/Ports bleiben als Platzhalter
|
||||
- Am Ende: Zusammenfassung aller Änderungen/Auffälligkeiten per ntfy
|
||||
|
||||
## Bewusst nicht automatisiert
|
||||
|
||||
- Kategorisierung, Zweck-Beschreibung, Ports/URLs in der zentralen Übersichtstabelle (nicht aus Proxmox ableitbar)
|
||||
- Umbenennen/Archivieren bei VMID-Wiederverwendung (z. B. wenn eine VMID gelöscht und für einen neuen Container wiederverwendet wird) – das bleibt manuelle Review-Arbeit
|
||||
Reference in New Issue
Block a user