Claude 1bdc8e3845 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
2026-07-28 07:10:04 +00:00

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
S
Description
No description provided
Readme
53 KiB
Languages
Shell 100%