- LXCs: use /interfaces endpoint first, fallback to net0-net7 config parsing - QEMU: use /agent/network-get-interfaces with correct result nesting - IPv4 only filtering (ip-address-type check) - Drop ip6= and nameserver from config fallback Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
76 lines
2.6 KiB
Markdown
76 lines
2.6 KiB
Markdown
# Feature Backlog — proxmox-monitor
|
|
|
|
## Completed
|
|
|
|
### Power Control
|
|
- Start/stop/restart buttons per row on VMs and LXCs.
|
|
- Power action uses `/api2/extjs` endpoint with empty body `{}`.
|
|
- Instant UI refresh via direct state sync + rAF flush for status messages.
|
|
|
|
### Console Link
|
|
- Console button per row opens Proxmox web UI console in new tab.
|
|
- URL format: `/?console=lxc|qemu&vmid={id}&node={node}&resize=scale&xtermjs=1`
|
|
- Browser session cookies handle Proxmox auth automatically in new tab.
|
|
|
|
### Manual Refresh
|
|
- Button in dashboard header that calls `mutate()` on all SWR caches.
|
|
|
|
### Custom Poll Interval
|
|
- Number input in header (milliseconds) that updates polling in real-time.
|
|
- Replaced SWR polling with a manual `setInterval` effect.
|
|
|
|
### Group by Node
|
|
- Collapse/expand VMs/LXCs by node with toggle. Each node is a collapsible card with running/stopped subtotals.
|
|
|
|
### Uptime Duration
|
|
- `formatUptime()` now formats to "3d 4h 12m" (days, hours, minutes). Falls back to "4h 12m" or "12m" when days aren't needed.
|
|
|
|
## Quick Wins (low effort, high value)
|
|
|
|
### Per-VM/LXC IP Addresses
|
|
- LXCs: parses `ip=` and `ip6=` from `net0`, `net1`, etc. fields in `/nodes/<node>/lxc/<id>/config`.
|
|
- VMs: fetches from `/nodes/<node>/qemu/<id>/agent/network-get-interfaces` and reads `ipaddresses`.
|
|
- Displays IPs below the name in the table.
|
|
- **Status: done**
|
|
|
|
### Search / Filter
|
|
- Client-side text input filtering table rows by name/node/status
|
|
- Uses `useMemo` for performant filtering, auto-expands single node and filter-matched nodes
|
|
- **Status: done (merged to main)**
|
|
|
|
## Medium Effort
|
|
|
|
### Storage Usage
|
|
- Show disk usage per Proxmox storage backend (like node cards)
|
|
- Note: `disk.total` is not populated in the API (always 0) — needs `pvesh` or extra API calls
|
|
|
|
### Status Change Alert
|
|
- Toast/banner when a VM state changes between polls
|
|
|
|
### Resource Allocation
|
|
- Show vCPU count, total disk size alongside usage stats
|
|
- Note: disk.total is not populated by Proxmox API — only disk.used is available
|
|
|
|
### Per-VM IP Addresses
|
|
- Done — uses `/nodes/<node>/qemu/<id>/agent/network-get-interfaces` for VMs and config `net0`/`net1` parsing for LXCs.
|
|
|
|
### Per-VM CPU/Memory Trend
|
|
- Periodic polling to build a small trend chart
|
|
|
|
## Larger Features
|
|
|
|
### Cluster Status
|
|
- HA, quorum, and failover info per cluster
|
|
|
|
### Network Health
|
|
- Network interfaces and link status per node
|
|
|
|
### Recent Proxmox Events
|
|
- Audit log / recent events from the Proxmox cluster
|
|
|
|
### Docker Deployment
|
|
- Dockerfile + docker-compose for easy hosting
|
|
|
|
### Health Check Endpoint
|
|
- `/api/health` for reverse proxy / uptime monitoring
|