Set correct base_url for old radio handshake
[foocorp:gnu-fm.git] / gnufm_install.txt
1 --- Installing GNU FM ---
2
3 If for any reason you might need assistance following these instructions, please don't 
4 hestitate to join us at #libre.fm @ freenode (IRC).
5
6 Dependencies: 
7               - Postgresql (recommended) / MySQL / SQlite (untested?)
8               - Apache / lighttpd
9               - PHP 5
10               - AdoDB
11               - Smarty + Smarty-gettext (see footnote)
12               - Database modules for PHP
13
14 (this guide assumes you are capable of creating a user and database yourself)
15 TODO: Write guide for creating user and database
16
17 First, grab yourself a copy of the code. It is available here:
18 http://gitorious.org/foocorp/gnu-fm
19
20 The checkout should contain a bunch of folders, the only ones we're
21 interested in at the moment are the ones called "gnukebox" and "nixtape".
22
23 GNU FM is divided into two modules: gnukebox, which receives scrobbles, and
24 nixtape, which is the web frontend and provides the webservices (such as radio).
25
26 Gnukebox:
27 Installing gnukebox is easy:
28            (1) Copy the contents of gnukebox to the root of a vhost.
29            (2) Set up correct permissions on files and folders
30            (3) Run 'install.php' through a web browser.
31
32 Gnukebox needs to be at the root of a vhost, simply because that's where clients 
33 expect it to be. For the rest of this document I'll assume gnukebox is accessible 
34 through the address 'gnukebox.local'. To complete step 1, copy the contents of
35 the "gnukebox"-folder to the root of your vhost:
36
37 $ cp -r gnukebox/* /var/www/htdocs/gnukebox/.
38
39 /var/www/htdocs/gnukebox is just where I've set up my gnukebox-vhost in Apache.
40
41 Gnukebox relies on an external database abstraction layer called ADOdb. This can be installed
42 systemwide through a package manager or locally for gnukebox only by extracting the ADOdb-archive
43 present in the "external_dependencies"-folder.
44
45 To install ADOdb system wide either use your distributions package manager or find a guide that
46 tells you how to do it manually. If you decide to use a local copy you will need to repeat this 
47 step when installing nixtape.
48
49 To use a local copy of ADOdb:
50    $ cp external_dependencies/adodb511.tgz /var/www/htdocs/gnukebox/.
51    $ cd /var/www/htdocs/gnukebox
52    $ tar zxvf adodb511.tgz
53    $ mv adodb5 adodb
54
55 Now run these commands as root to correctly set permissions (assuming www-data is the user
56 your webserver runs under).
57
58 $ chown www-data:www-data -R /var/www/htdocs/gnukebox
59
60 Now point your browser to 'http://gnukebox.local/install.php'.
61
62 Just fill in the appropriate details and click 'Install'. This should connect to the database,
63 create the appropriate tables and complete the 'config.php'-file in the gnukebox-directory.
64 If the script was unable to create the file, it will echo the contents to the screen and tell
65 you to create it yourself. Note: Some users have reported getting a Server 500-error here.
66 If you do, see if the tables were created and if 'config.php' has appeared in your gnukebox-folder.
67
68 ---------------------------------------------------------------------------------------------------
69
70 Nixtape:
71
72 Installing nixtape is currently a bit more work, but not much ;)
73
74 Installing the base system:
75     $ cp -r nixtape/* /var/www/htdocs/nixtape/.
76     $ mkdir /var/www/htdocs/nixtape/themes/gnufm/templates_c
77
78 Installing dependencies (Smarty+AdoDB):
79
80 Both Smarty and AdoDB can be downloaded and placed in the gnukebox-folder (both are also located in
81 the folder "external_dependencies"). If installed through a package manager, make sure Smarty 
82 is installed correctly[1]. When unpacking Smarty, move all files in smarty/libs/ to smarty/.
83
84 Installing Smarty:
85     $ cd external_dependencies
86     $ cp Smarty* /var/www/htdocs/nixtape/.
87     $ cp smarty* /var/www/htdocs/nixtape/.
88     $ tar zxvf Smarty*
89     $ tar zxvf smarty*
90     $ mv smarty/libs/* smarty/.
91     $ mv smarty-gettext/block.t.php smarty/plugins/.
92
93 Installing ADOdb:
94     $ cp external_dependencies/adodb511.tgz /var/www/htdocs/nixtape/.
95     $ cd /var/www/htdocs/nixtape
96     $ tar zxvf adodb511.tgz
97     $ mv adodb5 adodb
98
99 Setting the correct permissions:
100     $ chown www-data:www-data -R /var/www/htdocs/nixtape
101
102 Now access your installation through a browser and follow the instructions.
103
104 __________________________________________________________________________
105 [1] Debian installs Smarty wrong and Ubuntu installs Smarty-Gettext wrong. 
106 See http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=514305 and 
107 https://bugs.launchpad.net/ubuntu/+source/smarty-gettext/+bug/150461