Main problem today when using XenServer [1] hypervisor was that it's XenCenter (GUI for managing XenServer) is windows native application. So if you wanted to go full Linux you have very little options.

The one I personally use and has a number of features that are not included in XenCenter (especially not in Standard version) is Xen Orchestra [2]. It's easy to install it as a simple VM so you can control your hosts/pools from VM that is running on same hosts. Nice :)

One thing that it's very important to mention is XCP-ng [3] project. Since XenServer 7.3 was released, people using the free version were little down because Citrix removed some interesting features (xen storage motion, dynamic memory control, basic GPU passthrough, pool size limited to 3 hosts max etc.) so same folks from Xen Orchestra or xoa, to keep thing short, started XCP-ng project. Basically it is a community based branch of open-source version of XenServer. Now it is on version 7.4.1 and you are free to test it...I personally still haven't so I'm currently stuck on XenServer 7.2 across all my pools.

Now I will show you how to make clean installation of Xen Orchestra on Debian 9.3 distro.

Installing dependencies

From debian package repository install:


sudo apt-get install build-essential redis-server libpng-dev git python-minimal nfs-common curl

nfs-common is needed for mounting NFS remote storages through xoa UI.

  • install nodejs

curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
sudo apt-get install -y nodejs

  • install yarn

curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
sudo apt-get update && sudo apt-get install yarn

Installing xoa

First download source code, I use /opt path:


cd /opt/
sudo git clone -b master http://github.com/vatesfr/xen-orchestra

Then use yarn to build xoa:


cd xen-orchestra/
sudo yarn
sudo yarn build

After all is finished copy sample config file into root path:


sudo cp /opt/xen-orchestra/packages/xo-server/sample.config.yaml /opt/xen-orchestra/node_modules/xo-server/.xo-server.yaml

Now edit config file and uncomment line:

mounts: '/': '../xo-web/dist/'

To run xoa you can use yarn start inside /opt/xen-orchestra/ but let's continue...

Installing extra modules

There are few modules that are absolutely must have especially for scheduled backups.

So go into node_modules directory and create symbolic links of module that were donwnloaded with source code:


sudo ln -s /opt/xen-orchestra/packages/xo-server-transport-email /opt/xen-orchestra/packages/xo-server/node_modules
sudo ln -s /opt/xen-orchestra/packages/xo-server-backup-reports /opt/xen-orchestra/packages/xo-server/node_modules
sudo ln -s /opt/xen-orchestra/packages/xo-server-auth-ldap /opt/xen-orchestra/packages/xo-server/node_modules

Autostart xoa service

To make systemd xoa service (autostart on boot, easy restart etc) create file in systemd path:


sudo vi /etc/systemd/system/xo-server.service

and copy into it:

# systemd service for XO-Server.

[Unit]
Description= XO Server
After=network-online.target

[Service]
WorkingDirectory=/opt/xen-orchestra/packages/xo-server/bin
ExecStart=/usr/bin/yarn start
Restart=always
SyslogIdentifier=xo-server

[Install]
WantedBy=multi-user.target

Nest reload daemon and enable service:


sudo systemctl daemon-reload 
sudo systemctl enable xo-server.service
sudo systemctl start xo-server.service

And thats it. I wont explain UI of xoa. You can look it online [4]. One of the great features is scheduled backups, choose NFS storage, VM's you need to backup, backup interval and you're good to go. There are also different types of backup but more one that use online docs.

Updating xoa

If you wanna update xoa you can just use git and then yarn to rebuild:


cd /opt/xen-orchestra/
sudo git pull --ff-only
sudo yarn
sudo yarn build


  1. https://www.citrix.com/products/xenserver/ ↩︎

  2. https://xen-orchestra.com/#!/xo-home ↩︎

  3. https://xcp-ng.org/ ↩︎

  4. https://xen-orchestra.com/docs/ ↩︎