Skip to content

Instantly share code, notes, and snippets.

@hoerup
Created March 29, 2016 07:09
Show Gist options
  • Star 8 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save hoerup/73d02600cafee855eeb5 to your computer and use it in GitHub Desktop.
Save hoerup/73d02600cafee855eeb5 to your computer and use it in GitHub Desktop.
Install Script for Xen Orchestra
#!/bin/bash
# Note: this script works on debian 7/wheezy and debian 8/jessie
#
# If running on a raspberry 1(A/B) raspian/wheezy - downgrade node.js to 5.4.0
# Please note that raspian/wheezy for arm defaults to gcc 4.6
# gcc 4.7 is needed for compiling node-js modules
BRANCH=master
function restartxo {
killall -9 node
rm -f /root/forever.log
forever start -l /root/forever.log /root/xo-server/bin/xo-server
}
if [ "$1" == "restart" ] ; then
restartxo
exit
fi
if [ "$1" == "clean" ] ; then
echo cleaning xo-web
rm -rf xo-web
echo cleaning xo-server
rm -rf xo-server
echo cleaning .npm
rm -rf .npm
echo cleaning .node-gyp
rm -rf .node-gyp
echo cleaning .cache
rm -rf .cache
echo cleaning .forever
rm -rf .forever
rm -rf forever.log
echo done
exit
fi
if [ ! -x "/usr/bin/curl" ] ; then
echo "installing curl"
apt-get install curl || exit
fi
if [ ! -x "/usr/bin/gcc" ] ; then
echo "installing build-essential"
apt-get install build-essential || exit
fi
if [ ! -f "/usr/include/libpng12/png.h" ] ; then
echo "installing libpng"
apt-get install libpng12-dev || exit
fi
if [ ! -x "/usr/bin/redis-server" ] ; then
echo "installing redis-server"
apt-get install redis-server || exit
fi
if [ ! -x "/usr/bin/git" ] ; then
echo "installing git"
apt-get install git || exit
fi
if [ ! -x "/usr/local/bin/n" ] ; then
echo "installing node.js bootstrap"
curl -o /usr/local/bin/n https://raw.githubusercontent.com/visionmedia/n/master/bin/n || exit
chmod +x /usr/local/bin/n
fi
if [ ! -x "/usr/local/bin/node" ] ; then
echo "installing node.js"
n stable || exit
fi
if [ ! -x "/usr/local/bin/gulp" ] ; then
echo "installing gulp"
npm install -g gulp || exit
fi
if [ ! -x "/usr/local/bin/forever" ] ; then
echo "installing forever"
npm install -g forever || exit
fi
if [ ! -x "/usr/local/bin/node-gyp" ] ; then
echo "installing node-gyp"
npm install -g node-gyp || exit
fi
if [ ! -d "/usr/local/lib/node_modules/bcrypt" ] ; then
echo "installing bcrypt"
npm install -g bcrypt || exit
fi
if [ ! -d "xo-web" ] ; then
git clone -b $BRANCH https://github.com/vatesfr/xo-web.git
else
cd xo-web
git pull
cd ..
fi
if [ ! -d "xo-server" ] ; then
git clone -b $BRANCH https://github.com/vatesfr/xo-server.git
else
cd xo-server
git pull
cd ..
fi
# xo-server
echo "building xo-server"
cd xo-server
npm install || exit
npm run build || exit
#for some reasone leveldown fails occasionally on arm/raspberry pi
if [ ! -d "/root/xo-server/node_modules/leveldown/build" ] ; then
pushd node_modules/leveldown
node-gyp configure || exit
node-gyp build || exit
popd
fi
cd ..
#xo-web
echo "building xo-web"
cd xo-web
npm install --unsafe-perm || exit
npm run build || exit
cd ..
if [ ! -f "/etc/xo-server/config.yaml" ] ; then
if [ ! -d "/etc/xo-server" ] ; then
mkdir /etc/xo-server
fi
echo "please setup /etc/xo-server/config.yaml"
exit
fi
restartxo
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment