ProxCenter : une interface web unique pour plusieurs clusters Proxmox VE et PBS
ProxCenter est une interface web open source qui joue, pour Proxmox VE, le rôle que vCenter tient chez VMware : un seul tableau de bord pour administrer plusieurs clusters, plusieurs nœuds isolés et plusieurs serveurs Proxmox Backup Server. Le projet est publié sur GitHub par AdminSysPro sous le nom proxcenter-ui, affiche environ 1 800 étoiles et en est à la version 1.4.14, sortie le 4 novembre 2026. L'édition Community, celle du dépôt, est sous licence AGPL v3 et gratuite, usage commercial compris. Une édition Enterprise payante, sur devis, ajoute les fonctions d'automatisation et de gouvernance que nous détaillons plus bas.
ProxCenter ne modifie rien sur l'hyperviseur et n'installe aucun agent sur les nœuds : il dialogue avec l'API de Proxmox VE sur le port 8006 et avec celle de PBS sur le port 8007, avec un token API par connexion. L'application elle-même tourne dans une pile Docker Compose (un conteneur frontend Node.js et une base PostgreSQL 16) sur une machine Linux à part. Dans l'édition gratuite, on trouve l'inventaire des machines virtuelles et des conteneurs LXC de tous les clusters, une vue unifiée du stockage, la supervision Ceph en temps réel, les consoles noVNC et SPICE, la carte de topologie réseau, les modèles Cloud-Init, un IPAM, l'édition des règles de pare-feu Proxmox et les journaux d'événements et d'audit.
Pour l'administrateur d'un ou plusieurs serveurs dédiés sous Proxmox VE, le gain est simple : plus besoin d'ouvrir une interface par hôte pour savoir où tourne une VM, quel stockage se remplit ou quelle sauvegarde a échoué. Ce guide couvre les prérequis, l'installation par le script install-community.sh, la création d'un token API Proxmox à privilèges séparés, le raccordement de plusieurs clusters Proxmox VE 8 et 9 et de PBS, la mise en HTTPS derrière un reverse proxy, puis la frontière exacte entre ce qui est gratuit et ce qui reste payant.
Prérequis : 2 vCPU, 4 Go de RAM, 40 Go, Docker et les ports 3000, 8006 et 8007
Le README du projet recommande une instance ProxCenter par infrastructure, avec le frontend et PostgreSQL sur le même hôte, et donne un dimensionnement par taille de parc. La plus petite configuration couvre déjà jusqu'à 50 nœuds Proxmox et 1 500 invités (VM et conteneurs), ce qui dépasse largement un parc de quelques serveurs dédiés :
| Taille | Nœuds Proxmox | VM et conteneurs | vCPU | RAM | Disque |
|---|---|---|---|---|---|
| Small | jusqu'à 50 | jusqu'à 1 500 | 2 | 4 Go | 40 Go |
| Medium | jusqu'à 150 | jusqu'à 4 500 | 4 | 8 Go | 80 Go |
| Large | jusqu'à 300 | jusqu'à 9 000 | 8 | 16 Go | 150 Go |
| Very large | jusqu'à 500 | jusqu'à 15 000 | 8 | 16 Go | 250 Go |
Le disque grossit avec l'historique des métriques, environ 90 Mo par nœud avec la rétention par défaut de 14 jours. Le projet insiste sur un point : réservez du CPU réellement disponible plutôt qu'un vCPU très partagé, sinon les contrôles de santé des conteneurs peuvent échouer au premier démarrage. Le reste de la liste :
- Système : une distribution Linux x86_64 avec Docker Engine 24 ou plus récent et Docker Compose v2. La documentation cite Ubuntu 22.04 et Debian 12 ou plus récents ; l'installeur reconnaît aussi CentOS, RHEL, Rocky, AlmaLinux et Fedora. Si Docker manque, le script l'installe depuis le dépôt officiel de Docker ;
- Port entrant : 3000 en HTTP. Sur une installation neuve où les ports 80 et 443 sont libres, l'installeur les utilise à la place et active un certificat HTTPS auto-signé (TLS interne sur le port 8443) ;
- Ports sortants : 8006 vers chaque nœud Proxmox VE et 8007 vers chaque PBS, plus l'accès HTTPS à
ghcr.io(images),download.docker.cometraw.githubusercontent.compendant l'installation ; - Proxmox : le README annonce Proxmox VE 8.x et 9.x ; la page de connexion de la documentation accepte à partir de PVE 7.0 et de PBS 3.0. Un hôte encore en 8 reste pilotable, mais notre guide migrer Proxmox VE 8 vers 9 décrit le passage à la version actuelle ;
- Un token API par cluster Proxmox VE et par PBS. Le mot de passe de l'interface web Proxmox n'est pas accepté comme méthode d'authentification.
Où installer ProxCenter : VPS, VM ou conteneur sur le serveur dédié
La bonne pratique est de ne pas héberger la console de gestion sur l'hyperviseur qu'elle administre : si le nœud tombe, vous perdez la vue d'ensemble au moment où vous en avez besoin. Trois options tiennent la route :
- Un petit VPS Linux séparé, hébergé en France comme vos serveurs dédiés. L'offre Starter (2 vCPU, 4 Go de RAM, 50 Go SSD) correspond au profil Small du README ; l'offre Classic (4 vCPU, 8 Go, 70 Go SSD) laisse de la marge pour la rétention des métriques et les mises à jour ;
- Une machine virtuelle Debian 12 ou Ubuntu 22.04 sur un second serveur dédié, quand vous en gérez plusieurs : chaque hôte peut alors surveiller l'autre ;
- Un conteneur LXC avec Docker sur l'hôte Proxmox lui-même, acceptable pour un lab ou un seul serveur, à condition de garder l'interface Proxmox native comme secours.
Dans tous les cas, la machine doit joindre les ports 8006 et 8007 des hôtes Proxmox. Entre un VPS et des serveurs dédiés distants, passez par un tunnel Tailscale ou WireGuard plutôt que d'exposer l'API Proxmox sur Internet, et dimensionnez l'hôte Proxmox en gardant la console hors de son budget de RAM, comme expliqué dans dimensionner Proxmox VE sur un serveur dédié.
Installer ProxCenter Community avec install-community.sh
Le projet fournit une seule commande, à exécuter en root sur la machine Linux choisie. Elle télécharge le script install-community.sh et l'exécute :
curl -fsSL https://proxcenter.io/install/community | sudo bashSur un serveur de production, préférez télécharger le script, le lire, puis le lancer. Il accepte les options --help, --quiet et --skip-preflight, et il faut sudo -E si la machine sort par un proxy HTTP :
curl -fsSL https://proxcenter.io/install/community -o install-community.sh
less install-community.sh
sudo bash install-community.shCe que fait le script, dans l'ordre : il vérifie qu'il est root, que la distribution est reconnue et que l'architecture est x86_64 ; il avertit sous 2 vCPU ou sous 1 900 Mo de RAM, exige 10 Go de disque libre pour une première installation, teste la joignabilité de ghcr.io et regarde si les ports 80 et 443 sont libres. Il installe ensuite Docker (paquets docker-ce, docker-ce-cli, containerd.io, docker-buildx-plugin et docker-compose-plugin) s'il manque, puis prépare le répertoire /opt/proxcenter :
docker-compose.yml, récupéré depuis le fichierdocker-compose.community.ymldu dépôt GitHub. Il décrit deux services :frontend(imageghcr.io/adminsyspro/proxcenter-frontend, port 3000 interne, contrôle de santé sur/api/health) etpostgres(imagepostgres:16-alpine, port 5432 non publié, accessible uniquement sur le réseau Docker interne) ;.env, en mode 600, avec les secrets générés paropenssl rand:APP_SECRET,NEXTAUTH_SECRET,POSTGRES_PASSWORD, plusNEXTAUTH_URL,APP_URL,VERSION=latestet les ports (HTTP_BIND,HTTPS_BIND,TLS_PORT). Lors d'une réinstallation, le script relit ces valeurs pour ne casser ni la base ni les sessions ;- deux volumes Docker externes,
proxcenter_data(données applicatives, montées sur/app/data) etpostgres_data(base PostgreSQL). Ce sont eux qu'il faut sauvegarder.
Le script lance enfin docker compose up -d et attend jusqu'à deux minutes que /api/health réponde. Il affiche alors un message de succès avec l'URL d'accès et la version installée. Le journal complet est dans /var/log/proxcenter-install.log. Ouvrez https://ip-du-serveur/ (certificat auto-signé, le navigateur avertit) ou http://ip-du-serveur:3000 si les ports 80 et 443 étaient déjà pris, et créez le premier compte administrateur. Pour contrôler l'état de la pile par la suite, les commandes habituelles de Docker Compose suffisent :
cd /opt/proxcenter
docker compose ps
docker compose logs -fSans Docker, l'édition Community se compile aussi depuis les sources (Node.js 22.12 ou plus récent, PostgreSQL 16 ou plus récent, 4 Go de RAM pour la compilation, environ 300 Mo à l'exécution), mais la pile Compose reste la voie documentée et la seule que l'installeur met à jour. Si Docker est nouveau pour vous, notre guide installer Docker sur un serveur Linux explique ce que le script vient de mettre en place.
Créer un token API Proxmox VE à privilèges séparés
La documentation de ProxCenter donne un raccourci pour un lab : un token sur root@pam sans séparation des privilèges (--privsep 0), qui hérite de tous les droits de root. Sur un serveur dédié de production, elle recommande l'inverse : un utilisateur de service dédié et un token avec privilege separation activée, le réglage par défaut de Proxmox VE. Avec la séparation, les permissions effectives du token sont l'intersection de celles de l'utilisateur et de celles du token : il faut donc poser l'ACL sur les deux, sinon le token ne voit rien. Sur n'importe quel nœud du cluster, en root :
pveum user add proxcenter@pve -comment "Compte de service ProxCenter"
pveum user token add proxcenter@pve proxcenter -privsep 1
pveum acl modify / -user proxcenter@pve -role PVEAdmin
pveum acl modify / -token 'proxcenter@pve!proxcenter' -role PVEAdmin
pveum user token permissions proxcenter@pve proxcenterLa deuxième commande affiche le secret du token une seule fois : copiez-le aussitôt dans votre gestionnaire de mots de passe. L'identifiant à saisir dans ProxCenter est proxcenter@pve!proxcenter. Le rôle intégré PVEAdmin couvre les privilèges que ProxCenter liste comme nécessaires au pilotage des invités : VM.Audit, VM.PowerMgmt, VM.Console, VM.Snapshot, VM.Migrate, VM.Backup, Datastore.Audit, Datastore.AllocateSpace et Sys.Audit. La même opération se fait dans l'interface Proxmox via « Datacenter → Permissions → API Tokens », en laissant la case « Privilege Separation » cochée.
PVEAdmin exclut volontairement Sys.Modify et Sys.PowerMgmt. Si vous voulez redémarrer ou éteindre un nœud depuis ProxCenter, ou utiliser plus tard les mises à jour progressives de l'édition Enterprise, la documentation ajoute un rôle personnalisé, à accorder lui aussi à l'utilisateur et au token (les rôles posés sur un même chemin se cumulent) :
pveum role add ProxCenter -privs "Sys.Modify,Sys.PowerMgmt"
pveum acl modify / -user proxcenter@pve -role ProxCenter
pveum acl modify / -token 'proxcenter@pve!proxcenter' -role ProxCenterÀ l'inverse, pour une console en lecture seule (inventaire, stockage, Ceph, sauvegardes, sans aucune action), remplacez PVEAdmin par PVEAuditor dans les deux commandes pveum acl modify, comme nous le faisons pour la supervision dans surveiller Proxmox et PBS avec Pulse. Un token par cluster, jamais partagé entre outils : un token compromis se révoque avec pveum user token delete proxcenter@pve proxcenter sans toucher aux autres intégrations.
Raccorder plusieurs clusters Proxmox VE 8 et 9
Dans ProxCenter, ouvrez « Settings → Connections », onglet « Proxmox VE », puis « Add PVE ». Les champs :
- Name : un nom parlant, par exemple le nom du cluster ou du datacenter ;
- Base URL : l'adresse HTTPS complète d'un nœud avec le port,
https://pve1.example.com:8006. Une seule connexion suffit par cluster : ProxCenter découvre les autres nœuds par l'API et bascule vers eux si le nœud d'entrée ne répond plus ; - Token ID et Token Secret, dans l'onglet « Authentication » :
proxcenter@pve!proxcenteret le secret noté plus haut ; - Ignore TLS certificate errors : activé par défaut à la création, parce que Proxmox VE est livré avec un certificat auto-signé. Désactivez-le dès que vos nœuds portent un certificat valide, par exemple via ACME dans Proxmox, pour que ProxCenter vérifie réellement à qui il parle ;
- Behind reverse proxy : à cocher seulement si l'API Proxmox est atteinte à travers un proxy, pour empêcher la bascule vers les adresses IP internes des nœuds ;
- SSH User, SSH Port et clé ou mot de passe, dans l'onglet « SSH » : facultatifs. L'accès SSH ne sert qu'aux opérations qui sortent de l'API (import de disques pendant une migration, mises à jour progressives, scan CVE, certaines actions réseau), toutes réservées à l'édition Enterprise. Dans l'édition Community, laissez-le vide : moins d'identifiants stockés, moins de surface d'attaque.
« Save » teste immédiatement la joignabilité et le token ; en cas de refus, la boîte de dialogue reste ouverte avec le message d'erreur. Répétez l'opération pour chaque cluster ou nœud isolé : un cluster de production en Proxmox VE 9 et un serveur de lab encore en 8 cohabitent dans la même liste, avec les colonnes Status, SSH, Type, Version et Nodes. Le bouton « Run diagnostics » (icône de cœur) vérifie ensuite l'API, les permissions du token, le quorum, Ceph, le stockage et SSH pour cette connexion. Passez enfin par « Infrastructure → Inventory » et comparez la liste des nœuds et des invités avec ce que vous attendez : un test réussi prouve l'authentification, pas la visibilité de chaque ressource.
Raccorder Proxmox Backup Server
Même logique sur PBS, avec une différence importante : un token PBS n'hérite d'aucune ACL de son utilisateur, même pour root@pam. La documentation de PBS le formule ainsi : les tokens API ont besoin de leurs propres entrées ACL et ne peuvent jamais faire plus que leur utilisateur. Il faut donc accorder le rôle aux deux, sur le serveur de sauvegarde :
proxmox-backup-manager user create proxcenter@pbs --comment "ProxCenter service account"
proxmox-backup-manager user generate-token proxcenter@pbs proxcenter
proxmox-backup-manager acl update / Admin --auth-id proxcenter@pbs
proxmox-backup-manager acl update / Admin --auth-id 'proxcenter@pbs!proxcenter'Le rôle Admin est celui que ProxCenter documente pour une intégration complète. Pour une vue en lecture seule des sauvegardes, accordez à la place DatastoreReader et Audit, toujours à l'utilisateur et au token ; DatastoreReader seul laisse les informations serveur vides. Dans ProxCenter, onglet « Proxmox Backup Server », « Add PBS », Base URL https://pbs1.example.com:8007, Token ID proxcenter@pbs!proxcenter et secret. L'empreinte SHA-256 du certificat PBS est capturée automatiquement à la création (boutons « Capture fingerprint » et « Re-capture » en édition) : c'est celle que Proxmox VE utilise pour faire confiance à PBS, distincte de la vérification HTTPS côté ProxCenter. Plusieurs PBS se raccordent de la même façon et apparaissent dans « Infrastructure → Backups », où une sauvegarde en échec se voit le jour même. Les tests de restauration restent à planifier à part : une sauvegarde listée n'est pas une sauvegarde restaurée.
HTTPS, reverse proxy et mises à jour
Le certificat auto-signé posé à l'installation se remplace par un certificat ACME ou importé depuis « Settings → HTTPS ». Si vous préférez placer ProxCenter derrière un reverse proxy Nginx qui porte déjà vos certificats, éditez /opt/proxcenter/.env : NEXTAUTH_URL=https://proxcenter.example.com, HTTP_BIND=3000, supprimez la ligne HTTPS_BIND pour libérer 80 et 443, puis relancez docker compose up -d. Le bloc Nginx de la documentation transmet les en-têtes Upgrade et Connection, indispensables aux consoles noVNC et xterm.js et aux mises à jour temps réel :
server {
listen 443 ssl http2;
server_name proxcenter.example.com;
# ssl_certificate / ssl_certificate_key ...
location / {
proxy_pass http://127.0.0.1:3000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}Deux pièges signalés par le projet : ne pas appliquer de limitation de débit à /_next/static/, qui charge une rafale de fichiers JavaScript, et fixer NEXTAUTH_URL avant toute configuration SSO. Pour mettre à jour, les images se tirent avec Compose et les migrations de schéma s'exécutent au démarrage :
cd /opt/proxcenter && docker compose pull
docker compose up -ddocker compose pull ne touche pas au fichier docker-compose.yml. Quand une version introduit un nouveau réglage, relancez la commande d'installation de votre édition : elle conserve secrets, URL, ports et clé de licence. Sauvegardez les volumes proxcenter_data et postgres_data avant chaque mise à jour, et retenez que docker compose down -v détruit la base : sans le -v, down arrête la pile en gardant les données.
Ce qui est gratuit et ce qui reste payant
Le tableau des éditions du README et du site du projet est explicite. Tout ce que décrit ce guide fonctionne avec l'édition Community ; l'édition Enterprise, sur licence annuelle et devis, vise l'automatisation et la gouvernance d'un parc d'entreprise ou d'un prestataire multi-clients :
| Fonction | Community (gratuite) | Enterprise (payante) |
|---|---|---|
| Clusters et nœuds Proxmox VE, serveurs PBS | Illimités | Illimités |
| Tableau de bord, inventaire VM et conteneurs, stockage unifié, Ceph temps réel | Oui | Oui |
| Consoles noVNC et SPICE, topologie réseau, Cloud-Init, IPAM, pare-feu Proxmox, journaux d'audit | Oui | Oui |
| Alertes | Widgets du tableau de bord et e-mail de base | Règles, routage, multi-canaux |
| Migration depuis VMware ESXi, XCP-ng, Nutanix, Hyper-V et entre clusters | Non | Oui |
| DRS (équilibrage automatique de charge), mises à jour progressives, Site Recovery | Non | Oui |
| RBAC avancé, LDAP et Active Directory, SSO OIDC | Non | Oui |
| Scanner CVE, conformité, suivi de configuration, rapports, syslog et SIEM | Non | Oui |
| vDC et portail self-service, white-label, micro-segmentation, sFlow | Non | Oui |
| Haute disponibilité de ProxCenter (3 nœuds, VIP) et API REST | Non | Add-ons payants en plus d'Enterprise |
| Licence du code | AGPL v3 | Commerciale |
Deux précisions utiles. L'API REST et ses tokens de compte de service sont un add-on séparé : sans lui, les appels authentifiés par token sont refusés, ce qui compte si vous comptiez scripter ProxCenter plutôt que l'API Proxmox. Et la migration depuis ESXi n'est pas la seule voie : Proxmox VE 8 et 9 intègrent eux-mêmes un importateur de VM VMware, via un stockage de type ESXi ajouté dans « Datacenter → Storage », que nous évoquons dans Proxmox VE face à VMware.
ProxCenter face à Proxmox Datacenter Manager
Proxmox Server Solutions, l'éditeur de Proxmox VE, développe sa propre console multi-clusters, Proxmox Datacenter Manager (PDM) : version 1.0 le 4 décembre 2025 avec la prise en charge de PBS, version 1.1 le 28 mai 2026 avec la supervision des clusters Ceph, le registre central des abonnements et une première étape de gestion centralisée des invités. Les deux outils ne se placent pas au même endroit :
| Critère | ProxCenter Community | Proxmox Datacenter Manager 1.1 |
|---|---|---|
| Éditeur | AdminSysPro, projet communautaire | Proxmox Server Solutions |
| Déploiement | Docker Compose sur une machine Linux existante | ISO dédiée ou paquets sur Debian 13 |
| Ressources recommandées | 2 vCPU, 4 Go, 40 Go (profil Small) | 2 cœurs, 4 Gio, 40 Go |
| Migration d'invités entre clusters | Édition Enterprise | Incluse depuis la première version |
| Consoles VM, IPAM, topologie, Cloud-Init, pare-feu | Inclus | Selon les notes de version 1.0 et 1.1 : accès shell des remotes, pare-feu et VRF EVPN en consultation |
| Supervision Ceph | Temps réel, cockpit depuis la 1.4.14 | Depuis la 1.1 |
| DRS et migration depuis ESXi | Édition Enterprise | Non annoncés dans les notes de version |
En pratique, PDM est l'outil officiel, léger et sans surcouche, qui gagne des fonctions à chaque version ; ProxCenter apporte dès aujourd'hui l'expérience « vCenter » (consoles, inventaire détaillé, IPAM, topologie) et un modèle open core dont il faut connaître la frontière. Rien n'empêche de faire tourner les deux sur le même parc : chacun n'a besoin que de son propre token API.
Sécuriser une console qui a la main sur tous vos hyperviseurs
ProxCenter concentre des tokens qui permettent de démarrer, arrêter, migrer ou sauvegarder chaque VM de chaque cluster. Quelques règles, dans l'ordre d'importance :
- Ne jamais exposer le port 3000 ni l'interface HTTPS à tout Internet. Restreignez l'accès à vos adresses d'administration ou à votre VPN avec un pare-feu nftables, et gardez les ports 8006 et 8007 des hôtes Proxmox fermés au public : seul ProxCenter doit les atteindre ;
- Activer la double authentification sur le compte administrateur dès la première connexion (la documentation lui consacre une page « Two-Factor Authentication » dans sa section Security) et créer un compte par personne dans « Security & Access → Users » plutôt que de partager l'admin ;
- Un token par cluster, à privilèges séparés, jamais
root@pamsans séparation en production. Si la lecture seule suffit, PVEAuditor et le duo DatastoreReader + Audit côté PBS retirent tout pouvoir d'action à la console ; - Sauvegarder les volumes et le fichier .env ensemble : la base PostgreSQL contient les connexions et leurs tokens, et
.envporte les secrets (APP_SECRET,NEXTAUTH_SECRET,POSTGRES_PASSWORD) que l'installeur relit pour ne casser ni la base ni les sessions. L'un sans l'autre ne se restaure pas. Traitez cette sauvegarde comme un secret, par exemple avec nos sauvegardes chiffrées hors site ; - Figer la version plutôt que
latestquand la pile est en production :VERSION=1.4.14dans.env, et une mise à jour seulement après lecture des notes de version, qui signalent les migrations de schéma ; - Garder l'hyperviseur à jour : ProxCenter ne remplace pas les correctifs de Proxmox VE, détaillés dans sécuriser et mettre à jour Proxmox VE.
Conclusion
En moins d'une heure, un VPS ou une VM de 2 vCPU et 4 Go de RAM donne à vos serveurs dédiés Proxmox VE ce qui manquait depuis l'abandon de vCenter par beaucoup d'équipes : une interface web unique pour l'inventaire, le stockage, Ceph, les consoles et les sauvegardes de tous les clusters, sans agent sur les nœuds et sans licence. Le token API à privilèges séparés, l'accès limité au VPN et la sauvegarde conjointe des volumes et du fichier .env sont les trois réglages qui séparent une console utile d'un point de compromission de tout le parc. Pour l'étape d'après, DRS, migration ESXi ou RBAC LDAP, l'édition Enterprise existe ; pour un ou plusieurs serveurs dédiés ElypseCloud, bi-processeur Intel Xeon E5-2620 v4 ou Xeon Gold 6230 avec 32 à 256 Go de RAM ECC, l'édition Community couvre déjà tout le quotidien d'un administrateur.
FiveM
Minecraft
Rust
RedM
Hytale