2016-01-13 19:23:15 +00:00
#!/bin/bash
2017-08-03 00:03:53 +00:00
2018-02-01 15:41:39 +00:00
xo_branch = "master"
xo_server = "https://github.com/vatesfr/xen-orchestra"
2017-08-03 00:08:58 +00:00
n_repo = "https://raw.githubusercontent.com/visionmedia/n/master/bin/n"
yarn_repo = "deb https://dl.yarnpkg.com/debian/ stable main"
2018-04-25 17:59:46 +00:00
node_source = "https://deb.nodesource.com/setup_8.x"
2017-08-03 00:08:58 +00:00
yarn_gpg = "https://dl.yarnpkg.com/debian/pubkey.gpg"
2017-08-03 00:10:34 +00:00
n_location = "/usr/local/bin/n"
2018-02-01 15:41:39 +00:00
xo_server_dir = "/opt/xen-orchestra"
2017-08-03 01:37:23 +00:00
systemd_service_dir = "/lib/systemd/system"
xo_service = "xo-server.service"
2017-08-03 00:10:34 +00:00
2017-08-03 01:37:23 +00:00
#Install node and yarn
2016-01-13 19:23:15 +00:00
cd /opt
2017-08-04 13:44:09 +00:00
2017-08-03 01:37:23 +00:00
/usr/bin/curl -sL $node_source | sudo -E bash -
/usr/bin/curl -sS $yarn_gpg | sudo apt-key add -
2017-08-03 00:08:58 +00:00
echo " $yarn_repo " | sudo tee /etc/apt/sources.list.d/yarn.list
2017-08-03 01:37:23 +00:00
sudo /usr/bin/apt-get update
sudo /usr/bin/apt-get install --yes nodejs yarn
#Install n
/usr/bin/curl -o $n_location $n_repo
sudo /bin/chmod +x $n_location
2018-04-25 19:27:39 +00:00
sudo /usr/local/bin/n lts
2017-08-03 01:37:23 +00:00
#Install XO dependencies
sudo /usr/bin/apt-get install --yes build-essential redis-server libpng-dev git python-minimal libvhdi-utils nfs-common
2018-02-07 15:36:56 +00:00
/usr/bin/git clone -b $xo_branch $xo_server
2018-02-01 15:44:58 +00:00
# Patch to allow config restore
2018-02-07 19:41:05 +00:00
sed -i 's/< 5/> 0/g' /opt/xen-orchestra/packages/xo-web/src/xo-app/settings/config/index.js
2018-02-01 15:44:58 +00:00
2018-02-07 15:27:50 +00:00
cd $xo_server_dir
/usr/bin/yarn
/usr/bin/yarn build
cd packages/xo-server
2016-01-14 02:28:04 +00:00
sudo cp sample.config.yaml .xo-server.yaml
2018-02-07 14:46:18 +00:00
sudo sed -i "s|#'/': '/path/to/xo-web/dist/'|'/': '/opt/xen-orchestra/packages/xo-web/dist'|" .xo-server.yaml
2016-03-08 20:38:21 +00:00
2017-08-03 14:55:55 +00:00
if [ [ ! -e $systemd_service_dir /$xo_service ] ] ; then
2017-08-03 01:37:23 +00:00
2017-08-03 14:17:23 +00:00
/bin/cat << EOF >> $systemd_service_dir /$xo_service
2017-08-03 02:05:56 +00:00
# systemd service for XO-Server.
2017-08-03 01:37:23 +00:00
2017-08-03 02:05:56 +00:00
[ Unit]
Description = XO Server
After = network-online.target
2016-03-08 20:38:21 +00:00
2017-08-03 02:05:56 +00:00
[ Service]
2018-02-01 15:41:39 +00:00
WorkingDirectory = /opt/xen-orchestra/packages/xo-server/
2017-08-03 02:05:56 +00:00
ExecStart = /usr/local/bin/node ./bin/xo-server
Restart = always
SyslogIdentifier = xo-server
2016-03-08 20:38:21 +00:00
2017-08-03 02:05:56 +00:00
[ Install]
WantedBy = multi-user.target
2016-03-08 20:38:21 +00:00
EOF
2017-08-03 01:37:23 +00:00
fi
2016-03-08 20:38:21 +00:00
2017-08-03 01:37:23 +00:00
sudo /bin/chmod +x $systemd_service_dir /$xo_service
sudo /bin/systemctl enable $xo_service
sudo /bin/systemctl start $xo_service
2018-04-11 14:15:47 +00:00
2018-04-11 14:35:19 +00:00
echo ""
echo ""
2018-04-11 14:54:57 +00:00
echo "Installation complete, open a browser to:" && hostname -I && echo "" && echo "Default Login:" admin@admin.net" Password:" admin"" && echo "" && echo "Don't forget to change your password!"
2018-04-11 14:51:23 +00:00