adminsyspro/proxcenter-ui
ProxCenter is an alternative to VMware vCenter for Proxmox environments. It provides a modern, intuitive web interface to manage multiple Proxmox VE clusters and Proxmox Backup Server instances from a single pane of glass.
๐ฆ Compliance (Enterprise)
- Security compliance frameworks. A new Frameworks tab in Compliance assesses a connection against NIST 800-53 r5, NIST 800-171 r2, CMMC Level 2 and ISO/IEC 27001:2022, reusing the existing hardening checks through a check-to-control crosswalk. Each framework shows a score donut and a satisfied / partial / failed breakdown, with a per-node result table, and exports a styled PDF report (cover, per-control table, provenance and source link) rendered by the WeasyPrint sidecar.
๐ฆ RBAC & access
- OIDC role preserved on login (v1.4.4 regression fix). v1.4.4 re-derived every OIDC user's role from IdP groups on each login and demoted anyone with no group match to viewer, which could lock out admins whose role was assigned manually. The re-sync is now authoritative only when a group-to-role mapping is configured and the IdP actually sent a groups array; otherwise the existing assignment is preserved, mirroring the LDAP path. First login still seeds the configured default role.
- Correct OIDC account handling. OIDC accounts now show an OIDC auth method instead of being labelled "Local", and setting a local password is blocked on OIDC and LDAP accounts on every surface (user edit dialog, profile, and the API), so an SSO account cannot gain a credentials login path that bypasses SSO and MFA. The profile shows "OIDC / SSO" as the login method with a provider-aware notice.
๐ฆ Migration
- SDN VNets in the network selector. The migration target-network dropdown now lists SDN VNets alongside classic Linux and OVS bridges, so nodes whose guest networks are VNets no longer get an empty list. VNets are labelled to distinguish them from bridges, and non-SDN clusters are unaffected.
- Source MAC preserved. Warm and direct-ESXi migrations now carry over the source NIC's MAC address (matching the cold / virt-v2v path), so the migrated guest keeps its network identity instead of booting with a fresh adapter and a stranded IP. The target boots only after the source is powered off, so there is no MAC collision.
- Warm migration reliability. A stale /dev/nbdN device is now released before attaching, and the warm delta-apply is chunked to stay under the SSH argument-size limit, so large or busy disks no longer fail late in the transfer.
- Cleaner vCenter logs. The misleading "vSAN datastore detected" line is no longer logged on the vCenter NFC path.
- Running LXC migration fixed. Migrating a running container now uses restart mode (restart=1) instead of online=1, which Proxmox rejects for containers, so an online CT migration no longer fails outright.
๐ฆ Inventory
- Open in Proxmox. A button next to the cluster or node name opens the native Proxmox web interface in a new tab. Clusters and standalone hosts open the connection origin; a cluster member node deep-links to its own management IP, falling back to the connection origin when the node IP is unknown or the connection sits behind a reverse proxy.
- Network view on VM-less clusters. The Inventory Network view now enumerates host bridges and VLANs per node, so a cluster with no VMs is no longer empty. Bridges are listed once at the node level and open a detail panel (type, VLAN, IP/CIDR, ports, vlan-aware, active/autostart, attached VMs); SDN VNet ids resolve to their friendly alias. Provider / full-cluster scope only; vDC tenants keep their pool-filtered, VM-derived data.
- Per-tenant tree state. The inventory tree expand/collapse state is scoped per tenant, so switching tenant no longer carries over the previous tenant's expansion.
- Clearer VM delete dialog. The VM delete confirmation dialog spells out exactly what will be removed.
- No clipped "100%". The percent chart Y-axis is widened so the "100%" label is no longer clipped.
๐ฆ DRS & maintenance
- Balance Types is now honored. The DRS load balancer respects the VM / CT Balance Types selection, which was previously a dead knob: candidates are filtered by guest type for both reactive balancing and homogenization, the setting is persisted and validated (an empty or non vm/ct value is rejected), and a guest-type gate is applied at execution time so a stale recommendation cannot move a guest of an excluded type.
- Simpler node maintenance. Entering node maintenance now just triggers Proxmox node-maintenance (HA guests are evacuated and spread by Proxmox), with a note that non-HA guests must be migrated or shut down manually. The forced single-target migration and the client-side storage scan are gone; the SSH-required notice and a disabled confirm button show only when SSH is disabled.
- DRS settings cleanup. The settings panel drops the balancing-method and balancing-mode selectors (knobs the engine never read, which also silences a backend warning), guards the Balance Types selection at a minimum of one, puts the three resource-weight sliders on one row, and adds cluster, node and guest icons with status across the exclusions and balance-types controls.
๐ฆ Connections
- Per-node SSH test results on failure. The cluster SSH test now shows the per-node ok / error breakdown on failure too, so one unreachable or misconfigured node no longer hides behind a bare "SSH test failed". The orchestrator resolves each node's own management IP for the test rather than reusing the connection endpoint.
๐ฆ Reliability
- No stale task re-alerts. Old completed tasks are no longer surfaced as new alerts about a week after they ran, when the event poller's dedup window outlived Proxmox task retention.
๐ Security
- Patched orchestrator CVEs. The Go orchestrator's dependencies are bumped (golang.org/x/crypto, x/net, x/sys) to clear the SSH, HTML and IDNA advisories.
๐ Docker Images
- ```bash
- docker pull ghcr.io/adminsyspro/proxcenter-frontend:v1.4.5
- docker pull ghcr.io/adminsyspro/proxcenter-orchestrator:v1.4.5
- docker pull ghcr.io/adminsyspro/proxcenter-weasyprint:v1.4.5
- ```
๐ฆ MSP & dashboards
- Header tenant switcher. Switch the active tenant from the navbar; dashboards are scoped to the selected tenant, so the provider can review each tenant's view without leaving the dashboard.
๐ฆ Migration
- Shared migration tasks. In-flight migrations now appear in the footer for every user, so the whole team sees what is running, with a link to the warm-migration setup docs.
- Correct stream exit code. A failed block-device transfer is now reported as a failure instead of being masked as success.
- Bounded thick-target zero-fill. Warm migration to a thick target bounds the zero-fill so it can no longer exit on a false ENOSPC on the destination volume.
๐ฆ Backups
- Real gateway errors. The Backups tab now surfaces the underlying gateway error instead of failing with "Unexpected token '<'" when a reverse proxy returns an HTML error page.
๐ฆ RBAC & access
- OIDC role re-sync on login. OIDC users re-sync their role from IdP group membership on every login, so group changes take effect immediately.
- Resource-scoped performance graphs. RRD performance graphs are scoped to the individual resource rather than the whole connection, closing an RBAC scope leak.
๐ฆ Reliability
- Stable performance chart axes. RRD charts show dates on the axes for multi-day timeframes, not just times.
- Stable inventory NETWORK section. The NETWORK section stays in place when a connection briefly blips instead of collapsing.
- Real errors surfaced. Guest and node API routes no longer swallow underlying errors, so failures are reported instead of showing empty data.
- Faster console previews. VM console screenshots are served as JPEG instead of raw PPM, for lighter and faster previews.
- Writable cache for the runtime user. The container creates a writable .next/cache for the non-root runtime user, fixing a startup EACCES behind some deployments.
- Safer DR config writes. Replication writes the DR config with cp -f on pmxcfs, avoiding a transient failure window during the write.
๐ Security
- Reduced image surface. The unused npm binary is removed from the runtime image, clearing the bundled undici advisories.
- Patched CVEs. Dependency CVEs are patched (including OpenSSL on the orchestrator image), a feature-route error log is sanitized, and front-end dependencies are refreshed (postcss, tailwindcss, @novnc/novnc, next-intl, nanoid, ws).
๐ Docker Images
- ```bash
- docker pull ghcr.io/adminsyspro/proxcenter-frontend:v1.4.4
- docker pull ghcr.io/adminsyspro/proxcenter-orchestrator:v1.4.4
- docker pull ghcr.io/adminsyspro/proxcenter-weasyprint:v1.4.4
- ```
๐ฆ MSP mode
- Whole-cluster tenant ownership. An MSP tenant can own entire Proxmox clusters (full-cluster view), alongside the existing vDC / IaaS slicing. The provider / NOC sees the whole fleet (dashboard, VMs, alerts, reports) for supervision and license aggregation, while each MSP tenant operates only its owned clusters.
- Provider provisioning. Assign or release connections to MSP tenants from Settings, with a "Tenant / vDC" ownership column on the connection lists and an owner selector when creating a connection.
- Scoped operations. MSP tenants get fleet-wide scope on their owned clusters: inventory tree, dashboard, alerts, reports, backup jobs, and VM migration among their owned connections (intra-cluster always, cross-cluster between two owned clusters).
๐ฆ Multi-license
- License stacking. Import additional licenses to grow fleet capacity without regenerating the primary license. Fleet-total node quota, per-tenant rollup, "Licensed to" per import, plus edit-mapping and remove, all from the Settings license tab. A single-license install behaves exactly as before (one license, no imports).
๐ฆ Connections
- Connection health diagnostics. A per-connection Diagnostic column and modal run read-only checks: reachability, authentication and permissions, version, cluster health / quorum / Ceph, storage, and SSH for PVE; version, auth and datastores for PBS; basic reachability for external migration sources. Works in Community mode (no orchestrator dependency).
- Nodes column collapses to the first node plus a count, with the full list on hover.
๐ฆ Alerts & notifications
- Guest names in alerts and event emails. VM and CT alerts and event notifications now show the guest name next to the vmid ("Name (vmid)") in the alerts table, the navbar dropdown, and the email template.
๐ฆ Templates
- Deploy wizard exposes real bridges and an editable VLAN tag for provider and MSP modes (vDC tenants keep the VNet picker).
๐ Fixes
- Orchestrator API authentication. The orchestrator now reads the API key from `PROXCENTER_API_API_KEY` (the value docker-compose already injects, identical to the frontend's key), so authentication can be enabled and matches the frontend. An unset key keeps authentication disabled as a safe fallback, so installs without a shared key are unaffected.
- Green Score insight moves to its own row so longer suggestions stay fully readable.
- The What's New panel no longer opens automatically on a new version; open it any time from the profile menu.
๐ Docker Images
- ```bash
- docker pull ghcr.io/adminsyspro/proxcenter-frontend:v1.4.3
- docker pull ghcr.io/adminsyspro/proxcenter-orchestrator:v1.4.3
- docker pull ghcr.io/adminsyspro/proxcenter-weasyprint:v1.4.3
- ```
๐ฆ Migration
- Warm migration for VMware sources (CBT). VMware VMs migrate with changed-block tracking and a final delta sync, so there is no data loss on large or busy disks. Covers ESXi-direct and vCenter (including vSAN), single and bulk, with a go/no-go preflight and SOAP-session keepalive (#395).
- Local migration from the cluster Guests tab (node-to-node), instead of forcing cross-cluster only (#388).
- Partial-VM cleanup no longer leaks the target VMID after a failed conversion (#403).
๐ฆ Consoles
- In-browser SPICE console for QEMU VMs, alongside noVNC (#390).
- Serial / headless VMs show a badge instead of looping on a failing screenshot (#375).
๐ฆ Ceph
- CRUSH topology view in the cluster Ceph tab: read-only CRUSH tree with details and pools (#407).
- Full cluster config with working OSD flag toggles (#405).
๐ Security & access
- Security hardening sprint: critical findings closed plus follow-ups (#369), TOFU host-key verification on the ssh2 path (#372), per-connection ws-proxy TLS and Dependabot overrides (#371), js-cookie bumped to clear a high-severity advisory (#346), Node 26 pipeline hardening for XCP-ng / Hyper-V / Nutanix (#345).
- Role-level default RBAC scope, inherited by every assignment of that role (#386).
- SSO-only login policy for OIDC (hide the local form, force the SSO redirect) (#362), plus an issuer fix for manual endpoint overrides (#361).
- Local TOTP two-factor with an admin enforcement policy (#351).
- VM User role gains the read access the Inventory needs to load (#387).
- Standalone hosts behind NAT: node management connects to the public host, not the private interface (#385).
๐ฆ Backups & reports
- Reports and notifications overhaul: connection scoping, backup report polish, per-category severity, and an event-email rework (English copy, task-log details, one mail per event) (#384).
- Empty guest Backups tab now explains why (no connected PBS vs no snapshots) (#399).
- "Run now" works again (a missing route returned an HTML 404) (#398).
- Real local backup time and Proxmox-style columns (#382), and legacy maxfiles is translated to prune-backups (#342).
๐ฆ Inventory & guests
- Clone a VM from a snapshot restore point, choosing a snapshot as the clone source (#412).
- Guest VLANs resolved from host bond sub-interfaces so tagged guests group correctly (#391).
- Resume paused VMs, allow dots in tags (#409), and the guest icon dims when off for color-blind legibility (#411).
- Dashboard widgets honor the appearance settings: font-size, corner-rounding, shared gauge (#377).
- Tree sections stay open when clicking the PROXMOX VE / NETWORK headers (#367).
๐ฆ Alerts
- Pull-based threshold evaluation with silence sync (#365); silences are respected in the home dashboard widget (#368).
๐ฆ Dependencies
- Routine bumps (@mui/lab, tsx, @tailwindcss/postcss, trivy-action, sonarqube-scan-action) and an SSO group-name trim fix for LDAP / OIDC mapping (#343).
๐ Docker Images
- ```bash
- docker pull ghcr.io/adminsyspro/proxcenter-frontend:v1.4.2
- docker pull ghcr.io/adminsyspro/proxcenter-orchestrator:v1.4.2
- docker pull ghcr.io/adminsyspro/proxcenter-weasyprint:v1.4.2
- ```
๐ฆ DRS, automatic mode hardening
- The automatic-mode DRS is significantly safer in this release. Several
- latent issues surfaced under multi-cluster workloads with scheduled
- rebalancing and are now closed.
- Per-cluster migration cap replaces the global cap as the user-facing
- throttle. Operators reason per cluster, not globally, so the legacy
- global setting is removed from the UI. Each cluster gets its own slot
- budget, preventing one busy cluster from monopolizing every scheduled
- tick (backend #5, frontend #333).
- + 25 more
๐ฆ Migration
- **Migrate-to-Proxmox button greyed out on single-disk Proxmox nodes
- fixed** (#331). When `/` is the only large filesystem on the target
- (no separate `/var/lib/vz`, LVM-thin storage not visible to `df`), the
- preflight returned an empty `tempStorages` list, hiding the Temporary
- Storage selector and silently disabling the Migrate button. `/tmp` is
- now synthesized as a fallback when the root filesystem has at least
- 1 GiB free, and a defensive Alert surfaces the truly degenerate case.
- Long-running PVE config PUT timeouts on slow storage fixed
- + 6 more
๐ฆ Rolling update
- Respect `reboot_timeout` end-to-end with sustained-online polling
- + verify retry (backend #2). `waitForNodeOnline` used to return on the
- first online sighting. After a reboot pmxcfs can briefly report online
- while corosync re-joins, then flip back to unknown. Now requires 3
- consecutive online sightings (10s sustained), and `verifyNodeHealth`
- polls for up to 60s instead of one-shot.
- Scope `reboot_timeout` deadline to the reboot path only so a short
- value doesn't shorten the standalone verify window for non-reboot
- + 5 more
๐ฆ Deployment & install
- Backfill `ORCHESTRATOR_API_KEY` on upgrade and refuse placeholder
- at startup (#330). Pre-v1.4.0 installs without the key, and
- `.env.example` placeholder leakage, are detected and fixed by the
- installer. The frontend container refuses to boot with the placeholder.
- Auto-generate `INTERNAL_API_TOKEN` outside Docker for source-built
- installs.
- Install URL uses `proxcenter.io/install/*` instead of the `get.`
- subdomain.
๐ฆ AI
- Test connection for Ollama fixed (#314, #315). The provider check
- was broken since the auth refactor.
๐ Security
- SSRF guard on AI test and models endpoints (#335). The `ai/test`
- and `ai/models` routes accept user-supplied base URLs for Ollama and
- OpenAI-compatible providers. The validator now blocks cloud metadata
- endpoints (AWS 169.254.169.254, Alibaba 100.100.100.200, OCI
- 192.0.0.192, AWS IPv6 IMDS), strips IPv6 brackets before comparison,
- and performs a DNS lookup so DNS aliases (such as `*.nip.io` style
- hostnames) that resolve to blocked addresses are rejected. Loopback
- and RFC1918 remain reachable for legitimate local Ollama setups.
- + 14 more
๐งช Quality & test coverage
- New PR-only SonarCloud Quality Gate workflow with proper LCOV path
- rewriting and baseline analysis on main.
- New Vitest route-handler harness, with tests for the connections POST
- route, SSH test endpoint, orchestrator client, and SSH helpers.
- Multiple Sonar bug, vulnerability, and smell cleanups.
๐ฆ Dependencies
- Node 22-alpine to 26-alpine on the frontend image.
- Various dependabot bumps (eslint-config-next, stylelint,
- softprops/action-gh-release).
๐ฆ Upgrade notes
- No schema changes since v1.4.0. PostgreSQL connection string unchanged.
- The DRS Settings UI presents `max_concurrent_migrations_per_cluster`
- instead of `max_concurrent_migrations`. Existing configs are
- auto-migrated at runtime (per-cluster falls back to 2 when persisted
- value is 0). The legacy `max_concurrent_migrations` field is still
- parsed from existing YAML / DB rows but no longer enforced.
- `rebalance_interval` now accepts 15m and 30m in addition to the
- hourly options.
- + 5 more
๐ Docker Images
- ```bash
- docker pull ghcr.io/adminsyspro/proxcenter-frontend:v1.4.1
- docker pull ghcr.io/adminsyspro/proxcenter-orchestrator:v1.4.1
- docker pull ghcr.io/adminsyspro/proxcenter-weasyprint:v1.4.1
- ```
๐ฅ 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.
โจ 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.
- + 1 more
๐ Docker Images
- ```bash
- docker pull ghcr.io/adminsyspro/proxcenter-frontend:v1.4.0
- docker pull ghcr.io/adminsyspro/proxcenter-orchestrator:v1.4.0
- docker pull ghcr.io/adminsyspro/proxcenter-weasyprint:v1.4.0
- ```
๐ 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
- + 15 more
๐ Docker Images
- ```bash
- docker pull ghcr.io/adminsyspro/proxcenter-frontend:v1.3.5
- docker pull ghcr.io/adminsyspro/proxcenter-orchestrator:v1.3.5
- ```
๐ 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
- + 40 more
๐ Docker Images
- ```bash
- docker pull ghcr.io/adminsyspro/proxcenter-frontend:v1.3.4
- docker pull ghcr.io/adminsyspro/proxcenter-orchestrator:v1.3.4
- ```
๐ 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
- + 35 more
๐ Docker Images
- ```bash
- docker pull ghcr.io/adminsyspro/proxcenter-frontend:v1.3.3
- docker pull ghcr.io/adminsyspro/proxcenter-orchestrator:v1.3.3
- ```
๐ Changes
- fix(migration): add vSAN support for ESXi disk transfer
๐ Docker Images
- ```bash
- docker pull ghcr.io/adminsyspro/proxcenter-frontend:v1.3.2
- docker pull ghcr.io/adminsyspro/proxcenter-orchestrator:v1.3.2
- ```
๐ Changes
- refactor(inventory): extract context menus and dialogs from InventoryTree
- refactor(inventory): extract 15+ dialogs from InventoryDetails into InventoryDialogs
- refactor(inventory): extract ExternalHypervisorDashboard from InventoryDetails
- refactor(inventory): extract StorageDetailPanel from InventoryDetails
- refactor(inventory): extract VmItem and TreeIcons from InventoryTree
- fix(db): add alert_silences table to db-migrate.js for Docker builds
- fix(failover): comprehensive failover reliability for clusters with downed nodes
- fix(failover): count timeouts as failures and lower threshold to 2
- + 30 more
๐ Docker Images
- ```bash
- docker pull ghcr.io/adminsyspro/proxcenter-frontend:v1.3.1
- docker pull ghcr.io/adminsyspro/proxcenter-orchestrator:v1.3.1
- ```
๐ Changes
- fix(rbac): allow role change on global-scope assignments (#233)
- fix(rbac): display custom role names correctly in OIDC, LDAP and users screens (#233)
- fix(migration): add Accept header for XO VDI downloads
- fix(migration): do not delete XO snapshot on download failure
- feat(failover): add failure threshold, separate timeouts from hard errors, reduce timeout to 8s
- fix(console): route noVNC to the VM's actual node IP instead of connection baseUrl
- feat(failover): discover node IPs at connection creation and update
- feat(failover): refresh node IPs every 5 minutes in inventory poller
- + 12 more
๐ Docker Images
- ```bash
- docker pull ghcr.io/adminsyspro/proxcenter-frontend:v1.3.0
- docker pull ghcr.io/adminsyspro/proxcenter-orchestrator:v1.3.0
- ```
๐ Changes
- fix: SSH node IP resolution falling back to LB address behind proxy
- fix: remove unwanted global scroll on inventory page
- feat: display PVE tag shapes in tree and sync tags on edit (#227)
- feat: add Settings, Metric Server and Notifications tabs for standalone nodes
- fix: resolve notification targets API returning types instead of actual endpoints
- feat: add Metric Server and Notifications tabs to datacenter view
- feat: add replication settings and network interface dropdowns
- refactor: split datacenter settings into sub-components, add missing PVE fields
- + 3 more
๐ Docker Images
- ```bash
- docker pull ghcr.io/adminsyspro/proxcenter-frontend:v1.2.5
- docker pull ghcr.io/adminsyspro/proxcenter-orchestrator:v1.2.5
- ```
๐ Changes
- fix: add swap and mountpoint to TypeScript types for LXC support
- perf: reduce rolling updates polling frequency when idle
- feat(lxc): add swap editing and disk display for LXC containers (#225)
- feat(settings): add data disclosure notice in AI settings
- fix(settings): AI assistant toggle state not persisting when disabled
- ci: auto-create GitHub Release with changelog on version tags
๐ Docker Images
- ```bash
- docker pull ghcr.io/adminsyspro/proxcenter-frontend:v1.2.4
- docker pull ghcr.io/adminsyspro/proxcenter-orchestrator:v1.2.4
- ```
๐ Changes
- fix(settings): auto-cleanup stale ManagedHost entries when nodes are removed from cluster (#222)
๐ Docker Images
- ```bash
- docker pull ghcr.io/adminsyspro/proxcenter-frontend:v1.2.3
- docker pull ghcr.io/adminsyspro/proxcenter-orchestrator:v1.2.3
- ```
โจ New Features
- Global time range picker (1h / 6h / 24h / 7d / 30d) affecting all chart widgets
- Collapsible section headers with Grafana-style separators
- Full light/dark theme support with adaptive colors on all widgets
- Free-resize on all widgets (no more fixed max sizes)
๐ฆ Improved Widgets
- PBS Overview, Ceph Status, DRS Status, Guest Heatmap, Infra Global Chart, Backup Calendar, KPI vignettes
๐ฆ Improvements
- Theme-aware tooltips with date + time display
- Centralized color tokens for consistent theming
- Auto-cleanup of deleted widget types on layout load
- Updated default layout and presets
- Added missing i18n keys (en/fr/de/zh-CN)
๐ Fixes
- Duplicate fontSize property causing build failure
- SonarCloud bugs (sort compare function, redundant ternary)
๐ฆ Migration (ESXi / XCP-ng)
- SSHFS transfer mode and SSHFS Boot near-zero downtime migration
- Fallback `sshfs_boot` to cold migration for XCP-ng pipeline
- Parse disk controller type (SCSI/SATA/IDE) from ESXi SOAP XML
- vSAN datastore support improvements
๐ฆ Backup & HA
- Overhauled backup job dialog with HA resource management
- Name column added to HA resources table
- Fixed restore modal from PBS datastore view
๐ฆ Inventory & UI
- Restored scroll in list views (VMs, Pools, Tags, Nodes)
- Display disk wear percentage instead of remaining life
- UI cleanup and bug fixes
โก Performance
- Optimized polling, RRD fields, and tree re-renders
๐ Bug Fixes
- Fixed TypeScript type narrowing for cluster selection
- Resolved SonarCloud issues (sort locale, regex backtracking, void expressions)
- Fixed Autocomplete type error for backup schedule options
โจ What's New in v1.1.0
- 784 commits since v1.0.0 โ a massive update covering migrations, site recovery, storage, networking, UI polish, and much more.
- ---
โจ ๐ Major Features
- ESXi cold & live migration with real-time progress tracking and license detection
- XCP-ng (Xen Orchestra) connection support and migration pipeline
- Bulk & live migration from XCP-ng and ESXi with dashboards
- Site Recovery โ full replacement of replication page with DR capabilities
- Emergency DR tab โ start/stop DR VMs, trigger real failover
- CRUSH-map-aware Ceph simulation for site recovery planning
- Recovery plans as compact table with connection names
- Network tree section with detail views for clusters, nodes and VLANs
- + 29 more
๐ฆ ๐ง Improvements
- Replication UI โ progress bar, VM names, logs, copy button
- Storage usage evolution graph with timeframe selector
- Improved inventory UX โ favorite star, hidden columns, better translations
- Complete Proxmox CPU types list
- Compact Options tab for VMs
- Improved VM header with icon-based status and flash indicator
- DRS settings โ homogenization and max load spread exposed in config
- ---
๐ ๐ Notable Bug Fixes
- Fixed migration disk attach on NFS storage (fallback reads VM config)
- Fixed ESXi snapshot-based near-live migration, cookie quoting
- Fixed CPU at 0% โ PVE cpu is already a 0-1 ratio
- Fixed JWT secret mismatch between pages and API middleware
- Fixed community edition fresh install crashes
- Fixed cross-node VM terminal sessions (resolve target node IP)
- Fixed maintenance mode via SSH instead of broken REST API
- Fixed WebSocket auto-detect for nginx proxy vs direct Docker
- + 5 more
โป๏ธ โป๏ธ Refactoring
- Extracted InventoryDetails into modular components, hooks, and tabs (10073 โ 5098 lines)
- Replaced Prisma CLI with direct SQLite migration script
- Unified HTTP + WebSocket server on single port 3000
โจ Key features
- Customizable dashboard with drag & drop widgets (VM status, cluster health, resource trends)
- DRS and Site Recovery widgets (Enterprise)
- Per-cluster health score with visual gauges
- Hierarchical inventory tree (Datacenter โ Cluster โ Node โ VM/LXC)
- Proxmox icons for nodes, detailed VM view with tabs (config, snapshots, backups, network)
- Power actions (start/stop/restart) with per-VM spinner and auto-refresh
- VM/LXC creation with OS selection and blueprints
- Clone, migrate, and bulk operations on nodes
- + 16 more
