***Beware, here be dragons!*** These Airtime instructions are outdated, see [install.md](../../install.md) for LibreTime instructions. You do not normally need to install Airtime manually, unless you are testing a development version of the software. Versions of Airtime recommended for production use are available for download and upgrade via *secure apt*, as shown in the *Automated installation* chapter. Dependencies provided by Sourcefabric ------------------------------------- The <http://apt.sourcefabric.org/> repository contains up-to-date Debian and Ubuntu packages of Airtime dependencies such as **liquidsoap** and **silan** which you may find convenient to install, even if you are installing Airtime manually. Refer to the chapter *Automated installation* for repository setup details. Airtime requires a version of **python-virtualenv** later than 1.4.8, but Ubuntu Lucid includes the older version 1.4.5 of this package. Before performing a manual installation on Lucid, you should update **python-virtualenv** using the backported package available from the <http://apt.sourcefabric.org/> repository. This step is not necessary when performing an automated installation, in which dependencies are resolved automatically. Full install ------------ The **airtime-full-install** script is designed to configure your server for you, using typical default settings. 1. In the server terminal or console, download Airtime from <https://github.com/sourcefabric/Airtime/releases> with **wget**. For example, to download version 2.5.1, you could use the command: wget https://github.com/sourcefabric/Airtime/archive/airtime-2.5.1-ga.tar.gz Then unzip the downloaded file in your home directory. This action will create a subdirectory called *airtime-2.5.1*: tar -xvzf airtime-2.5.1-ga.tar.gz -C ~/ Alternatively, clone the git repository if you wish to work on the latest Airtime source code: git clone https://github.com/sourcefabric/Airtime.git In order to return your code improvements to Airtime, you will need to create your own fork of the Airtime git repository and send pull requests. See the GitHub help page <https://help.github.com/articles/fork-a-repo> for details. 2. Run the **airtime-full-install** script, for example on Ubuntu: sudo ~/airtime-2.5.1/install_full/ubuntu/airtime-full-install The installation script will indicate which files are being installed on your system, and the directories they are being unpacked into. Finally, it will run the **airtime-check-system** script to confirm that your server environment is set up correctly. *** Verifying your system environment, running airtime-check-system *** AIRTIME_STATUS_URL = http://airtime.example.com:80/api/status/format/json/api_key/%%api_key%% AIRTIME_SERVER_RESPONDING = OK KERNEL_VERSION = 3.2.0-4-amd64 MACHINE_ARCHITECTURE = x86_64 TOTAL_MEMORY_MBYTES = 2963688 TOTAL_SWAP_MBYTES = 7812092 AIRTIME_VERSION = 2.5.1 OS = Debian GNU/Linux 7.1 (wheezy) x86_64 CPU = AMD Turion(tm) II Neo N40L Dual-Core Processor WEB_SERVER = Apache/2.2.22 (Debian) PLAYOUT_ENGINE_PROCESS_ID = 4446 PLAYOUT_ENGINE_RUNNING_SECONDS = 55 PLAYOUT_ENGINE_MEM_PERC = 0.5% PLAYOUT_ENGINE_CPU_PERC = 0.4% LIQUIDSOAP_PROCESS_ID = 4685 LIQUIDSOAP_RUNNING_SECONDS = 49 LIQUIDSOAP_MEM_PERC = 0.7% LIQUIDSOAP_CPU_PERC = 7.4% MEDIA_MONITOR_PROCESS_ID = 4410 MEDIA_MONITOR_RUNNING_SECONDS = 55 MEDIA_MONITOR_MEM_PERC = 0.5% MEDIA_MONITOR_CPU_PERC = 0.0% -- Your installation of Airtime looks OK! ************ Install Complete ************ You are now ready to proceed to the *Configuration* chapter. Minimal install --------------- The alternative **airtime-install** script does not attempt to configure your server, an option which you may find more suitable if you have special requirements. 1. In the server terminal or console, install the list of dependencies. For example, on Ubuntu you could enter the command: sudo apt-get install postgresql python-virtualenv apache2 coreutils \ curl ecasound flac gzip libapache2-mod-php5 libcamomile-ocaml-data \ liquidsoap locales lsof monit mp3gain multitail patch php5-cli \ php5-curl php5-gd php5-json php5-pgsql php-apc php-pear pwgen \ python rabbitmq-server silan sudo sysv-rc tar unzip \ vorbisgain vorbis-tools libzend-framework-php On Debian, install *zendframework* instead of the *libzend-framework-php* package. 2. Check that the Apache web server modules that Airtime requires are enabled: sudo a2enmod php5 rewrite The server should respond: Module php5 already enabled Module rewrite already enabled 3. Create a directory to contain the Airtime web interface: sudo mkdir -p /usr/share/airtime/public 4. Next, create the Airtime virtual host configuration file for Apache: sudo nano /etc/apache2/sites-available/airtime.conf and enter the information below, substituting your server's hostname for *airtime.example.com* and your system administrator's email address for *admin@example.com*. Make sure you set the *DocumentRoot* and *Directory* paths correctly. This should normally match the *public* directory that the installer will unpack the web interface into, which by default is the */usr/share/airtime/public/* directory. From Airtime 2.3.0 onwards, the web interface can be installed in a subdirectory of the *DocumentRoot* if you require it to be. For Apache 2.2, you can use the following syntax: <VirtualHost *:80> ServerName airtime.example.com ServerAdmin admin@example.com DocumentRoot /usr/share/airtime/public php_admin_value upload_tmp_dir /tmp <Directory /usr/share/airtime/public> DirectoryIndex index.php AllowOverride all Order allow,deny Allow from all </Directory> </VirtualHost> Apache 2.4 uses a different access control syntax in the Directory stanza: <VirtualHost *:80> ServerName airtime.example.com ServerAdmin admin@example.com DocumentRoot /usr/share/airtime/public php_admin_value upload_tmp_dir /tmp <Directory /usr/share/airtime/public> DirectoryIndex index.php AllowOverride all Require all granted </Directory> </VirtualHost> Press Ctrl+O to save the file, then Ctrl+X to exit the **nano** editor. 5. Create the PHP configuration file */etc/airtime/airtime.ini* in nano: sudo nano /etc/airtime/airtime.ini with the following contents: [PHP] memory_limit = 512M magic_quotes_gpc = Off file_uploads = On upload_tmp_dir = /tmp apc.write_lock = 1 apc.slam_defense = 0 Save and exit nano, then link this file to the system's PHP configuration with the command: sudo ln -s /etc/airtime/airtime.ini /etc/php5/conf.d/airtime.ini 6. Enable the new configuration by entering the command: sudo a2ensite airtime The server should respond: Enabling site airtime. Run '/etc/init.d/apache2 reload' to activate new configuration! You may also need to disable the default site configuration, which may otherwise interfere with your Airtime installation: sudo a2dissite default As suggested by the output of the command above, reload the web server configuration. sudo /etc/init.d/apache2 reload The server should respond: * Reloading web server config apache2 7. Download Airtime from <https://github.com/sourcefabric/Airtime/releases> with **wget**, and unzip the downloaded file in your home directory. This action will create a subdirectory called *airtime-2.5.1*: wget https://github.com/sourcefabric/Airtime/archive/airtime-2.5.1-ga.tar.gz tar -xvzf airtime-2.5.1-ga.tar.gz -C ~/ Alternatively, clone the Airtime git repository as shown above. 8. Monit is a utility which Airtime uses to make sure that the system runs smoothly. Enable it by opening the */etc/default/monit* file in the **nano** editor: sudo nano /etc/default/monit Find the line that begins with *START* and change the value to *yes*: START=yes Save the file with Ctrl+O and close nano with Ctrl+X. Now copy the Monit configuration from the Airtime install directory to the */etc/monit/conf.d/* directory: sudo cp ~/airtime-2.5.1/python_apps/monit/airtime-monit.cfg /etc/monit/conf.d/ Open the */etc/monit/monitrc* file in **nano**: sudo nano /etc/monit/monitrc At the end of the file, add the line: include /etc/monit/conf.d/* Save the file with Ctrl+O and close nano with Ctrl+X. Then start Monit with: sudo invoke-rc.d monit start More information about monit is available in the chapter *Using Monit*. 9. On Debian squeeze, make sure the rabbitmq-server daemon has started: sudo invoke-rc.d rabbitmq-server start 10. Finally, run the minimal **airtime-install** script: sudo ~/airtime-2.5.1/install_minimal/airtime-install Once the **airtime-check-system** script confirms that the install has been successful, you should now be able to log in to the Airtime administration interface, as shown in the *Getting started* chapter, with the username *admin* and the password *admin*. See the *Configuration* chapter for advanced settings. Install script options ---------------------- By default, the **airtime-install** script preserves any existing configuration or installation that it finds on the server. However, it is also possible to dictate the behaviour of the script with a command line option, as follows: --help|-h Displays usage information. --overwrite|-o Overwrite any existing config files. --preserve|-p Keep any existing config files. --no-db|-n Turn off database install. --reinstall|-r Force a fresh install of this Airtime version. Manual uninstall ---------------- To manually uninstall Airtime from the server, run the **airtime-uninstall** script from the minimal installation directory, for example: sudo ~/airtime-2.5.1/install_minimal/airtime-uninstall Optionally, you can also delete the Airtime storage and configuration folders, if you have backups and are not going to need the data on this particular server again. The **rm** command should be used with caution, because it has no undo feature. sudo rm -r /srv/airtime sudo rm -r /etc/airtime