Open-core products often draw the edition line in the wrong place. The free edition caps hosts, hides HA, or leaves out backup, so it works as a demo and nothing more. Victor draws the line differently: Community is a complete product for running one site, and Enterprise adds what specific kinds of organisation need on top of it. This post explains where that line is, why, and how to decide.

The principle#

Three rules shape the split:

  1. No artificial caps. Community has no host or cluster limit. The largest estates measured so far are around 5,000 VMs, on simulated and nested labs; that is a tested figure, not a ceiling.
  2. Safety and data integrity are never paywalled. HA for the control plane and for VMs, including fencing, is in Community. So is full VM backup and restore.
  3. A license never stops VMs or running automation. If an Enterprise license expires, Enterprise settings become read-only. VMs keep running, sign-in keeps working, and configured integrations keep delivering.

Community is licensed under Apache-2.0. Enterprise is a separate, proprietary module that imports Community and builds a different server binary, victord-ee. Both editions share one API: Enterprise RPCs are marked in the public API definition, and a Community server answers them Unimplemented with a message saying the feature is a Victor Enterprise feature. victorctl exits with code 3 in that case, so scripts can tell “not in this edition” apart from a failure.

Both editions install air-gapped. Nothing in either needs the internet to install, upgrade, activate or run.

What Community covers#

Community is meant to run a real site, not just a lab:

Area What Community includes
Engines KVM (the classic runtime, managed through upstream Incus) and KubeVirt, in one inventory
Inventory and lifecycle The whole VM lifecycle, consoles, templates, media, devices, folders, tags and permissions
Placement and availability Placement rules, HA for the control plane, VM HA with fencing
Networking Bridge, macvlan and OVN networks on KVM; Multus networks on KubeVirt; built-in IPAM with IP pools
Identity and access Local accounts with two-factor, OIDC, LDAP, RBAC
Automation The API, victorctl, the Terraform provider, MCP
Events Webhook, email and syslog delivery (JSON, CEF, LEEF)
Backup Scheduled full VM exports to S3, NFS or a directory; retention; restore in place or as a new VM; a backup API with changed-block tracking for vendors
VMware exit RVTools and live vCenter assessment, sizing, sources, plans with identity preservation, cold migration of one Linux VM per call
vSphere bridge Reads, power operations and host maintenance mode for existing vSphere tooling
Security and compliance The Security & Compliance Center with NIST SP 800-53 rev 5 mapping, signed evidence packages, the tamper-evident audit chain, host firewall and CIS-profile SCAP scans
Delivery The signed air-gap bundle, Zarf package and victor-load

Two items surprise people. First, the account-policy rules themselves (password length, history, age, inactivity) are Community; only the one-click DoD preset that sets them is Enterprise. Second, the consent notice and classification banner are Community settings too.

FIPS works the same way. The FIPS build mode is in Community, and anyone can build a FIPS-mode binary with make fips-build. What Enterprise provides is the supported, signed release of it.

What Enterprise adds, and why#

Each Enterprise feature has a name the server reports in SystemService/About, and the UI only shows what that list contains.

federation: many sites in one view#

Community runs one site. Enterprise joins sites pairwise, each keeping its own server and database, into one admin view: a tree with a site level, global search, cross-site tasks, alarms and events. Actions are routed to the owning site, which checks the caller with its own roles and audits the action. A site that is down shows as unreachable while the others keep working. This exists because multi-site estates need one pane without one failure domain. A one-step cross-site VM move is not built yet.

migration-advanced: large VMware exits#

Community migrates one VM per call with qemu-img, which is enough for current Linux guests. Enterprise adds waves and bulk start, virt-v2v conversion (virtio drivers in, VMware Tools out), reapplying Windows guests’ static IPs, isolated test boot with in-guest checks (KVM clusters only), and cutover in a window with hooks and rollback to vCenter. These matter when hundreds of VMs move on a schedule with change control.

Be aware of the validation state: migration has been validated against vcsim, the vCenter simulator, not a real vCenter yet, and virt-v2v, including Windows conversion, has been tested with a stand-in only. Warm migration is planned for Enterprise and not available.

vmware-bridge-write: vSphere automation that changes things#

Community’s vSphere-compatible bridge (off by default, reporting as vCenter 8.0.3) serves reads and power operations, which covers reporting scripts, Ansible inventory and Terraform data sources. Enterprise adds the write paths: clone, reconfigure, snapshots, create, destroy, move, tags and guest operations, so the Terraform vsphere provider, PowerCLI change cmdlets, Ansible modules and Packer run unchanged. The project’s conformance suite passes 141 checks on Community and 227 on Enterprise with pinned clients (govc 0.56, PowerCLI 13.3, vsphere provider 2.12.0, Packer plugin 2.5.0).

vm-backup-advanced: backup that meets a retention policy#

Community’s backup takes full exports. Enterprise adds incremental points on changed-block tracking with deduplicated chunks, AES-256-GCM encryption with per-target keys, verification after each point, GFS retention, copy jobs to a second target, S3 Object Lock, and file-level restore. Test restores into an isolated network and instant recovery (booting a point while its disk copies) work on KVM clusters only.

cac: CAC/PIV sign-in#

An mTLS listener and certificate-based API calls (victorctl --client-cert) for organisations that require smart-card authentication.

audit-policy: fail-closed audit#

Refuses changes while audit records cannot be written (NIST AU-5), and raises alarms when a forwarding target falls behind or audit storage fills (AU-5, AU-4). The tamper-evident audit chain itself is Community.

dod-preset: one-click account policy#

Sets 15-character passwords with complexity, 5 remembered, a 60-day maximum age, disables accounts after 35 days without sign-in, and turns guest operations and MCP off. It does not set the consent notice or classification banner; configure those separately in Community settings.

compliance-export: assessor artefacts#

Generates an OSCAL 1.2.3 component definition (NIST SP 800-53 rev 5) and a DISA STIG Viewer checklist (.ckl, Application Security and Development STIG V6R3) from the live configuration, and includes them in the evidence package. It also enables the host STIG profiles. These are evidence for an assessment, not a certification.

splunk-hec: Splunk HTTP Event Collector targets#

Community already sends syslog in JSON, CEF and LEEF. Enterprise adds native Splunk HEC targets.

Signed FIPS-mode builds#

Enterprise ships signed FIPS-mode images and binaries built with Go’s FIPS 140-3 module, with the evidence of how they were built. Pinning the CMVP-validated module version is still open, so treat this as FIPS mode, not a validated configuration.

How licensing works#

Update, 19 October 2026: compatible Alpha builds now offer opt-in licensing per physical managed compute host, using signed customer entitlements and site unlocks. Trials and longer terms use the same protocol. See the current activation guide (repository access may be required). Legacy installations are not switched automatically.

The original Alpha format described below counts CPU sockets and activates offline:

  • The file. A license is a JSON file signed with Ed25519. Its payload names the organisation, the expiry, the licensed features, the socket count and the grace period.
  • Installation. victord-ee reads it from --license-file (VICTOR_LICENSE_FILE, default /etc/victor/license.json) and rereads it every minute, so replacing the file installs a new license without a restart. On Helm, set license.existingSecret.
  • Grace. After expiry there is a grace period, 30 days unless the license says otherwise. Everything works during it, and events record the expiry and the end of grace.
  • After grace. Enterprise features become read-only. Configured things keep working (CAC/PIV sign-in, SIEM delivery, the audit policy), but their settings cannot change, and the compliance export is refused until a valid license is installed. VMs, sign-in and the bridge’s write paths are unaffected.
  • Overuse. More sockets in use than licensed raises a warning event. Nothing stops.

Deciding: some scenarios#

A homelab, a lab, or a technical evaluation. Community. It is the same engine, inventory and API that Enterprise uses.

A single-site production estate of Linux VMs. Community covers it: HA with fencing, full backups, Terraform and victorctl, and cold migration from VMware one VM at a time. Consider Enterprise if backup retention needs incrementals, encryption or immutability.

A large VMware exit with Windows guests. Enterprise, for waves, virt-v2v, Windows static IPs, test boot and rollback. Run a pilot against your own vCenter first, given the current validation state.

Existing Terraform vsphere or PowerCLI pipelines that create VMs. Enterprise, for the bridge’s write paths. If your scripts only read and power-cycle, Community’s bridge may be enough; test them.

Several data centres or edge sites. Enterprise, for federation.

A DoD or other regulated environment. Enterprise, for CAC/PIV, the DoD preset, fail-closed audit, OSCAL and STIG export, and signed FIPS-mode builds. The Security & Compliance Center and audit chain you will build on are Community.

Moving from Community to Enterprise#

Enterprise is Community’s server with Enterprise packages compiled in, so an upgrade swaps the server, not the platform:

  • Replace victord with victord-ee. On Helm, set edition: enterprise, which selects the victor/victord-ee image, and license.existingSecret. For the signed FIPS image, also set fips: true.
  • Air-gapped sites load the Enterprise bundle (victor-enterprise-<v>.tar) instead of the Community one.
  • Install the license file. Enterprise sections then appear in the UI, because the UI shows what About reports.
# my-values.yaml
edition: enterprise
license:
  existingSecret: victor-license
  key: license.json

The Enterprise server builds on the Community server and uses the same database schema. There is no documented Community-to-Enterprise upgrade procedure yet, so rehearse the switch on a non-production site and read the release notes for your version first.

Victor Cloud is a separate product#

Victor itself has no end-user portal. Victor Cloud is an optional, self-service product built on top of Victor, for end users rather than administrators. It is in development, with a one-site Community edition first; a Victor Cloud Enterprise edition is planned. It is not included in Victor Enterprise. Decide separately whether you need an infrastructure control plane, an end-user portal, or both.

Decision table#

If you need Edition Feature
KVM and KubeVirt VMs in one inventory, one site, any number of hosts Community core
HA with fencing, full VM backup and restore Community core
API, victorctl, Terraform provider, MCP Community core
VMware assessment and single-VM cold migration of Linux guests Community core
vSphere bridge reads and power operations Community core
Security & Compliance Center, signed evidence, audit chain Community core
Many sites in one view Enterprise federation
Migration waves, virt-v2v, test boot, cutover, rollback Enterprise migration-advanced
Terraform vsphere, PowerCLI writes, Packer through the bridge Enterprise vmware-bridge-write
Incremental, encrypted, immutable, verified backup Enterprise vm-backup-advanced
CAC/PIV sign-in Enterprise cac
Fail-closed audit and audit alarms Enterprise audit-policy
DoD account-policy preset Enterprise dod-preset
OSCAL and STIG checklist export Enterprise compliance-export
Splunk HEC Enterprise splunk-hec
Signed FIPS-mode builds Enterprise release
End-user self-service portal Victor Cloud separate product

Where Victor fits#

Start with Community. If you hit one of the needs above, switching to Enterprise means installing a different server binary and a license file, not migrating to a new platform.

Compare editions