#!/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 server="$1" #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` #enable squeeze backports to get lame packages if [ "$dist" = "Debian" -a "$code" = "squeeze" ]; then set +e grep -E "deb http://backports.debian.org/debian-backports squeeze-backports main" /etc/apt/sources.list returncode=$? set -e if [ "$returncode" -ne "0" ]; then echo "deb http://backports.debian.org/debian-backports squeeze-backports main" >> /etc/apt/sources.list fi fi codename=`lsb_release -sc` set +e grep -E "deb +http://apt.sourcefabric.org/? +$codename +main" /etc/apt/sources.list returncode=$? set -e if [ "$returncode" != "0" ]; then echo "deb http://apt.sourcefabric.org/ $codename main" >> /etc/apt/sources.list fi apt-get update # Updated package list apt-get -y --force-yes install tar gzip curl php5-pgsql \ 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 libfaad2 #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 --force-yes install zendframework else apt-get -y --force-yes install libzend-framework-php fi #get the "timeout" unix command if [ "$code" = "lucid" ]; then apt-get -y --force-yes install timeout else apt-get -y --force-yes install coreutils fi #install aac package only available in new distributions: (Debian Wheezy, Ubuntu Precise or newer) if [ "$code" != "squeeze" -a "$code" != "lucid" ]; then apt-get -y --force-yes install libvo-aacenc0 fi #Install packages back-ported by Sourcefabric apt-get -y --force-yes install sourcefabric-keyring apt-get -y --force-yes install liquidsoap apt-get -y --force-yes install silan apt-get -y --force-yes install libopus0 if [ "$server" = "nginx" ]; then apt-get -y --force-yes install nginx php5-fpm # 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 else apt-get -y --force-yes install apache2 libapache2-mod-php5 # Apache Config File echo "----------------------------------------------------" echo "2. Apache Config File" echo "----------------------------------------------------" if [ ! -f /etc/apache2/sites-available/airtime ]; then cp $SCRIPTPATH/../apache/airtime-vhost /etc/apache2/sites-available/airtime a2dissite default a2ensite airtime a2enmod rewrite php5 service apache2 restart else echo "Apache config for Airtime already exists..." fi 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