markmorado
4940cbe77f
v1.1.6: fix LXC xterm.js terminal (termproxy auth handshake)
...
- Add mandatory Proxmox termproxy auth: send 'USERNAME:VNCTICKET\n' as
first WebSocket message, wait for 'OK' before starting PTY proxy
- Fix server.username → server.api_user (token suffix stripped)
- Fix CSRFPreventionToken sent in body → header only
- Fix additional_headers → extra_headers (websockets v12)
- Add URL-encoding for vncticket, PVEAuthCookie WS header, subprotocols=['binary']
- Forward initial terminal data arriving with OK frame
- Bump VERSION 1.1.5 → 1.1.6
2026-03-16 03:07:14 +01:00
markmorado
5a67981f9a
feat: v1.1.5 — UPID task tracking, Task Drawer clear button, auto-expire, pve CLI fix
2026-03-15 20:34:17 +01:00
markmorado
ed7f1f779e
feat: real-time WebSocket metrics broadcaster and UI updates
...
- New metrics_broadcaster service (410 lines) — background broadcaster
pushing CPU/RAM/disk/network stats to subscribed WebSocket clients
- WebSocket protocol extended: subscribe/unsubscribe channels,
get_rrd/get_node_rrd requests with request_id
- main.py: metrics broadcaster started in lifespan, WS message dispatcher
- websocket_manager.py: subscription map support
- templates: dashboard, instance_detail, proxmox_server_detail,
proxmox_vms, workspaces — real-time charts and UI updates
- auth.py, servers.py, settings.py: minor fixes
2026-03-15 02:49:38 +01:00
markmorado
bef0bcc542
feat: add Workspace feature — scoped server groups with user access and sidebar selector
2026-03-15 01:00:24 +01:00
markmorado
3947dae7b9
feat: v1.1.3 — dashboard alerts panel, sparkline charts, log sanitisation, CSS vars
2026-03-10 14:10:00 +01:00
markmorado
b3db346cfb
feat: v1.1.0 — backup module, IPAM node binding, HA, task queue, theme CSS
...
- Backup module: full CRUD for storages, backup files, scheduled jobs (APScheduler)
- Proxmox client: storage/backup/restore/HA methods
- IPAM: proxmox_node field, server+node binding for networks and allocations
- Task queue service: improvements and new task types
- Monitoring worker: extended metrics and alerts
- HA support: add/remove VMs from Proxmox HA groups
- tasks.html: new task tracking page
- proxmox_vms.html: major UI update (bulk ops, HA, snapshots)
- backups.html: full backup management UI (3 tabs)
- base.html: sidebar backup link, websocket manager
- theme.css: full CSS variables theme, 395 lines added
- migrations: migration #15 (BackupJob), #16 (proxmox_node)
- RBAC: backup resource permissions
- websocket_manager.py: new module for WS connections
2026-03-08 18:29:29 +01:00
markmorado
85aa59e7b6
Add favicon, backup scheduler, backup API and templates, RBAC and migration updates
2026-03-08 11:40:41 +01:00
markmorado
c07d9e8711
fix: deduplicate dashboard node charts by cluster, not just by node name
...
Previously seenNodes used only the node name as the dedup key, causing
independent servers that happen to share a default node name (e.g. "pve")
to hide each other's charts.
Fix: /api/{server_id}/nodes now also returns cluster_id — the actual
Proxmox cluster name for clustered servers, or "standalone-{server_id}"
for single-node servers. The dashboard deduplicates by
"cluster_id::node_name", so:
- nodes in the same cluster → deduped correctly (shown once)
- nodes on independent servers with the same name → both shown
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-03-08 02:37:18 +01:00
markmorado
8c5a896683
fix: correct relative imports in proxmox subpackage and CSP headers
...
- Fix all `from ..` → `from ...` in app/api/proxmox/*.py after the
proxmox.py split (PR #6 ) placed modules one level deeper, causing
ModuleNotFoundError on startup
- Broaden Content-Security-Policy to allow CDN sources used in templates:
cdnjs.cloudflare.com (Font Awesome), cdn.jsdelivr.net (Bootstrap,
Chart.js, xterm), fonts.googleapis.com/gstatic.com (Google Fonts),
esm.sh (noVNC) — the overly-strict CSP was blocking all icons and
charts from loading in the browser
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-03-08 01:56:08 +01:00
Claude
7c42de11a3
fix: repair two runtime bugs missed in Q2/Q3
...
- proxmox/__init__.py: re-export get_next_vmid, save_vm_instance,
get_vm_instance so templates.py import doesn't raise ImportError
(regression introduced in Q3 split)
- ipam.py:791: remove erroneous await on non-async get_orphan_allocations()
(missed in Q2 async cleanup)
https://claude.ai/code/session_019rK2wvaWg5zXFwmAPPEB7R
2026-03-07 18:29:33 +00:00
Claude
6fb7406d27
refactor: split proxmox.py (4676 lines) into package with 7 modules
...
- _helpers.py: shared helpers (check_vm_access, _get_proxmox_client, etc.)
- servers.py: HTML pages, server CRUD, resources, node status (16 routes)
- sdn.py: SDN zones/vnets/subnets (10 routes)
- snapshots.py: VM/container snapshots + archives (10 routes)
- vms.py: VM/LXC control, HA, monitoring, VNC, terminal, bulk ops (42 routes)
- tasks.py: Proxmox task management (6 routes)
- __init__.py: re-exports unified router (84 routes total, no public API change)
https://claude.ai/code/session_019rK2wvaWg5zXFwmAPPEB7R
2026-03-07 17:35:17 +00:00