7015e26fdfe8939f2fb3dd3816fe131f8ec75a13
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 percurlan einen n8n-Webhook. Unterstützt--dry-run,--print-onlyund--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
- Script konfigurieren: In
scripts/proxmox-inventory-json.shdie VariableN8N_WEBHOOK_URLauf 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. - 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 <Outline-API-Token>) – für alleoutline.vogt.de.com/api/...-Requests - NTFY Bearer Auth (Header Auth) – für die ntfy-Benachrichtigung am Ende
- Outline Bearer Auth (Header Auth,
- Webhook-Pfad in n8n mit der URL im Script abgleichen.
- Erst mit
--vmids=<einzelne-VMID> --dry-runtesten, 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:
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:
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
- 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, editModepatch) - 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
Languages
Shell
100%