✨ New Features
- Predictive Load Balancing — Trend-based VM migration that acts before nodes become overloaded, similar to VMware DRS. Includes configurable score weights (CPU/RAM/IO) and a CPU compatibility mode with cluster baseline enforcement.
- ESXi Migration Wizard — Completely redesigned 3-step wizard (Target → Hardware → Advanced) with 28 configurable options. Auto-detects firmware, SCSI controller, NIC model, CPU topology, Secure Boot, and TPM from the source ESXi VM. Fixes disk attachment, BIOS/OVMF handling, and sets VGA to
vmwarefor immediate display compatibility (#222). - ISO/Template Sync — Distribute ISOs and CT templates across all cluster nodes via SCP/SFTP. Designed for iSCSI-only setups where file-level storage isn't shared. Includes a sync matrix view and auto-sync toggle.
- Push Notifications Plugin — Send alerts via Ntfy (self-hosted or cloud) and optionally through Apprise for 80+ services including Slack, Discord, Telegram, and Gotify (#213).
- Professional PDF Export — Reports, CVE scans, syslog events, and topology diagrams now export as properly styled PDFs with PegaProx branding via jsPDF.
- User Folders — Organize users into folders in the User Management panel with color-coded badges and folder-based filtering. Pagination at 15 users per page.
🔧 Client Portal & Status Page
- Client Portal: ISO mount/unmount for customers, Force Stop with warning, Ctrl+Alt+Del button in console, OIDC/LDAP login support, dashboard overview with resource totals, VM search/filter, larger console modal, light theme toggle
- Status Page: Incident timeline with severity badges, 90-day uptime tracking bar, scheduled maintenance banner, component-level status, embeddable SVG status badge
🎨 UI & Corporate Layout
- Syslog viewer redesigned with severity quick-stats, compact filter bar, facility names, and color-coded protocol badges
- Corporate Layout light mode fully polished with ~90 CSS overrides covering all components
- Fixed icon/text alignment in corporate tabs and subnav menus (#289, #290)
- Collapsible Score Weights and CPU Baseline sections in cluster settings
- Search icon positioning fixed across all corporate layout search bars
- VMID hidden from portal customers — shows "VM" / "Container" instead
🛡️ Security
- TOTP verification window tightened
- Rate limiting on password verification endpoint
- Session IP change detection and logging
- Absolute session timeout reduced (12h regular / 7d remember-me)
- XSS: DOMPurify fallback now renders escaped plaintext instead of regex-filtered HTML
- Apprise SSRF blocklist prevents requests to localhost and private networks
- ISO mount path traversal prevention
- VNC ticket removed from DOM attributes
- Portal session moved from localStorage to sessionStorage
- Plugin load events logged to audit trail
🐛 Bug Fixes
- Cross-cluster replication now works on ZFS, LVM, and iSCSI storage (#192)
- Cross-cluster migrate bridge mapping format corrected (#274)
- XCP-ng migration with Ceph RBD uses qemu-img instead of dd (#272)
- Rolling update no longer migrates VMs to a node mid-shutdown (#276)
- CT wizard now includes keyctl and fuse feature toggles for Docker-in-LXC (#278)
- Compliance HTTPS check respects reverse proxy mode (#281)
- NVMe SMART data retrieval fixed (#288)
- Datastore page no longer blocked by offline storage (#292)
- OIDC users can now re-configure clusters without password prompt (#294)
- OIDC login button visible after logout without page refresh (#295)
- Generic SSO icon shown instead of Microsoft logo for non-Microsoft providers (#295)
- Backup directory path in update.sh is now absolute (#253)
- DNS resolution cached at connect time — eliminates excessive DNS queries (#279)
- Syslog database schema improved with FTS5 full-text search and composite indexes (PR #287, @gyptazy)
- Translation gaps fixed across all 6 languages (PR #275, @newtscamander2)
💎 Sponsors
We're excited to welcome netwolk GmbH as our first Platinum Sponsor! Their support directly helps us dedicate more time to PegaProx development. Thank you! 🙏
Interested in sponsoring? → pegaprox.com/#sponsor | sponsor@pegaprox.com
💬 Community Discord by @gyptazy
Join the Discord: https://discord.gg/AJPf3H62QW
Full Changelog: v0.9.5...v0.9.6