DRS hardening + migration + rolling update + security
ProxCenter
VirtualizationA modern web interface for monitoring, managing, and optimizing Proxmox VE clusters
Features
- Multi‑cluster management from a single dashboard
- Cross‑hypervisor migration and workload balancing
- Enterprise edition adds DRS, alerts, reports via Go orchestrator
Recent releases
View all 15 releases →- Start ProxCenter v1.4.0 on an empty PostgreSQL instance; no data migration provided.
- Ensure PostgreSQL version compatible with the release requirements.
- SQLite backend removed; PostgreSQL required (no automatic migration).
- MSP/IaaS capabilities with vDC tenant cockpit, cloud-style deploy flow, native IPAM, per-vDC PBS bindings, tenant restore from PBS, scoped PVE backup jobs, datacenter assignments and Green KPIs, tenant-scoped reports.
Full changelog
ProxCenter v1.4.0
MSP / IaaS release: vDC cockpit, native IPAM, multi-tenant PBS, Postgres cutover.
Breaking change: SQLite to PostgreSQL
ProxCenter v1.4.0 drops SQLite and requires PostgreSQL. No automatic data migration ships with this release. Upgrading starts on an empty Postgres.
Why this change. SQLite's single-writer model produced visible lock contention as soon as multi-tenant workloads, vDC quotas, replication metadata, and the report generator's per-tenant queries kicked in concurrently. PostgreSQL removes those locks, scales to the cross-tenant aggregations and JSONB queries we now rely on, and unlocks the next milestone: ProxCenter running in HA with PostgreSQL streaming replication and a shared cluster store between frontend and orchestrator.
Headline feature: MSP / IaaS with vDC
ProxCenter becomes an MSP-ready IaaS surface. Tenants get a cloud-style abstraction (no node or cluster details) backed by per-tenant resource pools.
- vDC tenant cockpit (
/my-vdc) with live consumption, donut quotas (CPU, RAM, Storage, Snapshots, Backups), datacenter map, Green KPIs. - Cloud-style deploy flow with quota enforcement on every step (template, ISO, clone, qmrestore). Foreign nodes, storages, bridges refused upfront.
- Native IPAM at the vDC level: SDN VNet/subnet management, automatic IP and MAC reservation on deploy/clone/restore, PVE pool scan to merge externally created VMs.
- Per-vDC PBS bindings with auto-provisioning of namespace, sub-token, ACL, and PVE storage. Manual mode also supported.
- Tenant restore from PBS (overwrite source or restore as new VM into the tenant pool).
- Tenant-scoped PVE backup jobs with structured schedule picker, Verify/Delete actions.
- Datacenters, country, Green configuration: per-datacenter assignments tree, country flags, Green factors per node.
- Tenant-scoped reports (alerts, capacity, compliance, inventory, security, site recovery, utilization). New vDC report type gated to super-admin. Rendered via WeasyPrint sidecar with per-tenant white-label.
- Add PBS server horizontal tabs view in inventory
- Allow editing and removing USB/PCI/serial/audio/RNG devices in vm/hardware
- Expose Exclude pattern field on alert rules UI
Full changelog
Changes
- fix(sonar/S2871): sort sudoers paths with localeCompare for stable ordering
- fix(inventory/types): add movedTo field to DetailsPayload to match helpers payload
- chore(tsconfig): switch moduleResolution to bundler
- refactor(migration): extract crossClusterMigrate helper used by TreeDialogs and useVmActions
- fix(inventory/helpers): follow VM to its new node after intra-cluster migration
- fix(migration): follow VM after intra-cluster qmigrate, silence stale-node noise
- feat(network-flows): clearer collector-off state and faster agents probe
- fix(i18n): respect user locale in date formatting across the product
- fix(migration): set pre-enrolled-keys=1 on efidisk0 for UEFI guests
- feat(inventory): add PBS server horizontal tabs view
- feat(vm/hardware): allow editing and removing USB/PCI/serial/audio/RNG devices
- feat(alerts): expose Exclude pattern field on alert rules UI
- feat(migration/esxi-direct): route Windows Cold through virt-v2v for auto driver injection
- fix(migration/esxi-direct): robust EFI Windows boot + vSAN guard + custom temp storage
- refactor(settings/ssh-commands): read executablePath from allowlist API
- i18n(settings/ssh-commands): fr, de, zh-CN translations
- feat(settings/ssh-commands): add Security Recommendations card with sudoers template
- feat(settings/ssh-commands): add searchable Allowlist card
- feat(settings/ssh-commands): add Connection Status card
- feat(settings): scaffold SSH Commands tab
- feat(api): add /api/v1/ssh/allowlist proxy to orchestrator
- docs(ssh-commands): add design spec and implementation plan
- fix(network-flows): route OVS commands through executeSSH to respect sshUseSudo
Docker Images
docker pull ghcr.io/adminsyspro/proxcenter-frontend:v1.3.5
docker pull ghcr.io/adminsyspro/proxcenter-orchestrator:v1.3.5
- Show NFR/Not For Resale badge in license panel and topbar
- Expose isNFR flag via license-context
- Move alert thresholds to Settings, making them Community‑accessible
Full changelog
Changes
- fix(cross-cluster-migration): delete source VM + block cpu=host mismatch
- fix(site-recovery): hydration error on Pool chip inside Typography
- feat(settings): show NFR / Not For Resale badge in license panel
- feat(ui): show NFR / Not For Resale chip in topbar
- feat(license-context): expose isNFR flag
- fix: address 7 SonarCloud reliability issues
- feat(settings): move alert thresholds to Settings, make Community-accessible
- fix(storage): NFS content fetch times out at 8s with misleading error
- fix(dashboard): respect configured alert thresholds instead of hardcoded 80/90
- fix(inventory): health alert drill-down, i18n dashboard alerts, Recharts/Menu warnings
- ci: skip backend-dependent jobs on Dependabot PRs
- fix(site-recovery): React hooks placement + leaked values in ReplicationFlow
- chore(deps): bump dependencies to close Dependabot alerts
- chore(security): address SonarCloud findings
- feat(site-recovery): pair-by-pair dashboard + VM list with console in failover
- feat(site-recovery): bandwidth history, auto-retry badge, dashboard refresh
- feat(site-recovery): per-VM status panel in protection drawer
- feat(site-recovery): bandwidth windows, preflight UI, delete confirm, polish
- feat(site-recovery): job names, snapshots tab, protection UI polish
- i18n: site-recovery scheduler keys in 4 locales
- feat(site-recovery): wire EditJobDialog in page.tsx
- feat(site-recovery): Edit button + planning label in ProtectionTab
- feat(site-recovery): EditJobDialog for safe edits
- feat(site-recovery): integrate ScheduleBuilder into CreateJobDialog
- feat(schedule): ScheduleBuilder orchestrator
- feat(schedule): ModeToggle RPO vs Scheduled
- feat(schedule): FrequencyPicker with 4 tabs
- feat(schedule): TimezonePicker (IANA autocomplete)
- feat(schedule): SchedulePreview — next 5 executions
- feat(site-recovery): extend types with schedule_spec and timezone
- feat(schedule): scheduleToLabel i18n-aware label + tests
- feat(schedule): scheduleToCron pure function + tests
- feat(schedule): ScheduleSpec TS types
- chore: add cron-parser for schedule preview
- fix(metrics): create metric server via correct PVE endpoint and schema
- fix(migration): handle KRBD path format from pvesm path on Ceph targets
- feat(inventory): edit VGA memory and clipboard on Display row (#260)
- docs: implementation plan for Set Display Memory feature (#260)
- docs: spec for Set Display Memory feature (issue #260)
- feat(inventory): kebab menu detach + inline attach/delete on unused disks (#259)
- feat(hardware): relabel regular-disk Delete as Detach; add initialTab prop
- feat(hardware): add DeleteUnusedDiskDialog component
- fix(hardware): reset DetachConfirmDialog state on reopen
- feat(hardware): add DetachConfirmDialog component
- refactor: rename handleDeleteDisk to handleDetachDisk (semantic fix)
- feat(i18n): add detach/attach/delete-unused keys for disk management
- docs: implementation plan for detach/attach disk feature (#259)
- docs: spec for detach/attach disk feature (issue #259)
Docker Images
docker pull ghcr.io/adminsyspro/proxcenter-frontend:v1.3.4
docker pull ghcr.io/adminsyspro/proxcenter-orchestrator:v1.3.4
- Expose guest VMware Tools status and snapshot quiesce query in vmware module
- Add SDN sub-tabs: fabrics, vnet firewall, ipam allocations viewer, options controllers/ipam/dns, vnets list, zones list
- Add group-based access restriction to LDAP authentication
Full changelog
Changes
- fix(types): unblock production build with four latent TypeScript errors
- fix(sdn): use brand primary color for Apply buttons instead of warning yellow
- feat(migration-ui): power-state and VMware Tools guards in migration modals
- feat(migration): vCenter live pipeline hardening + sparse-aware disk import
- feat(vmware): expose guest VMware Tools status + snapshot quiesce query
- fix(ssh): preserve stdout on non-zero exit for diagnostic visibility
- feat(migration-ui): enable Live migration toggle for vCenter sources
- feat(migration): vCenter live migration via NFC-on-snapshot + Windows EFI boot fallback
- feat(migration): tempStorage selector in bulk migration modal
- fix(migration): harden vCenter v2v pipeline for multi-disk and bulk scenarios
- fix(ssh): honor timeoutMs in ssh2 fallback and orchestrator fetch
- fix(inventory): strip flex when applying persisted column widths (#188)
- fix(migration): expose virtio-win download endpoints in preflight route
- chore(gitignore): ignore .gitnexus cache and .worktrees directory
- fix(sdn): UX polish on parent tab and fabrics route
- fix(sdn): address code review findings
- feat(sdn): apply flow with pending banner and audit
- feat(sdn): fabrics sub-tab with PVE 9 gate
- feat(sdn): vnet firewall sub-tab with rules viewer
- feat(sdn): ipam sub-tab with allocations viewer
- feat(sdn): options sub-tab with controllers / ipam / dns
- feat(sdn): vnets sub-tab with read-only list
- feat(sdn): zones sub-tab with read-only list
- fix(migration): unblock Windows UEFI VMs via virt-v2v (ovmf, efidisk, virtio-blk fallback, rhsrvany)
- fix(sdn): align scaffolding with design spec
- feat(cluster): add SDN tab scaffolding with 6 stub sub-tabs
- fix(hardware): allow clearing VM cores/sockets/memory inputs + RAM slider step 1 (#257)
- fix(export): pass maxcpu/mem/disk to VmsTable in InventoryDetails
- feat(export): add vCPU, RAM/Disk allocated vs used columns to XLSX export
- feat(create-vm): import existing disk during VM creation (issue #250)
- feat(options): pending change indicators + revert button in Options tab
- fix(hardware): delete CD/DVD with ISO in boot order + MUI confirm dialog + task progress UX
- fix(migration): check sshConfigured in addition to sshEnabled for delete source
- fix(ssh): wrap sudo commands in sh -c for compound command support
- fix(migration): disable delete source checkbox when SSH not enabled
- fix(failover): add circuit breaker to pveFetch for auto-recovery
- feat(ldap): add group-based access restriction
- feat(inventory): show lock icon on VMs in tree
- feat(inventory): add toggle to show VM-ID in tree
- fix(vnc): add auto-reconnect with exponential backoff
- fix(migration): always unlock source VM after successful cross-cluster migration
- fix(storage): type-aware shared storage detection (#249)
- feat(migration): vCenter NFC transport + multi-disk + bulk sequential + adaptive UI
Docker Images
docker pull ghcr.io/adminsyspro/proxcenter-frontend:v1.3.3
docker pull ghcr.io/adminsyspro/proxcenter-orchestrator:v1.3.3
Weekly OSS security release digest.
The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.
No spam, unsubscribe anytime.