How To Build XO From Sources on Debian 10 Using XenOrchestraInstallerUpdater

Load Debian 10 in a VM on XCP-NG (or where ever you prefer) and as of April 2020 it is recommended that the allocate at least 4GB of ram to that machine and as many CPU resources as you find reasonable. The source code compiling process speed will vary greatly based on what you have allocated. Next make sure git is installed using

apt install git

Then clone the latest installer from by running

git clone

If you plan on using a self signed certificate as shown in the video, then choose a location such as /etc/ssl/xo and create the keys using:

openssl req -newkey rsa:4096 \
            -x509 \
            -sha256 \
            -days 3650 \
            -nodes \
            -out xo.crt \
            -keyout xo.key

Then go back into the /root/XenOrchestraInstallerUpdater directory and copy the sample config over to xo-install.cfg:

cp sample.xo-install.cfg xo-install.cfg

Then edit the xo-install.cfg for the setting you want for your server, here are the setting used in the video:

# Port number where xen-orchestra service is bound
# X.509 certificate setup.

Then run the choose option 1 autoinstall and your wait for the system to finish. Once complete you will be able to log into the system using the following credentials

pass: admin


Do you have a guide for getting plug-ins installed on the “free” version of xcp-ng?

That is covered in the video.

1 Like

Thanks again for a really helpful guide/video.

Would you have any advice on where to read up on how to secure the connection so I can get a padlock in Chrome/browser. I appreciate this is linked to the certificates but not really sure where to start and whether this would need me to make changes to the hosts as well?

I use the Jarli Method – script was developed in conjuction with one of the xcp-ng members – really really easy:

Comes with all the plugins.

Happy to report that XO installs nicely on a Raspberry Pi 4 with 4GB RAM using Ubuntu Server 20.04 LTS. It’s not the fastest install but works nicely.
I have a couple of small servers that I don’t run all the time so having the managment on a low power Pi allows me run which ever server I want to with out needing to run two installs of XO.

New to Linux, so lost with problem on first step. When I type “sudo apt install git” or “sudo apt-get install git”, I receive “command not found”. When I type “man -k apt” I see both apt and apt-get as a command line interface. I’ve restarted Debian, with the same result. Maybe I’ll go back to Ubuntu, which I haven’t had such problems with.

Ignore last message. First install stalled. Second install had above problem. Third install didn’t have a problem with “apt”.

Hey all! Just in case only one else comes across the same issue I had;
Effectively the source code was not compiling after choose option 1 autoinstall.
The output looks somthing like this “ln: target ‘/opt/xo/xo-builds/xen-orchestra-202008081145/packages/xo-server/node_modules/’ is not a directory: No such file or directory”
Then it would continue the script, with it finally trying to open ports, then would fail.
My issue appears to be that my firewall (pfSense plus pfBlocker-NG) was DNS Blocking some of the urls to was trying to reach. After turning off pfBlocker, the installation was just as advertised the
Hopefully this will find its way a fellow noob!


Hi Lawrence, thanks for taking your time and doing these videos, I really appreciate it and learned a lot.

Any idea on how to resolve this; I’ve tried the Debian build twice and both times the same error? TY

[fail] Installation completed, but looks like there was a problem when starting xo-server/reading journalctl. Please see logs for more details

Did you follow the instructions from the error “Please see logs for more details”?

Bringing this back to the top, this method (ronivay) seems to work fine on Raspberry Pi 400 (4gb) running RaspberryPi OS and doesn’t seem to be very slow. It took about the same as other real hardware installs I’ve done on “low end” hardware. Probably about 20-30 minutes worth of waiting. Need to connect it to my lab network and make sure everything works.

Moving to Debian since CentOS is going the way of Open Solaris and I like having it on bare metal so I can burn the XCP-NG system down and start from scratch easily.