Xen Orchestra from Sources

This section presumes that there is at least one XCP-ng host installed and available on the network, and is intended to be followed after the previous section on installing XCP-ng.

Xen Orchestra is an interface for managing XCP-ng hosts and pools, including many levels of configuration. Aside from a few key functions, this all can be managed from a host’s command line. Of course, the browser interface makes it all much, much simpler. In addition, Xen Orchestra is capable of managing different backup types and strategies for your virtual machines.

A quick note on the XO acronyms. Nothing official, but how I use them and how I have seen them used.

  • XO – When referring to Xen Orchestra in any form
  • XOA – Xen Orchestra Appliance, or the version of XO built by and deployed from Vates. Support packages can be purchased through Vates, and this is the option that I would highly recommend if deploying in production environment. Initial deployment and registration for an account comes with a free trial of all of the features, after which it falls back to the feature-limited version.
  • XO-CE (or XOCE) – Unofficially Xen Orchestra Community Edition, or Xen Orchestra from sources. This is the option I would recommend in a homelab environment. Deployment is not quite as elegant as XOA, but you are able to retain all features. There are several ways to deploy which I will describe here.
  • XO-Lite – Feature-limited version included with each install of XCP-ng, accessible by visiting the host’s IP in your browser, and intended for limited single-host management.

There are several different ways of getting XO up and running on your host(s) and/or pool(s). In the case of XOA, that is as simple as visiting this link in your browser on a PC that can reach the XCP-ng host. Just follow the steps and a few minutes later you will have a fresh XOA deployment. This tutorial focuses on XO-CE, but for more information on how to use XOA you can skip ahead.

Also worth noting, XCP-ng Center is an option if you are on Windows, and the project has a new maintainer and a new release as of August of 2025. XenAdminQt is another locally installed GUI that is currently in alpha. I have little to no experience with either of these, though.

https://github.com/ronivay/XenOrchestraInstallerUpdater

I am posting this prominently because, while the sources are available from the Vates repositories, this particular repository further simplifies XO-CE deployment by maintaining the following:

  • Script that can be used to install and update XO-CE within Linux. I would currently recommend a Debian 12 VM.
  • Docker image
  • VM image easily deployed from host CLI

You will probably want to bookmark it, give it a github star, etc.

The first two options require an existing Linux installation, preferably a Debian 12 VM. To simplifying things a bit, I am going to start with the VM image that can be deployed from the host CLI.

Note: This link is copied from that repository, but please verify that it is still correct before executing. Additionally, since this script is run as root, I would recommend browsing the content of the script to verify that it is doing only what you intend.

sudo bash -c "$(curl -s https://raw.githubusercontent.com/ronivay/XenOrchestraInstallerUpdater/master/xo-vm-import.sh)"

Open an SSH connection to the host (root@<host IP>), then paste and run that command.

It starts by asking for the VM SR where this VM’s disk will be stored. Either option /should/ work in my case here, but if you are unsure you can do CTRL+C to exit out and then do ‘xe sr-list’ to get a list of all known SRs and verify the UUID, then run the command again to restart.

In my case, I chose 4 as that is the same physical interface as the host, with the addition of the VLAN 100 tag.

After entering IP address configuration, the download/import begins and after a few minutes the VM will be started.

Browsing to the assigned IP address for the first time will likely present a similar screen warning about the self-signed certificate. It is safe to hit ‘Advanced’, then ‘Accept the Risk and Continue’.

At the login screen, enter ‘[email protected]’ for the username, and ‘admin’ for the password.

XO v6 was recently released, but is still in very active development. Despite being very pretty, many things are not yet implemented in v6 and simply link back to v5. For that reason, and because my experience is mainly with v5, the rest of this tutorial will focus there. I may come back with a follow-up on the current state of v6 soon. Click ‘XO-5’ to load v5 in a new browser tab.

Take a moment to read the note in the popup that displays on first load. Also note the banner at the very top that, while it can be made to disappear, cannot be entirely disabled (without modifying the source code).

Before I go any further in the browser interface, I open an ssh connection to XO with xo / xopass. The first login prompts to change password before disconnecting. After reconnecting, I verify that updates are functional.

cd /opt/XenOrchestraInstallerUpdater/ && sudo ./xo-install.sh

Enter 2 to Update, then hit enter.

As it suggests, this part does take a few minutes.

After a few minutes, you should be dropped back to the command prompt. XO should be accessible once again in the browser.