Changelog
Project-level changes across all XCP-hl repositories, with the issues they resolve. Per-release component versions live in the Release Matrix.
Generated release notes
v8.3-ce50 · 2026-10-27
Stable · Components:xcp-ng-ce-iso v8.3-ce50, xolite-ce v0.21.0-ce35, xoa-proxy v0.1.2.7
- Stamp image with build date, commit and tag (xcp-hl#186) (build-xoa-hl)
- xoa-first-boot: apply custom NTP servers from Deploy XOA (xcp-hl#156) (build-xoa-hl)
- xoa-first-boot: order before chronyd so the custom NTP servers apply (xcp-hl#156) (build-xoa-hl)
- security: burn and lock root password, disable root SSH in XOA VM build (build-xoa-hl)
- Claude/optimistic keller acr41h (build-xoa-hl)
- Add generated AKB agent guidance (build-xoa-hl)
- Refresh AKB guidance: source-cited evidence and corrected wording (build-xoa-hl)
- ci/check.sh: Jenkins Dev PR checks (xcp-hl#148) (build-xoa-hl)
- xoa-credentials: set admin password over JSON-RPC, not xo-cli (xcp-hl#12) (build-xoa-hl)
- Add gitleaks secret scan on every push and pull request (xcp-hl)
- docs: make the Features page's version live, not hardcoded (xcp-hl)
- Add AGENTS.md generated by xcp-hl-akb (refs #88, #89, #90) (xcp-hl)
- AGENTS.md: sync snapshot id with xcp-hl-akb regeneration (xcp-hl)
- AGENTS.md: sync corrected citations from xcp-hl-akb (xcp-hl)
- Refresh generated AKB agent guidance (xcp-hl)
- docs: appliance update modes and update-page reconnection (xcp-hl)
- Refresh AKB guidance: source-cited evidence and corrected wording (xcp-hl)
- Refresh AKB guidance: cite the updater arbiter from source (xcp-hl)
- docs: record release v8.3-ce41 in matrix (xcp-hl)
- docs: record release v8.3-ce42 in matrix (xcp-hl)
- ci: ci/check.sh for the Jenkins dev check (#148) (xcp-hl)
- docs: record release v8.3-ce43 in matrix (xcp-hl)
- qa: signed yum repository validation plan and fixtures (#144) (xcp-hl)
- docs: record release v8.3-ce44 in matrix (xcp-hl)
- docs: record release v8.3-ce45 in matrix (xcp-hl)
- Point xcp-hl.repo at rpm.xcp-hl.org (xcp-hl)
- docs: record release v8.3-ce46 in matrix (xcp-hl)
- docs: add multilingual XOA-HL manual foundation (xcp-hl)
- docs: add XOA-HL beginner tutorials and Jenkins screenshot pilot (xcp-hl)
- Revert PR #204; move screenshot pipeline design to jenkins-infra (xcp-hl)
- docs: add EN/FR/JA beginner backup and isolated restore journey (xcp-hl)
- docs: add XOA-HL maintenance and troubleshooting manual (xcp-hl)
- docs: add XOA-HL daily administration guides in EN/FR/JA (xcp-hl)
- docs: add XOA-HL concepts, configuration and automation reference (xcp-hl)
- fix(docs): improve keyboard and enlarged-text navigation (xcp-hl)
- Add screenshot request data for the dedicated Jenkins documentation pipeline (xcp-hl)
- docs: record translation reviews and gate reviewed publication (xcp-hl)
- docs: map released-source features and chapter acceptance gaps (xcp-hl)
- docs: explain VM resizing and destructive removal in EN/FR/JA (xcp-hl)
- docs: explain VM migration, XVA export and isolated import in EN/FR/JA (xcp-hl)
- docs: complete OTP sign-in guidance in EN/FR/JA (xcp-hl)
- docs: connect NFS ISO libraries safely in EN/FR/JA (xcp-hl)
- docs: explain local groups and additive permissions in EN/FR/JA (xcp-hl)
- docs: explain same-pool full VM copies in EN/FR/JA (xcp-hl)
- docs: explain read-only host statistics in EN/FR/JA (xcp-hl)
- docs: explain scheduled full-NFS backups and retention in EN/FR/JA (xcp-hl)
- docs: diagnose full-NFS backup failures in EN/FR/JA (xcp-hl)
- docs: expand stopped snapshot and revert guides in EN/FR/JA (xcp-hl)
- docs: explain VM console use and diagnosis in EN/FR/JA (xcp-hl)
- docs: create and reuse stopped VM templates in EN/FR/JA (xcp-hl)
- docs: install and check Linux guest tools in EN/FR/JA (xcp-hl)
- docs: create and verify NFS VM-disk storage in EN/FR/JA (xcp-hl)
- docs: create and verify a lab VLAN network in EN/FR/JA (xcp-hl)
- docs: diagnose network connectivity in EN/FR/JA (xcp-hl)
- docs: add offline XOA and XO Lite screenshot requests (xcp-hl)
- docs: rehearse incremental NFS backups and chain restore (xcp-hl)
- docs(xoa): preview file recovery from retained delta backup (xcp-hl)
- docs(xoa): preview full DR replica recovery on a second pool (xcp-hl)
- docs(xoa): preview pool metadata backup and retention (xcp-hl)
- docs(xoa): preview Windows Server SMB backup recovery (xcp-hl)
- docs(xoa): preview delegated resource set quotas (xcp-hl)
- docs: rehearse bounded two-host pool join (HP03) (xcp-hl)
- docs: rehearse disposable host maintenance and evacuation (HP05) (xcp-hl)
- docs: bound host patch and reboot lab pilot (HP05) (xcp-hl)
- docs: scope HA readiness pilot for disposable XOA-HL pool (xcp-hl)
- docs: map XOA-HL management network before isolation (xcp-hl)
- docs(xoa): pilot isolated LDAP sign-in for SE03 (xcp-hl)
- docs(xoa): pilot isolated SAML sign-in for SE03 (xcp-hl)
- docs(xoa): add SE06 HTTPS certificate preflight (xcp-hl)
- docs: map screenshot requests to Hugo guide steps (xcp-hl)
- docs: short menu labels, no em dashes and a task-based manual landing (xcp-hl)
- docs: plain-language rewrite of VM, backup, transfer and storage pages (xcp-hl)
- docs: plain-language rewrite of the remaining manual pages (xcp-hl)
- docs: record release v8.3-ce47 in matrix (xcp-hl)
- docs: move XOA-HL manual scope to ce40 (xcp-hl)
- docs: make guest tools heading Linux-generic (xcp-hl)
- docs: stage release data from main, show latest stable ISO (xcp-hl)
- docs: add administrator access recovery to troubleshooting (xcp-hl)
- docs: add local storage on a spare host disk (xcp-hl)
- docs: record maintainer review of all FR/JA manual pages (xcp-hl)
- Add generated changelog data contract and multilingual renderer (xcp-hl)
- Backfill verified XOA image release matrix rows (xcp-hl)
- Expose ISO build number and XVA asset in release matrix (xcp-hl)
- Render exact XOA RPM identity where release rows have it (xcp-hl)
- Display xcp-hl-release RPM provenance in ISO matrix (xcp-hl)
- screenshots: open new-VM with XO's default-template id (xcp-hl)
- Verify xcp-hl-release RPM signature before release (xcp-hl)
- feat: expose host component versions through a read-only plugin (xcp-hl)
- fix: align RPM license metadata with packaged AGPL text (xcp-hl)
- docs: reconcile #189 completion and inventory current screenshot steps (xcp-hl)
- Complete release inventory and recover ISO RPM identities (xcp-hl)
- Show historical release gaps and early ISO archive in Hugo (xcp-hl)
- docs: record release v8.3-ce50 in matrix (xcp-hl)
- Record the 2026-10-27 ce47 lab run for D2, D4 and D5 (#189) (xcp-hl)
- docs: seed the changelog data file on main (xcp-hl)
- docs: update xolite-ce description in developers and features pages (xcp-hl)
- [Feat] Container support documentation (xcp-hl)
- docs: correct .repo config handling and document XOA-HL self-update (xcp-hl)
- docs: add French and Japanese translations of the site (xcp-hl)
- docs: language selector in top header, sidebar split by language (xcp-hl)
- docs: land French/Japanese translations + language selector fix (xcp-hl)
- docs: fix remaining "XCP-ng HL" naming to "XCP-hl" (fixes #78) (xcp-hl)
- docs: fix remaining "XCP-ng HL" naming to "XCP-hl" (fixes #78) (xcp-hl)
- Rename deployed XOA VM to XOA-hl, fixes #97 (xcp-hl)
- Use createrepo_c --general-compress-type (xcp-ng-ce-iso)
- ci: publish the community GPG public key with the ISO (xcp-ng-ce-iso)
- Add gitleaks secret scan on every push and pull request (xcp-ng-ce-iso)
- Add generated AKB agent guidance (xcp-ng-ce-iso)
- patches: import xcp-hl repo keys at install time (xcp-ng-ce-iso)
- Refresh AKB guidance: source-cited evidence and corrected wording (xcp-ng-ce-iso)
- ci/check.sh: Jenkins Dev PR checks (xcp-hl#148) (xcp-ng-ce-iso)
- Record exact xcp-hl-release RPM in ISO notes (xcp-ng-ce-iso)
- Compress community repo metadata with gzip (xcp-ng-ce-iso)
- feat: add automatic update settings API and UI (xoa-hl)
- test: cover automatic update acceptance criteria (xoa-hl)
- test: add appliance automatic-update smoke test (xoa-hl)
- Require nodejs with NodeSource's epoch so the RPM installs (xoa-hl)
- Refresh AKB guidance: source-cited evidence and corrected wording (xoa-hl)
- Refresh AKB guidance: cite the updater arbiter from source (xoa-hl)
- Fix XOA-HL documentation banner links (xoa-hl)
- Translate XOA-HL update settings in all shipped locales (xoa-hl)
- Translate inherited core XO UI labels (xoa-hl)
- Translate more inherited XO UI labels (xoa-hl)
- Translate inherited XO UI and correct XOA-HL documentation links (xoa-hl)
- ci/check.sh: Jenkins Dev PR checks (xcp-hl#148) (xoa-hl)
- Restore and localize the XOA-HL source banner (xoa-hl)
- Promotion gate: builds are candidates, stable from stable.json, testing channel (xcp-hl#179) (xoa-hl)
- fix: show update log above automatic updates (xoa-hl)
- perf: reduce cold-login locale bundle overhead (xoa-hl)
- Use local time in xoa-hl update log stamps (xoa-hl)
- Remove source welcome modal at login (xoa-hl)
- Add testing channel option to the update page (xoa-hl)
- Hide From VMware menu and the support alert (xoa-hl)
- Fix shell script syntax validation and grep error handling (xoa-hl)
- Keep TLS cert across updates and auto reload the updates page (xoa-hl)
- Rework the About page (xcp-hl#186) (xoa-hl)
- Reorganize the XOA-HL update page (xcp-hl#187) (xoa-hl)
- Point xoa-hl repo files at rpm.xcp-hl.org (xoa-hl)
- docs: consume shared glossary in UI translation review (xoa-hl)
- Show stored update check result on page load (xcp-hl#216) (xoa-hl)
- Fix automatic update false failure, drop random delay, flag failed runs (xcp-hl#217) (xoa-hl)
- Generate notes for XOA-HL RPM releases (xoa-hl)
- Enhance XOA-HL update API with live log streaming and improved UX (xoa-hl)
- Add release-specific RPM metadata before generated changes (xoa-hl)
- Sign and verify XOA-HL RPM before publishing (xoa-hl)
- Show automatic update finish time in local browser time (#229) (xoa-hl)
- Use XOA-HL title in About page header (#192) (xoa-hl)
- Hide VMware tab on XOA-HL import page (#228) (xoa-hl)
- fix: keep ACLs for missing objects visible and removable (xoa-hl)
- fix: show explicit reboot status beside host patch status (xoa-hl)
- fix: refresh the stored package verdict after appliance updates (xoa-hl)
- feat: retain five automatic update runs with package details (xoa-hl)
- Add gitleaks secret scan on every push and pull request (xoa-hl)
- feat: display managed host component versions on About (xoa-hl)
- fix: align RPM license metadata with packaged AGPL text (xoa-hl)
- fix: build the XO 6 preview served by the Try XO 6 link (xoa-hl)
- Translate the documented beginner pages in French and Japanese (xcp-hl#285) (xoa-hl)
- test: establish MCP compatibility checks for natural-language VM creation (xoa-hl)
- build: prepare an optional disabled goose runtime RPM (xoa-hl)
- feat: prepare a disabled local read-only assistant entry point (xoa-hl)
- feat: add immutable propose-only approval state and audit (xoa-hl)
- feat: prepare a localized propose-only assistant panel (xoa-hl)
- Fix RPM signing on the rpm 6 runner (ce41 build failure) (xoa-hl)
- Verify the RPM signature against a private rpmdb (ce42 build failure) (xoa-hl)
- fix: restore check.sh exec bit and tolerate corrupt update history (xoa-hl)
- fix(ui): add Profile label to sidebar user settings (xoa-hl)
- Add Arctic, Graphite, Alpine and Horizon themes with system appearance (xoa-hl)
- Fix appliance theme layouts, charts, controls and About information (xoa-hl)
- Add generated AKB agent guidance (xoa-hl)
- feat: add safe automatic update backend (xoa-hl)
- Keep the XOA-HL update page connected across a long xo-server restart (xoa-hl)
- Stable and testing yum channels; builds publish as candidates (promotion pilot step 2) (xoa-proxy)
- Pages: superseded builds kept unlisted, updateinfo advisories (xcp-hl#154 fix-forward) (xoa-proxy)
- Point bootstrap files and docs at rpm.xcp-hl.org (xoa-proxy)
- Trim Tokio features and test proxy changes on PRs (xoa-proxy)
- Trim Axum and futures features with musl size comparison (xoa-proxy)
- Verify xoa-proxy RPM signature before release (xoa-proxy)
- chore: replace the futures umbrella with stream utilities (xoa-proxy)
- fix: align RPM license metadata with packaged AGPL text (xoa-proxy)
- Add gitleaks secret scan on every push and pull request (xoa-proxy)
- Add generated AKB agent guidance (xoa-proxy)
- Refresh AKB guidance: source-cited evidence and corrected wording (xoa-proxy)
- ci/check.sh: Jenkins Dev PR checks (xcp-hl#147) (xoa-proxy)
- ci/check.sh: Jenkins Dev PR checks (xcp-hl#148) (xolite-ce)
- Add image source descriptions and rebuilt patcher (xolite-ce)
- Add image source descriptions and fix wording (xcp-hl#191) (xolite-ce)
- Point bootstrap files and docs at rpm.xcp-hl.org (xolite-ce)
- Check XO Lite RPM scriptlets for unresolved macros (xolite-ce)
- Alert when the XO Lite pin falls behind XCP-ng updates (xolite-ce)
- fix: handle pools without XOA clients in the header button (xolite-ce)
- fix: align RPM license metadata with packaged AGPL text (xolite-ce)
- fix: correct login username labels and complete login-page translations (xolite-ce)
- Fix RPM signing on the rpm 6 runner (ce31 build failure) (xolite-ce)
- Verify RPM signature against a private rpmdb (xolite-ce)
- chore: update README.md description for xo-lite-ce (xolite-ce)
- ci: fix the RPM verification instructions in release notes (xolite-ce)
- Add gitleaks secret scan on every push and pull request (xolite-ce)
- Add generated AKB agent guidance (xolite-ce)
- Refresh AKB guidance: source-cited evidence and corrected wording (xolite-ce)
Pull request titles are shown in English.
Earlier project changes
September 2026
The deployed XOA VM is named XOA-hl, fixes #97
Deploying the XOA-hl appliance from XO Lite produced a VM called
xoa-almalinux, the internal Packer build name, not a product name. XO Lite
does not rename what it imports: VM.import keeps the name-label carried by
the XVA, which is exactly the builder’s vm_name. The build now sets
vm_name to XOA-hl, in both
build-xoa-hl’s
setup-xoa-builder.sh (manual builds) and the orchestrator’s xoa-vm-agent
(the daily pipeline that publishes the images).
Because Packer derives the XVA filename from vm_name, the release asset is
renamed with it, xoa-almalinux.xva becomes XOA-hl.xva. Nothing resolves
that asset by name: XO Lite’s deploy button and the agent’s release check both
pick the first .xva / .xva.gz asset on the newest xoa-image-* release, so
already-published images keep working and no ISO needs reissuing.
The name applies to images built after this change. Appliances already
deployed keep the old name and can be renamed in XO; orchestrator hosts with a
/etc/xcp-orchestrator/build.config from before this change keep their own
VM_NAME (deploy.sh never overwrites an existing config) and need that key
updated by hand.
Default ISO storage, closing #2 and #46
A fresh XCP-ng host has nowhere to put installer ISOs: no ISO SR exists and
creating one is a manual xe sr-create against a directory you have to make
yourself. XCP-hl now reserves a 20 GB partition at install time, formats it
ext4 as xcphl-iso, mounts it at /var/opt/xen/xcp-hl-iso, and registers it
on first boot as an ISO SR named XCP-HL ISO library, ready to upload to
from Xen Orchestra.
This sets XCP-hl’s minimum disk at 100 GB: ~41.5 GB of system partitions, 20 GB of ISO library, ~38.5 GB left for VM storage. Below that the reservation is skipped rather than squeezing VM storage to a few GB, and the disk is laid out exactly as stock XCP-ng would.
Issue #46 asked whether
XCP-ng’s upload endpoint could be given an ISO-specific route. It turned out
not to need one: PUT /import_raw_vdi is a generic raw-VDI import that XO 5
already drives through Import → Disk, and the only thing missing was an
ISO SR to import into. No new endpoint was added.
The partition is created by the installer, so it applies to fresh XCP-hl installs only. Hosts installed from stock XCP-ng that later add the XCP-hl repositories are never repartitioned, and upgrades keep the existing partition rather than recreating it.
Delivered by patching host-installer inside install.img at ISO build
time rather than shipping a forked host-installer RPM. See
xcp-ng-ce-iso.
August 2026
Release matrix states the exact package shipped, towards #15
The Release Matrix recorded only a release tag per
component. For xoa-proxy that was not enough to identify what a host is
running: the tag maps to a version, but the RPM release field carries the CI
run and source commit, and the two oldest rows carry a v-proxy-automated-*
build-run tag that states no version at all.
Each per-ISO row now shows the package as rpm -q prints it
(xoa-proxy-0.1.1.8-55.gc525575.static.x86_64) under a version that links to
its release page, for the ISO, xolite-ce and xoa-proxy alike. Existing
rows were backfilled from the published release assets, and the v8.3-ce3 /
v8.3-ce4 xo-lite upstream was corrected from 0.22.0 to 0.21.0 to match the
RPM those builds actually ship. The orchestrator records the new field on
every build (xcp-orchestrator shared/src/github.rs).
July 2026
XOA VM image releases moved to build-xoa-hl, fixes #22
The XOA-hl VM (xoa-image-<date>-<sha7>, asset xoa-almalinux.xva) was
published on xoa-hl, the repo that
builds the software, mixed in with its RPM releases. It is now published on
build-xoa-hl, the repo that
actually builds the image. The orchestrator’s xoa-vm-agent creates the release
there, and XO Lite’s deploy button resolves the newest image from that repo.
The mixing had a concrete cost: releases/latest on xoa-hl resolved to an
image release with no RPM asset, breaking the RPM lookup in
build-xoa-hl/scripts/setup-xoa-builder.sh, now fixed to scan for the newest
release that actually ships an RPM.
Image releases published before the move stay on xoa-hl so already-shipped
ISOs keep resolving them; the Release Matrix
links each entry to the repo that hosts it.
Release matrix records XOA versions, fixes #13
The Release Matrix now has a dedicated
XOA appliance releases table recording each published VM image
(xoa-image-* release on Vagrantin/xoa-hl), the xoa-hl software
version it contains, and the upstream Xen Orchestra version it was forked
from. The per-ISO table also dropped a never-populated xoa-hl column,
the appliance is resolved at deploy time and versions independently of the
ISO.
XOA-hl edition complete, fixes #1, #6
Xen Orchestra HomeLab Edition is now built from source, packaged, and deployable end to end:
xoa-hlbuilds XO 5.113.2 (the last XO 5.x release) from a pinned upstream commit and patches the UI: the license-gated menu entries (Hub, XOA, Proxies, XOSTOR) and the no-support banner are hidden (patches/menu-hide-items.patch).build-xoa-hlpackages it into a self-configuring XVA appliance via Packer on XCP-ng.- XO Lite’s deploy view now offers XOA HomeLab (latest build) as a
deploy image option, resolving the newest agent-built XVA from GitHub
releases at deploy time (
xolite-cecommit6abd43f, 2026-07-14).
Release publication automated, fixes #4
Versioning and release notes are now derived automatically in every pipeline:
xolite-ceandxoa-proxyderive the release tag and RPM version in CI (xolite-ce7b2e4d4,xoa-proxy9582718);xoa-proxyreleases use GitHub’s generated release notes,xolite-ceand the ISO ship structured release bodies with source versions and verification steps.- The ISO build is dispatched by the orchestrator with exact component
release tags pinned as workflow inputs, eliminating stale-RPM races
(
xcp-ng-ce-iso68f211d). - Every ISO release is recorded in the Release Matrix.
June 2026
Documentation website CI/CD, fixes #5
The project website (this site) is built with Jekyll and deployed to
GitHub Pages automatically on every push to main of
xcp-hl
(.github/workflows/pages.yml), making it the single source of truth for
project status, including the data-driven release matrix.
v8.3-ce9 released
- xolite-ce
v0.21.0-ce6: upstream xo-lite pinned to0.21.0, the last known-good release (0.22.0and0.23.0broke the build), through theUPSTREAM_TAGfile. - xoa-proxy
v0.1.1.x: simpler RPM versioning (.staticrelease suffix) and automated, categorized GitHub release notes. - Consistent artifact naming:
xcp-ng-8.3-ceN.iso+.iso.sha256+.iso.sha256.asc, published asxcp-ng-ce-isoGitHub Releases.
May 2026
GPG key model implemented, fixes #3
GPG signing is harmonized across all build pipelines using an offline
master key + two signing subkeys model: one subkey signs the RPMs
(xo-lite-ce, xoa-proxy), the other signs the ISO checksum file. The
public key is published on
keys.openpgp.org
and verification steps ship in every release body. See
GPG signing for details. A follow-up refinement
(one key per module) stays on the roadmap.
First public release, v8.3-ce alpha2
- First usable release.
- Deploys XOA from the Vates image, Ronivay’s image, or a custom URL.
- GPG: offline master key + dedicated RPM and ISO signing subkeys. Public key published to keys.openpgp.org.
April 2026
First build, v8.3-ce
- XO Lite patched: community deploy endpoint, read-only credential fields.
xoa-proxyRust server bundled: HTTP/HTTPS, gzip streaming.- ISO assembled from upstream XCP-ng 8.3 with a community RPM repository layered on top.
- GPG key infrastructure (4096-bit RSA, single key
RPM-GPG-KEY-xcp-ng-ce). - GitHub Actions CI/CD pipeline: RPM build → ISO build → GitHub Releases.