Finally just finished our migration from VMware to XCP-NG.
VMs - 34 mix windows server and ubuntu linux.
Pools - 3
Host - 6
Dell R660 - 2
Dell R640 - 4

Finally just finished our migration from VMware to XCP-NG.
VMs - 34 mix windows server and ubuntu linux.
Pools - 3
Host - 6
Dell R660 - 2
Dell R640 - 4

@rzr Installed latest update and no issues to report. I dont hvae any 2tb+ drives in my vms. converting from vhd to qcow2 and backups all working.
installed updates will report back.
Update - I had migrated vms back over to vhd prior to update release. I have migrated 2 vms back over to qcow2 and the initial backup ran successfull. Ran a second delta backup and that as well was successful with out issues. Backups happen very quickly now. But it appears the % and progress bar are working.
When CBT is enabled on the vm vdi. They show up as needing to be coalesced. VMs without CBT enabled the vdis are coalesced.

Will continue to monitor.
Once the coalesence hits 2 for the vm. The vm is skipped form future backups until cleared. (shutting down the vm will allow the coalescence to happen.
2026-04-23T19_52_34.694Z - backup NG.txt


@olivierlambert Created new topic.
Updated my to AMD Ryzen host in my home lab. No issues with update will monitor and report back any issues.
Ok that was in xo from sources and yes issue is fixed...
Confirmed is working in XOA in 6.4.1

While this project is more for myself it is open to others to use. Please use at your own risk. As always review the script before using in a production environment. Please leave any feedback or suggestions. https://github.com/acebmxer/install_xen_orchestra/
https://forums.pozzatech.com - You can read more about this project and other things over in my personal forums.
Automated installation and management of Xen Orchestra from source.
| Function | CLI Flag | Description |
|---|---|---|
| Install | --install |
Fresh install of Xen Orchestra |
| Update | --update |
Update existing installation (with backup) |
| Restore | --restore |
Restore from a previous backup |
| Rebuild | --rebuild |
Fresh clone + clean build, preserves settings |
| Reconfigure | --reconfigure |
Apply config changes without rebuilding |
| XO Proxy | --proxy |
Deploy XO Proxy to a Xen pool master |
| Edit Config | (menu only) | Open xo-config.cfg in your preferred editor |
| Rename Config | (menu only) | Rename sample-xo-config.cfg to xo-config.cfg |
Running without flags launches an interactive menu. All flags also work directly:
./install-xen-orchestra.sh # interactive menu
./install-xen-orchestra.sh --update # run update directly
./install-xen-orchestra.sh --help # show all options
Running the script with no arguments opens a two-column menu with keyboard navigation:
╔══════════════════════════════════════════════════════════════════════════════════╗
║ Install Xen Orchestra from Sources Setup and Update ║
╚══════════════════════════════════════════════════════════════════════════════════╝
Current Script Commit : 693f4 (Branch: main)
Master Script Commit : 693f4 (Branch: main)
Current XO Commit : a1b2c (Branch: master)
Master XO Commit : d4e5f (Branch: master)
Current Node : v24.15.0
──────────────────────────────────────────────────────────────────────────────────
▸ [✓] Install Xen Orchestra [ ] Reconfigure Xen Orchestra
[ ] Update Xen Orchestra [ ] Rebuild Xen Orchestra
[ ] Rename Sample-xo-config.cfg [ ] Edit xo-config.cfg
[ ] Install XO Proxy
──────────────────────────────────────────────────────────────────────────────────
Selected: 1
↑↓←→ Navigate SPACE Select/Deselect ENTER Confirm Q Quit
Select one or more items with SPACE, then press ENTER to run them.
git clone https://github.com/acebmxer/install_xen_orchestra.git
cd install_xen_orchestra
cp sample-xo-config.cfg xo-config.cfg
nano xo-config.cfg # edit to your liking
./install-xen-orchestra.sh
Do NOT run with
sudo. Run as a normal user with sudo privileges — the script handlessudointernally.
If xo-config.cfg doesn't exist, it will be created automatically from the sample.
All settings live in xo-config.cfg. See sample-xo-config.cfg for full documentation of every option.
Key settings:
| Option | Default | Description |
|---|---|---|
HTTP_PORT |
80 | HTTP port |
HTTPS_PORT |
443 | HTTPS port |
INSTALL_DIR |
/opt/xen-orchestra | Installation directory |
GIT_BRANCH |
master | Git branch or tag |
NODE_VERSION |
24.15.0 | Node.js version |
SERVICE_USER |
xo-service | Service user (set to root for VMware V2V import) |
BACKUP_KEEP |
5 | Number of backups to retain |
BIND_ADDRESS |
0.0.0.0 | Bind address |
REVERSE_PROXY_TRUST |
false | Trust X-Forwarded headers from proxy IP |
Note on
BACKUP_KEEProtation: The retention policy only applies to backups created by the current version of the script. Backups made by older script versions may use a different naming convention and will not be counted or pruned by the rotation logic. If you are upgrading from an older version, manually review your backup directory (BACKUP_DIRin config, default/var/lib/xo-backups) and remove any legacy-named archives you no longer need.
After installation, access the web interface at https://your-server-ip.
admin@admin.netadminChange the default password immediately after first login.
Before applying an update, the script queries the Xen Orchestra REST API for active tasks (e.g. running backups, VM exports). If any are found, the update is aborted to prevent data loss or corruption.
Only admin-level XO accounts can access the REST API. Authentication is resolved in priority order:
| Priority | Method | Source |
|---|---|---|
| 1 | Auth token | XO_TASK_CHECK_TOKEN in xo-config.cfg |
| 2 | Credentials | XO_TASK_CHECK_USER / XO_TASK_CHECK_PASS in xo-config.cfg |
| 3 | Interactive | Prompted at runtime (press Enter to skip) |
It is recommended to create a dedicated XO web UI account solely for the task check (e.g. task-checker@local.net). This account:
You are free to use any admin account you choose, but a dedicated account is the safest approach.
Tokens are more secure than storing a password — they can be revoked independently and expire after 30 days by default.
curl -X POST -u 'task-checker@local.net:yourpassword' \
https://localhost/rest/v0/users/me/authentication_tokens -k
id field from the responsexo-config.cfg:XO_TASK_CHECK_TOKEN=UlTBEnFeL12XocK-7Qx-DKvOYbPn0eG7Z2oMvOniNjg
Alternatively, store the account credentials directly:
XO_TASK_CHECK_USER=task-checker@local.net
XO_TASK_CHECK_PASS=changeme
If neither token nor credentials are configured, the script will prompt interactively during each update.
| Variable | Description |
|---|---|
XO_DEBUG=1 |
Enable debug mode (set -x) |
XO_NO_SELF_UPDATE=1 |
Skip automatic script self-update |
Check service logs:
sudo journalctl -u xo-server -n 50
If the build is broken, rebuild (takes a backup first):
./install-xen-orchestra.sh --rebuild
The Yarn build is memory-intensive. On hosts with less than 2 GB RAM the Node.js process can be killed by the kernel OOM killer mid-build, leaving an incomplete install.
Add or increase swap to give the build room:
sudo fallocate -l 2G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
Re-run the install or --rebuild after the swap is active. To make it permanent across reboots, add /swapfile none swap sw 0 0 to /etc/fstab.
On hosts without internet access (or with strict egress firewall rules) the NodeSource repository setup script fails because it cannot reach keyserver.ubuntu.com or deb.nodesource.com.
Option A — pre-download and import the key manually, then copy the .deb/.rpm packages to the host.
Option B — set NODE_VERSION to a specific patch version (e.g. 24.15.0) in xo-config.cfg. The script will then download a pre-built binary directly from nodejs.org instead of using the NodeSource package repository.
git reports "dubious ownership" and exitsRecent versions of Git refuse to operate on a repository owned by a different user than the one running the command. This can happen when sudo is used inconsistently or when the install directory was created by root but the script is run as a normal user.
Fix it by resetting ownership to match your SERVICE_USER:
sudo chown -R xo-service:xo-service /opt/xen-orchestra
Replace xo-service with the value of SERVICE_USER in xo-config.cfg. Re-running the script afterwards will resolve the rest.
On SELinux-enforcing systems the xo-server service may fail to bind ports or access network resources. Check for AVC denials:
sudo ausearch -m avc -ts recent | grep xo-server
If denials are present, generate and apply a local policy module:
sudo ausearch -m avc -ts recent | audit2allow -M xo-server-local
sudo semodule -i xo-server-local.pp
Alternatively, set the service to permissive mode while investigating:
sudo semanage permissive -a xo_server_t
audit2allow and semanage are provided by the policycoreutils-python-utils package on RHEL/Rocky/Alma.
This project is licensed under the MIT License. Xen Orchestra itself is licensed under AGPL-3.0.
[info] Updating Xen Orchestra from 'cb85e44ae' to 'eed3d72f7'
First log is from automatic schedule before latest update.
2026-02-17T18_00_00.012Z - backup NG.txt
latest log after update. Backup completed successfully.
2026-02-17T18_22_52.199Z - backup NG.txt
Updated AMD Ryzen pool at home and update two Intel Dell r660 and r640 pools at work. No issues to report back.
See my answer toward Nested Virtualization - https://xcp-ng.org/forum/post/105019
Yes while this can be a scarry situation there have been multiple post about his. @pilow has been dealing with it the longs I believe.
Some have tried @pilow suggestion and have been good since. I would see if you can create test vm or copy one of the existing ones to try with braking a production vm.
Contact sales for assistance on pricing.
Another option (Unsupprted) you can deploy the proxyies via a script if using XO from sources. My script has this function. https://github.com/acebmxer/install_xen_orchestra there are other script out there also but same warning applies.
Just an fyi there is a cost and licensing behind proxy support.
I was able to import my xo-ce config into my xoa free in my home lab. The free version is not capable of backups, but it still imported the backup jobs and sequence and the restore points are there. If I try to create a new job it says i cant due to licensing which is expected.
If you still have your xo try to export a new config and try again.
ALso i took backup of my xoa priror to import so i can revert back. It say it imported the backup but backup jobs are still present.
So i would expect this to work in a paid version.
Ok that was in xo from sources and yes issue is fixed...
Confirmed is working in XOA in 6.4.1

@acebmxer this should be fixed in the latest 6.4 release. Can you please confirm ?
Could you provide more context? Which problem are you referring to?
Edit - Just updated home lab XOA to 6.4.1 no issues with v6 dashboard loading.
I didnt setup ssh on work XOA i just set the password but need to reboot it for it to work. The tunnel is still open if you dont mind doing it otherwise I will need to reboot xoa to get in myself.
Confirmed Dashboard now loads correctly.