--- Installing GNU FM ---

If for any reason you might need assistance following these instructions,
please don't hestitate to join us at #libre.fm @ freenode (IRC).

Dependencies:
	      - Postgresql (recommended) / MySQL / SQlite (untested?)
	      - Apache / lighttpd
	      - PHP 5
	      - AdoDB
	      - Smarty + Smarty-gettext (see footnote)
	      - Database modules for PHP

PHP dependencies (AdoDB, Smarty, Smarty-gettext) are managed via composer.

(This guide assumes you are capable of creating a user and database yourself.)
TODO: Write guide for creating user and database

First, grab yourself a copy of the code. It is available here:

http://gitorious.org/foocorp/gnu-fm

The checkout should contain a bunch of folders, the only ones we're
interested in at the moment are the ones called "gnukebox" and "nixtape".

GNU FM is divided into two modules: gnukebox, which receives scrobbles, and
nixtape, which is the web frontend and provides the webservices (such as radio).

Although gnukebox and nixtape have the same dependencies, they have separate
composer files to make separate installation easier.

--------------------------------------------------------------------------------

Gnukebox:

Installing gnukebox is easy:
       (1) Copy the contents of gnukebox to the root of a vhost.
       (2) Run 'composer install' in that directory.
       (3) Set up correct permissions on files and folders.
       (4) Run 'install.php' through a web browser.

Gnukebox needs to be at the root of a vhost, simply because that's where
clients expect it to be. For the rest of this document I'll assume gnukebox is
accessible through the address 'gnukebox.local'. To complete step 1, copy the
contents of the "gnukebox" folder to the root of your vhost:

$ cp -r gnukebox/* /var/www/htdocs/gnukebox/.

/var/www/htdocs/gnukebox is just where I've set up my gnukebox-vhost in Apache.

Install the dependencies using composer:

$ cd /var/www/htdocs/gnukebox
$ composer install

Now run these commands as root to correctly set permissions (assuming www-data
is the user your webserver runs under).

$ chown www-data:www-data -R /var/www/htdocs/gnukebox

Now point your browser to 'http://gnukebox.local/install.php'.

Just fill in the appropriate details and click 'Install'. This should connect
to the database, create the appropriate tables and complete the 'config.php'
file in the gnukebox-directory.

If the script was unable to create the file, it will echo the contents to the
screen and tell you to create it yourself.

Note: Some users have reported getting a Server 500-error here. If you do, see
if the tables were created and if 'config.php' has appeared in your gnukebox
folder.

--------------------------------------------------------------------------------

Nixtape:

Installing nixtape is currently a bit more work, but not much ;)

Installing the base system:
    $ cp -r nixtape/* /var/www/htdocs/nixtape/.
    $ mkdir /var/www/htdocs/nixtape/themes/gnufm/templates_c

Installing dependencies:
    $ cd /var/www/htdocs/nixtape/
    $ composer install

Setting the correct permissions:
    $ chown www-data:www-data -R /var/www/htdocs/nixtape

Now access your installation through a browser and follow the instructions.
