Modern Multi-Cluster Management for Proxmox VE
Website • Documentation • Releases
PegaProx is a powerful web-based management interface for Proxmox VE clusters. Manage multiple clusters from a single dashboard with features like live monitoring, VM management, automated tasks, and more.
- 🖥️ Unified Dashboard - Manage all your Proxmox clusters from one place
- 📊 Live Metrics - Real-time CPU, RAM, and storage monitoring via SSE
- 🔄 Live Migration - Migrate VMs between nodes with one click
- ⚖️ Cross-Cluster Load Balancing - Distribute workloads across clusters
▶️ Quick Actions - Start, stop, restart VMs and containers- ⚙️ VM Configuration - Edit CPU, RAM, disks, network, EFI, Secure Boot & more
- 📸 Snapshots - Standard and space-efficient LVM snapshots for shared storage
- 💾 Backups - Schedule and manage backups
- 🖱️ noVNC / xterm.js Console - Browser-based console for QEMU and LXC
- ⚖️ Load Balancing - Automatic VM distribution across nodes
- 🔁 High Availability - Auto-restart VMs on node failure with configurable timing
- 📍 Affinity Rules - Keep VMs together or apart on hosts (QEMU + LXC)
- 🔀 ESXi Import Wizard - Migrate VMs from ESXi hosts to Proxmox
- ⚡ Near-Zero Downtime - Transfer running VMs with minimal interruption (max. 1 VM recommended)
- 🔌 Offline Migration - Shut down and transfer for maximum reliability
- 🔑 SSH Required - ESXi host must have SSH enabled
- 👥 Multi-User Support - Role-based access control (Admin, Operator, Viewer)
- 🛠️ API Token Management - Create, list, and revoke Bearer tokens
- 🔐 2FA Authentication - TOTP-based two-factor authentication (with force option)
- 🏛️ LDAP / OIDC - Active Directory, OpenLDAP, Entra ID, Keycloak, Google Workspace
- 🛡️ VM-Level ACLs - Fine-grained permissions per VM
- 🏢 Multi-Tenancy - Isolate clusters for different customers
- 🚫 IP Whitelisting / Blacklisting - Restrict access by IP or CIDR range
- 🔒 AES-256-GCM Encryption - All stored credentials encrypted at rest
- ⏰ Scheduled Tasks - Automate VM actions (start, stop, snapshot, backup)
- 🔄 Rolling Node Updates - Update cluster nodes one by one with automatic evacuation
- 🚨 Alerts - Get notified on high CPU, memory, or disk usage
- 📜 Audit Logging - Track all user actions with IP addresses
- 🔧 Custom Scripts - Run scripts across nodes
- 💿 Ceph Management - Monitor and manage Ceph storage pools
- 🌐 Offline Mode - Works without internet (local assets)
- 🎨 Themes - Dark mode, Proxmox theme, and more
- 🏢 Corporate Layout - Tree-based sidebar with dense tables (experimental)
- 🌍 Multi-Language - English and German
- 📱 Responsive - Works on desktop and mobile
- 📦 PBS Integration - Proxmox Backup Server management
- Python 3.8+
- Proxmox VE 8.0+ or 9.0+
- Modern web browser (Chrome, Firefox, Edge, Safari)
curl -O https://raw.githubusercontent.com/PegaProx/project-pegaprox/refs/heads/main/deploy.sh
chmod +x deploy.sh
sudo ./deploy.shgit clone https://github.com/PegaProx/project-pegaprox.git
cd project-pegaprox
pip install -r requirements.txt
python3 pegaprox_multi_cluster.pygit clone https://github.com/PegaProx/project-pegaprox.git
cd project-pegaprox
# Production
docker build -t pegaprox .
docker run -d --name pegaprox \
-p 5000:5000 \
-v pegaprox-config:/app/config \
-v pegaprox-logs:/app/logs \
--restart unless-stopped \
pegaprox
# Development
docker run -p 5000:5000 pegaprox --debugOption 1: Update Script (Recommended)
cd /opt/PegaProx
curl -O https://raw.githubusercontent.com/PegaProx/project-pegaprox/refs/heads/main/update.sh
chmod +x update.sh
sudo ./update.shOption 2: Web UI
Go to Settings → Updates and click "Check for Updates".
After starting PegaProx, open your browser and navigate to:
https://your-server-ip:5000
Default credentials:
Username: pegaprox
Password: admin
- First Login: Create your admin account on the setup page
- Add Cluster: Go to Settings → Clusters → Add your Proxmox credentials
- Done! Start managing your VMs
/opt/PegaProx/
├── pegaprox_multi_cluster.py # Entry point
├── pegaprox/ # Application package
│ ├── app.py # Flask app factory
│ ├── constants.py # Configuration constants
│ ├── globals.py # Shared state
│ ├── api/ # REST API blueprints
│ ├── core/ # Business logic (manager, db, cache)
│ ├── background/ # Background tasks (scheduler, alerts)
│ ├── utils/ # Utilities (auth, RBAC, LDAP, OIDC)
│ └── models/ # Data models
├── web/
│ ├── index.html # Compiled frontend
│ └── src/ # Frontend source (JSX)
├── config/
│ └── pegaprox.db # SQLite database (credentials encrypted)
├── static/ # JS/CSS libraries (offline mode)
├── logs/ # Application logs
└── update.sh # Update script
- Credentials (Cluster PW, SSH Keys, TOTP, LDAP Bind) → AES-256-GCM
- API Tokens → SHA-256 Hash
- Passwords → Argon2id
- HTTPS required for production
- Session tokens expire after inactivity
- Rate limiting on all endpoints
- Input sanitization and RBAC enforcement
Full documentation is available at docs.pegaprox.com
This project is licensed under the AGPL-3.0 License - see the LICENSE file for details.
- 📧 Email: [email protected]
- 🐛 Issues: GitHub Issues
Like most modern dev teams, we use AI-assisted tooling (code completion, docs generation, review automation, security audits). All architecture decisions, implementation, and testing are handled by our three-person team. — see IBM , IBM Case Studies , MIT Tech Review
AI-driven security auditing is an industry-standard practice — see Hacker News, IBM Research.
If you find PegaProx useful, please consider giving it a star! ⭐
Made with ❤️ by the PegaProx Team

