Teambox auf Turnkey Linux Ubuntu 8.04.3 installieren

Ein Freund hat mich um Hilfe gebeten – er hätte gerne Teambox installiert.

Es soll natürlich nicht irgendwo sein, sondern auf einer TurnKey Linux Appliance.

TurnKey ist äußerst praktisch. TurnKey bietet vorgefertigt installierte Images mit Ubuntu 8.04.3 und verschiedenen Applikationen an. Die kann man direkt in Amazons EC2 Cloud, auf einem eigenen Server oder diversen Virtualisierern verwenden.

Als Grundlage wird die TurnKey Ruby on Rails Appliance verwendet.

Die Installation ist nicht ganz trivial, obwohl eine Anleitung existiert. Die Versionen einiger Tools sind bei dem in die Jahre gekommenen Ubuntu 8.04 bereits zu alt, es fehlen noch ein paar Pakete und außerdem braucht man noch ein paar Infos aus einer anderen Anleitung.

Folgendes Vorgehen führt zum Erfolg:

root@rails:~# apt-get update
root@rails:~# apt-get upgrade
root@rails:~# apt-get install imagemagick git rake \
rubygems libdbd-mysql-ruby liberuby-dev \
libxml2-dev libxslt1-dev joe
root@rails:~# cd /var/www/
root@rails:/var/www# mv railsapp/ railsapp.old
root@rails:/var/www# git clone git://github.com/micho/teambox.git railsapp
root@rails:/var/www# mv /usr/bin/gem /usr/bin/gem.old
root@rails:/var/www# ln -s /usr/bin/gem1.8 /usr/bin/gem #(Danke an Martin Videc!)
root@rails:/var/www# gem update --system
root@rails:/var/www# gem install bundler -v '~> 0.9.12'
root@rails:/var/www# cd railsapp/
root@rails:/var/www/railsapp# bundle install

Datenbankkonfiguration für das Production Environment ändern und installieren:

root@rails:/var/www/railsapp# joe config/database.yml

Wenn man den Datenbank User und Passwort geändert hat, wird

root@rails:/var/www/railsapp# RAILS_ENV=production rake db:create

nicht mehr funktionieren. Stattdessen:

root@rails:/var/www/railsapp# mysql -u root
mysql> CREATE DATABASE teamboxdatenbank COLLATE utf8_unicode_ci;
mysql> CREATE USER teamboxuser@localhost IDENTIFIED by 'passwort';
mysql> GRANT ALL ON teamboxdatenbank.* to teamboxuser@localhost;
mysql> exit

Dann hier weiter. In teambox.yml müssen die korrekte Domain und E-Mail Einstellungen eingetragen werden!

root@rails:/var/www/railsapp# RAILS_ENV=production rake db:auto:migrate
root@rails:/var/www/railsapp# joe config/teambox.yml
root@rails:/var/www/railsapp# ./script/server -p 3000 -e production

Unter http://[appliance-ip]:3000/ nachschauen – geht!

Falls doch nicht, Server nochmal beenden und:

root@rails:/var/www/railsapp# mv public/stylesheets/sass/wrapper.sass public/stylesheets/sass/_wrapper.sass #(Danke an Miquel!)

Dann Server wieder beenden und folgendes ausführen:
(Beim ersten Request werden einige Dateien angelegt – das funktioniert aus unbekannten Gründen nicht via Passenger, deshalb unbedingt einmal mit dem Stand-Alone Server starten!)
root@rails:/var/www/railsapp# chown -R :www-data .
root@rails:/var/www/railsapp# chown -R www-data log tmp/

Sehr zu empfehlen ist der Betrieb unter Apache via Passenger. Das sollte auf den neusten Stand gebracht werden:

root@rails:/var/www/railsapp# cd /etc/apache2/conf.d/
root@rails:/etc/apache2/conf.d# gem install passenger
root@rails:/etc/apache2/conf.d# passenger-install-apache2-module
root@rails:/etc/apache2/conf.d# joe passenger

-> Dort die entsprechenden Zeilen aus der Ausgabe von passenger-install-apache2-module austauschen.


root@rails:/etc/apache2/conf.d# /etc/init.d/apache2 restart

Jetzt ist Teambox auf Port 80 unter http://[appliance-ip]/ erreichbar.