Teambox.com Toujours à la recherche d’un outils de collaboration et de gestion de projet qui me convienne, j’ai entendu parler de Teambox (merci Twitter au passage :p). Leur screencast m’a mis l’eau à la bouche et j’ai décidé d’essayer.

Bien qu’il y ai une souscription gratuite dans leur offre, j’ai préféré tenter l’aventure en installant le tout sur un serveur. J’aime bien voir l’envers du décors ;) . Et bien l’envers du décors, on peut dire que je l’ai vu de près :D .
Ne connaissant rien à Ruby et son éco-système, l’installation à été un peu laborieuse. Il a fallu jongler avec les différentes versions de ruby et ses outils. Centos n’étant pas à la page niveau version de ruby, j’ai du passer par les sources.
Au final, ça tourne bien.

Pour les curieux, voilà les différentes étapes par lesquelles je suis passé. Pour info, l’OS du serveur sur lequel j’ai travaillé et Centos 5.4 64bits.

Installation

On commence par installé les sources des dépendance nécessaire à la compilation :

yum install ImageMagick
yum install libxml2-devel libxslt-devel
yum install mysql-devel postgresql-devel sqlite-devel

Compilation de Ruby :

wget http://ftp.ruby-lang.org/pub/ruby/1.8/ruby-1.8.7.tar.gz
tar -zxvf ruby-1.8.7.tar.gz
cd ruby-1.8.7
./configure --with-openssl-dir=/usr/lib64/openssl
make
make install


wget http://rubyforge.org/frs/download.php/69365/rubygems-1.3.7.tgz
tar -zxvf rubygems-1.3.7.tgz
cd rubygems-1.3.7
ruby setup.rb


gem install bundler -v '~> 1.0.0.rc'

Download de Teambox et installation :

git clone git://github.com/teambox/teambox.git /opt/teambox
cd /opt/teambox
bundle install

Installation du framework Rails, le fameux RoR.

gem install rails

Création de la base de donnée, et configuration :

vi teambox/config/database.yml
rake db:create db:schema:load RAILS_ENV=production

Lancement de teambox sur le port 3000 :

script/server -e production

A partir de là, j’ai eu un problème de chargement des fichiers javascript et css. Les requêtes sur ces fichiers se faisaient sur le port 80. Dans le cas ou l’on souhaite utiliser Apache, la modification suivante n’a pas lieu d’être. J’ai quand même modifier provisoirement la ligne 30 du fichier ‘config/environments/production.rb’ en ajoutant le port 3000 après le domaine. Ce n’est certainement pas la meilleur façon de faire mais pour mes tests cela a suffit.
La prochaine étape consiste à utiliser le mod_passenger d’apache.

Configuration d’apache

Installation du mode passenger. Il suffit de suivre les instruction affichées.

gem install passenger
passenger-install-apache2-module

Activer le mod_passenger en créant par exemple un fichier ‘/etc/httpd/conf.d/passenger.conf’ et en ajoutant la ligne suivante.

LoadModule passenger_module /usr/lib/ruby/gems/1.8/gems/passenger-2.2.11/ext/apache2/mod_passenger.so

Créer un virtual host ‘/etc/httpd/conf.d/teambox.conf’.

<VirtualHost *:80>
    Options +Indexes
    ServerAdmin me@mydomain.com
    ServerName teambox.mydomain.com
    DocumentRoot /opt/teambox/public
    <Directory /opt/teambox/public>
    Options Indexes FollowSymLinks
    AllowOverride All
    Order allow,deny
    Allow from all
    Options -MultiViews
    </Directory>
    RailsEnv production
</VirtualHost>

Après un restart d’Apache le sous domaine ‘teambox.mydomain.com’ devrait être accessible. En ce qui me concerne j’avais une belle erreur de Passenger, joliment habillé, avec le traceback et tout et tout… dont voici le détails :

Ruby on Rails application could not be started
git://github.com/mislav/tolk.git (at master) is not checked out. Please run `bundle install` (Bundler::PathError)
PhusionPassenger::UnknownError
...

En cherchant un peu sur le net j’ai trouvé un workaround. Dans ‘/opt/teambox’ éxécuter les deux commandes suivantes :

bundle install --production
chmod -R 777 vendor/bundle

Et voilà !

Ressources

Teambox community qui référence les guides d’installation.
Un guide d’installation de Ruby sous Centos
Un guide d’installation de Teambox
Le blog officiel

, , ,