# PegaProx: a multi-cluster dashboard for Proxmox VE and XCP-ng

> PegaProx is an AGPL-3.0, Python and Flask web interface that puts several Proxmox VE clusters, and XCP-ng pools in tech preview, behind one dashboard. It installs from a Docker Compose file or from the repository, and its README leaves the first-login credentials and the XCP-ng limits unstated.

**PegaProx/project-pegaprox** — The ultimate datacenter management solution for Proxmox VE and XCP-NG. Unified multi-cluster control, intelligent load balancing, and seamless cross-cluster VM migrations — all in one beautiful interface.

- Repository: https://github.com/PegaProx/project-pegaprox
- Website: https://pegaprox.com/
- Stars: 1,635 · Forks: 121
- Language: JavaScript
- License: AGPL-3.0
- Published: 2026-09-10 · Updated: 2026-09-10 · Language: en
- Canonical page: https://hysenlabs.com/projects/pegaprox-project-pegaprox

## The problem PegaProx targets, and who feels it

Proxmox VE ships with a per-cluster web interface. If you operate one cluster, that is enough. If you operate three, you end up with three browser tabs, three sets of credentials, and no single view of which node is short on RAM. The PegaProx README describes the project as a web-based management interface for Proxmox VE and XCP-ng clusters, and the first bullet under Multi-Cluster Management is a unified dashboard for managing all your Proxmox clusters from one place. That is the whole pitch. The audience is the sysadmin who already has a working Proxmox estate and wants an aggregation layer on top of it, not someone looking for a hypervisor. PegaProx does not replace Proxmox VE or XCP-ng. It talks to them. The repository layout supports that reading: the application lives in pegaprox/ and pegaprox_multi_cluster.py, the front end in web/ and static/, and there is no hypervisor code in sight. It also carries a plugins/ directory and a separate plugins site, so the project expects to be extended rather than forked.

## How PegaProx sits between you and the hypervisor

The stack is a Flask application (flask>=3.1.3 in requirements.txt) served over gevent with gevent-websocket, which is what makes the live metrics possible. The README says metrics arrive via SSE, so the browser holds a server-sent event stream open instead of polling. Two more socket services run alongside: the Compose file publishes 5000 for the web UI and API, 5001 for the VNC websocket behind noVNC, and 5002 for the SSH websocket behind xterm.js. That three-port split is the clearest architectural fact in the repository. Console traffic does not go through the main HTTP port. Authentication is layered: local users with role-based access control, TOTP two-factor via pyotp, WebAuthn and FIDO2 hardware keys via fido2, and LDAP or OIDC through ldap3 and PyJWT. API tokens are Bearer tokens scoped per role. For storage, requirements.txt pins sqlcipher3-binary for full database encryption but only on Linux x86_64; the comment says that elsewhere PegaProx falls back to plain SQLite with Fernet field encryption, and points at docs/SECURITY.md. That is a real deployment constraint, not a footnote: on ARM or macOS you get a weaker encryption posture by default.

## Installing PegaProx with Docker Compose

The Compose file is the shortest path and the one the project comments describe as the default. It pulls ghcr.io/pegaprox/pegaprox:latest and persists two named volumes, pegaprox-config and pegaprox-logs. Run it from the directory holding docker-compose.yml:

## What the feature list actually commits to

Beyond the dashboard, the README lists VM and container actions (start, stop, restart), VM configuration for CPU, RAM, disks, network, EFI and Secure Boot, standard and LVM snapshots, snapshot replication for clusters without ZFS, scheduled backups, and a browser console for both QEMU and LXC. Two items stand out. Backup Verification is marked Experimental and is described as an automated restore, boot, health check and cleanup cycle, with ISO 27001, SOC 2 and HIPAA compliance named as the motivation. Treat that as a workflow that needs its own test window, not as a compliance certificate. The second is Affinity Rules for keeping QEMU and LXC guests together or apart on hosts, which is the kind of control people normally script themselves. Cross-cluster load balancing and cross-cluster migration are listed as first-class features, and the ESXi import wizard moves VMs from ESXi hosts to Proxmox, with the README recommending a maximum of one running VM for the near-zero-downtime path and requiring SSH on the ESXi host. That one-VM ceiling is worth reading twice before you plan a migration window around it.

## Where PegaProx is the wrong tool

The XCP-ng integration is labelled Tech Preview in the README, and the feature list under it is narrower than the Proxmox side: power actions, a VNC console via XAPI, disk and NIC management, and maintenance mode with automatic VM evacuation. There is no equivalent of the backup verification or affinity rules there. If XCP-ng is your primary hypervisor, PegaProx is not yet the management plane for it. The second limitation is environmental. The full-database encryption path depends on sqlcipher3-binary, and requirements.txt scopes that dependency to Linux x86_64 with a platform marker. Anywhere else, the project falls back to plain SQLite plus Fernet field encryption. That is a deliberate fallback, but it means two PegaProx installs on different architectures do not have the same data-at-rest properties, and the README does not spell that out on the front page. Third, PegaProx is an additional service holding credentials to every cluster it manages. It is not a passive viewer. If it is compromised, the blast radius is your whole estate, which is why the multi-user roles, 2FA, WebAuthn and VM-level ACLs exist. If you are not prepared to run and patch another internet-adjacent service, keep using the per-cluster Proxmox interfaces. Finally, the project describes itself as living entirely from sponsorships and donations, so commercial support is a separate arrangement rather than something bundled.

## PegaProx against the Proxmox VE web interface

The honest comparison is not against another multi-cluster product. It is against the interface Proxmox VE already gives you, for free, on every node. That interface is authoritative: it is the same codebase as the cluster, it needs no extra credentials store, and it cannot drift out of sync with the hypervisor. PegaProx adds a layer whose value is aggregation. Live metrics from several clusters on one screen, one place to start a VM in any of them, one place to schedule backups, and cross-cluster migration as a button rather than a procedure. The cost is a second source of truth. When PegaProx shows a VM state, that state came over the API from Proxmox, and when the two disagree the hypervisor is right. The same trade-off applies to the ESXi import wizard: it is a migration aid, not a permanent management surface for ESXi. If you have one cluster, the Proxmox interface wins on every axis except cross-cluster operations, which you do not have.

## Licence, updates and what maintenance costs you

PegaProx is AGPL-3.0. The practical consequence for a self-hosted admin is the network clause: if you modify PegaProx and let users interact with it over a network, the AGPL expects you to offer them the corresponding source. Running it unmodified from the published container image is the ordinary case and does not change how you use it. The repository includes a LICENSE and a NOTICE file, and the Dockerfile pins its base image by digest, which is a supply-chain choice worth noting. Upgrades have two paths: pull a newer ghcr.io/pegaprox/pegaprox image, or use the update.sh script that ships in the repository and is copied into the container. Releases are frequent enough that the changelog matters more than the version number; v1.1.1 followed v1.1.0 by a week. The Compose file documents one migration already: SSL certificates and login-background uploads moved from ssl/ and images/login_bg.* into config/ssl and config/branding, auto-migrated on first boot. Because those live in the pegaprox-config volume, back that volume up before any upgrade. The crypto pins in requirements.txt are explicitly interlocked (pyopenssl caps cryptography below 51, fido2 below 52), so do not hand-upgrade those three packages independently.

## Conclusion

Adopt PegaProx if you run more than one Proxmox VE cluster and want a single self-hosted pane for VM actions, snapshots, backups and cross-cluster migration. Do not adopt it if you run a single small cluster, or if you need XCP-ng as a production hypervisor, since the README labels that integration a tech preview and the repository does not document which XCP-ng versions are supported. Before you commit, check the first-login credentials in docs.pegaprox.com, confirm the three published ports (5000, 5001, 5002) do not clash with anything on the host, and read docs/SECURITY.md to see which encryption path your platform gets.

## FAQ

### Is Proxmox the same as VMware?

The README does not compare Proxmox with VMware. It describes PegaProx as a management interface for Proxmox VE and XCP-ng clusters, and lists an ESXi import wizard that migrates VMs from ESXi hosts to Proxmox, which implies the two are separate hypervisors rather than the same product.

### Is Proxmox still free?

The README does not state Proxmox licensing terms. It does say that PegaProx itself is a community-driven open source project that lives entirely from sponsorships and donations, with commercial support offered separately.

### What do people use Proxmox for?

The README frames Proxmox VE as a hypervisor whose clusters PegaProx manages, covering VMs and containers, snapshots, backups, and live migration between nodes. PegaProx is the dashboard layer; the virtual machines run on Proxmox VE or XCP-ng.

### What are the disadvantages of Proxmox?

The README does not list disadvantages of Proxmox. It does describe limitations on the PegaProx side, including the XCP-ng integration being a tech preview and the experimental label on backup verification.

## Sources

- [License: AGPL-3.0](https://github.com/PegaProx/project-pegaprox/blob/main/LICENSE)
- [PegaProx/project-pegaprox on GitHub](https://github.com/PegaProx/project-pegaprox)
- [Project website](https://pegaprox.com/)
- [README](https://github.com/PegaProx/project-pegaprox/blob/main/README.md)
- [Releases](https://github.com/PegaProx/project-pegaprox/releases)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/pegaprox-project-pegaprox
