github PegaProx/project-pegaprox v0.9.0
v0.9.0 – Architecture Overhaul, ESXi Migration & Enterprise Security

9 hours ago

🏗️ Architecture Overhaul

This is a major release – PegaProx has been completely restructured from a single 42,000-line monolith into a clean, modular Python package.

  • Code Splitpegaprox/ package with 8-layer architecture (constants → models → core → utils → api → background → app)
  • Frontend Split – Source files in web/src/*.js with dedicated build system
  • Archive-Based Updates – Automatic updates via GitHub archive download (no manual release files needed)
  • Production Dockerfilepython:3.12-slim, non-root user, healthcheck, persistent volumes

🔀 ESXi Migration

  • ESXi Import Wizard – Migrate VMs from ESXi hosts directly to Proxmox
  • Near-Zero Downtime – Transfer running VMs with minimal interruption (recommended: max. 1 VM at a time)
  • Offline Migration – Shut down and transfer for maximum reliability
  • SSH Required – ESXi host must have SSH enabled for migration

🔐 Enterprise Security

  • AES-256-GCM Encryption – All stored credentials encrypted at rest
  • IP Whitelisting / Blacklisting – Restrict access by IP address or CIDR range
  • Rate Limiting – Protection on all API endpoints
  • Input Sanitization – Server-side validation and RBAC enforcement
  • CORS Hardening – Secure same-origin policy by default

📸 Efficient LVM Snapshots

  • Space-Efficient Snapshots – LVM COW snapshots for shared iSCSI SAN storage (saves 85–95% disk space)
  • Health Monitoring – Auto-extend at 90%, auto-invalidate at 100% (only snapshot lost, never VM data)
  • Full CRUD – Create, list, delete, and rollback efficient snapshots via API and UI

💿 Ceph Management

  • Ceph Dashboard – Monitor and manage Ceph storage pools, OSDs, and monitors
  • Pool Management – Create, resize, and configure Ceph pools

⚖️ Cross-Cluster Operations

  • Cross-Cluster Load Balancing – Distribute workloads across multiple clusters
  • Cross-Cluster Replication – Replicate VMs between clusters

🏢 Corporate Layout (Experimental)

  • Tree-Based Sidebar – Inventory tree with inline nodes under selected cluster
  • Dense Tables – Compact table layout inspired by enterprise management tools
  • Toggle – Switch between Modern and Corporate layout in Profile → Appearance

🔁 High Availability & Node Updates

  • HA Monitoring – Auto-restart VMs on node failure with configurable timing
  • Rolling Node Updates – Update cluster nodes one by one with automatic evacuation
  • Scheduled Updates – Configure recurring or one-time update schedules per cluster

🐛 Bug Fixes

  • VM Deletion – Sanitize boot order before delete, wait for Proxmox task completion (#79)
  • Scheduler Crashget_client_ip() now handles missing Flask request context in background threads (#87)
  • SSH Key Compatibility – Safe fallback for paramiko.DSSKey removal in paramiko 3.x+, added ECDSA support to all SSH paths
  • CORS Crash – Fixed flask_cors crash when origins=None with supports_credentials=True
  • Stale Closures – Fixed React state updates using functional updaters in tab data loading

⚡ Improvements

  • Affinity Rules – Now work for LXC containers too, with enforcement flag
  • PBS Integration – Proxmox Backup Server management
  • Update Scriptrsynctar fallback for minimal Debian/LXC installs without rsync
  • ESXi Rename – All user-facing "VMware" text changed to "ESXi" for legal compliance

📋 Updating

cd /opt/PegaProx
curl -O https://raw.githubusercontent.com/PegaProx/project-pegaprox/refs/heads/main/update.sh
chmod +x update.sh
sudo ./update.sh

Or use the built-in Web UI updater: Settings → Updates → Check for Updates

🙏 Contributors

Thanks to all community contributors for bug reports, PRs, and feedback!

  • @ry-ops – SSH null fallback, disk move, VNC console, deploy script, update permissions, search navigation fixes
  • @zakirpcs – RPM packaging support

Don't miss a new project-pegaprox release

NewReleases is sending notifications on new releases.