#!/bin/bash -e # # Auto install script for airtime on Ubuntu # # NGINX changes are contributed by Eugene MechanisM # Link to the post: # http://forum.sourcefabric.org/discussion/13563/first-step-to-run-airtime-via-nginx-based-on-airtime-2.0-beta-files exec > >(tee install_log.txt) exec 2>&1 if [ "$(id -u)" != "0" ]; then echo "Please run as root user." exit 1 fi #Current dir # Absolute path to this script, e.g. /home/user/bin/foo.sh SCRIPT=`readlink -f $0` # Absolute path this script is in, thus /home/user/bin SCRIPTPATH=`dirname $SCRIPT` #Prerequisite echo "----------------------------------------------------" echo " 1. Install Packages" echo "----------------------------------------------------" dist=`lsb_release -is` code=`lsb_release -cs` if [ "$dist" -eq "Debian" ]; then grep "deb http://www.deb-multimedia.org squeeze main non-free" /etc/apt/sources.list if [ "$?" -ne "0" ]; then echo "deb http://www.deb-multimedia.org squeeze main non-free" >> /etc/apt/sources.list fi fi apt-get update # Updated package list apt-get -y --force-yes install tar gzip curl nginx php5-pgsql php5-fpm \ php-pear php5-gd postgresql odbc-postgresql python libsoundtouch-ocaml \ libtaglib-ocaml libao-ocaml libmad-ocaml ecasound \ libesd0 libportaudio2 libsamplerate0 rabbitmq-server patch \ php5-curl mpg123 monit python-virtualenv multitail libcamomile-ocaml-data \ libpulse0 vorbis-tools lsb-release lsof sudo mp3gain vorbisgain flac vorbis-tools \ pwgen #install packages with --force-yes option (this is useful in the case #of Debian, where these packages are unauthorized) apt-get -y --force-yes install libmp3lame-dev lame icecast2 #Debian Squeeze only has zendframework package. Newer versions of Ubuntu have zend-framework package. #Ubuntu Lucid has both zendframework and zend-framework. Difference appears to be that zendframework is for #1.10 and zend-framework is 1.11 if [ "$dist" = "Debian" ]; then apt-get -y install --force-yes zendframework else apt-get -y install --force-yes libzend-framework-php fi if [ "$code" = "lucid" ]; then apt-get -y install --force-yes timeout else apt-get -y install --force-yes coreutils fi # NGINX Config File echo "----------------------------------------------------" echo "2.1 NGINX Config File" echo "----------------------------------------------------" if [ ! -f /etc/nginx/sites-available/airtime ]; then cp $SCRIPTPATH/../nginx/airtime-vhost /etc/nginx/sites-available/airtime ln -s /etc/nginx/sites-available/airtime /etc/nginx/sites-enabled/airtime service nginx reload else echo "NGINX config for Airtime already exists..." fi # php-fpm Airtime pool file echo "----------------------------------------------------" echo "2.2 Airtime php pool file" echo "----------------------------------------------------" if [ ! -f /etc/php5/fpm/pool.d/airtime.conf ]; then cp $SCRIPTPATH/../php5-fpm/airtime.conf /etc/php5/fpm/pool.d/airtime.conf service php5-fpm reload else echo "Airtime php pool file already exists..." fi # Enable Icecast echo "----------------------------------------------------" echo "3. Enable Icecast" echo "----------------------------------------------------" cd /etc/default/ sed -i 's/ENABLE=false/ENABLE=true/g' icecast2 set +e service icecast2 start set -e echo "" # Enable Monit echo "----------------------------------------------------" echo "4. Enable Monit" echo "----------------------------------------------------" cd /etc/default/ sed -i 's/startup=0/startup=1/g' monit set +e grep -q "include /etc/monit/conf.d" /etc/monit/monitrc RETVAL=$? set -e if [ $RETVAL -ne 0 ] ; then mkdir -p /etc/monit/conf.d echo "include /etc/monit/conf.d/*" >> /etc/monit/monitrc fi # Run Airtime Install echo "----------------------------------------------------" echo "5. Run Airtime Install" echo "----------------------------------------------------" cd $SCRIPTPATH/../../install_minimal ./airtime-install