nodeinfo is a lightweight CLI tool for inspecting and documenting Proxmox virtual machines (VMs) and LXC containers.
It outputs system details, update status, and network configuration, then writes a structured summary directly into the Notes field of the specified VM or container.
- 🔍 Inspect a Proxmox VM or LXC by VMID
- 📝 Updates the Notes field with a formatted summary
- 🌐 Captures IP, VLAN, SSH, and web UI ports
- 📦 Installable
.debpackage for quick deployment - 🧱 Built for Proxmox
- 🔐 SSH integration for improved data collection from VMs
- 🚀 GitHub Actions auto-build
.debreleases
Below is an example output placed into the VM or LXC Notes field:
🖥️ Container/VM Information
- Hostname: homepage
- Type: lxc
- Operating System: Debian GNU/Linux 12 (bookworm)
- IP Address: 192.168.70.13
- Gateway: 192.168.70.1
- Gateway Reachable: ✅ Reachable
- DNS Servers: 192.168.70.11
- DNS Resolving: ✅ Resolving
- VLAN/Subnet: 70 – Infrastructure
🔒 Access & Credentials
- Web UI URL: http://192.168.70.13
- SSH Access: 🟢 Enabled
- SSH Port: 22
- Auth Method: Assumed Password
- Allow Root Login: Yes
🔄 Update Status
- Last apt update: Unavailable
- Package status: Up to date
- Download the latest
.debfrom the Releases page:
wget https://github.com/RoBro92/nodeinfo/releases/latest/download/nodeinfo_v1.1.0.deb- Install the package:
dpkg -i nodeinfo_v1.1.0.deb- Run the CLI tool:
nodeinfo --help✅ Trusted Source
- This package is built and signed by the official GitHub repo.
- All releases are published through GitHub Actions from source.
- No external shell scripts or hidden install logic — you control every step.
After install, you can configure friendly VLAN names:
nodeinfo --vlanThis opens /etc/nodeinfo/vlan.conf where you can map VLAN tags to descriptions (e.g., 10=Hypervisors).
To remove nodeinfo completely:
nodeinfo --removeThis will:
- Remove the binary and config files
- Clean up
/etc/nodeinfo - Prompt before deletion
If a VM lacks QEMU Guest Agent support, nodeinfo can use SSH to retrieve system info:
- The tool will prompt to set up SSH access automatically if needed.
- If approved, it will:
- Add the VM's IP to
ssh.conf - Send the SSH key to the VM
- Retest and update the Notes field using richer data via SSH
- Add the VM's IP to
You will be asked for the VM's root password during this one-time setup. SSH access is revoked after the run if you confirm the prompt.
To manually review or configure:
nodeinfo --ssh📅 See full ROADMAP.md for upcoming plans.
- 🔧 Scheduled runs via cron
- 🔧 Cluster-wide single-node deployment
- 🔧 Improved error reporting
- 🔧 dry run support
- 🔧 Success summary
- 📌 Persist
User Notessection across runs - 📌 APT Package Repository
- 📌 Auto-update support
- 📌 Service-aware reporting (docker/nginx/plex etc.)
- 📌 Template-based note rendering
- SSH Implementation for VM's
- -y flag for skipping overwrite checks
- Debug mode (
--debug) - SSH status detection & key injection
- DNS and gateway health checks
- Safe overwrite confirmation
--updateversion checker.debinstaller with post-install prompts
See full changelog here
| Flag / Command | Description |
|---|---|
<vmid> |
ID of the VM or LXC container to inspect |
--version |
Show installed version of nodeinfo |
--vlan |
Edit VLAN name mappings |
--ssh |
Open SSH config file for editing |
update |
Check for latest version and download link |
--help |
Show usage help |
--remove |
Fully remove nodeinfo |
-y/--yes |
Skip note overwrite confirmation (not backup) |
--debug |
Enable debug output and logs |
nodeinfo 100→ Inspect VM 100 and update Notesnodeinfo 202→ Inspect LXC 202 and update Notesnodeinfo 303 -y→ Skip overwrite prompt for container 303 (still prompts for backup)
| Path | Purpose |
|---|---|
.github/workflows/ |
GitHub Actions for building & releasing |
Makefile |
Build automation for .deb release |
nodeinfo/DEBIAN/control |
Package metadata |
nodeinfo/DEBIAN/postinst |
Post-install VLAN setup |
usr/local/bin/nodeinfo |
Main executable |
usr/local/bin/share/... |
Markdown templates (coming soon) |
💡 Only
usr/local/bin/nodeinfois included in the installed package.test