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

, , ,

OpenID-largeOpenID permet d’utiliser le même crédential pour s’authentifier sur des sites différents. Plus besoin de créer un compte sur chaque service en ligne que l’on souhaite utiliser. Autre avantage, OpenId fonctionne de manière décentralisée et n’importe qui peut devenir son propre “hébergeur”. Et ça tombe plutôt bien, c’est ce qu’on va mettre en place grâce à la librairie phpMyId.

Premièrement, récupérer les fichier MyID.config.php et MyID.php sur github, seul le premier fichier sera à éditer.

1. Modifier le fichier de configuration

Ci-dessous les 4 champs à personnaliser.

'auth_username' => 'votre_login',
'auth_password' => 'hash',
'auth_realm' => 'phpMyID',
'idp_url' => 'http://monblog.tld/openid/',

  • auth_username correspond simplement au login que vous souhiatez utiliser.
  • auth_password correpsond au hash (md5) du tuple : ‘login:realm:votre_password’. Voilà comment le créer sous linux :

echo -n 'votre_login:phpMyID:votre_password' | openssl md5

C’est donc le hash généré par la commande précédente qui est renseigné dans ‘auth_password‘.

  • auth_realm est utilisé dans la génération du hash. Libre à vous de le modifier ou de le laisser tel quel.
    idp_url est l’url dans lesquels nous avons déposé les scripts.

2. Upload

Pour notre exemple, nous avons spécifié ‘http://monblog.tld/openid/’ comme url. Nous uploadons donc dans le répertoire ‘openid’ les deux fichiers. Nous pouvons renommer ‘MyID.config.php’ afin de simplifier l’url d’accès.

Nous avons donc :

/openid/index.php
/openid/MyID.php

3. Récupérer son identité

Arrivé à cette étape, vous pouvez utiliser ‘http://monblog.tld/openid/’ comme url de login. C’est bien, mais c’est pas top ;) . Nous allons modifiez une page existente, afin de la faire pointer vers l’authentification OpenID. Outre le fait qu’on peut choisir une url plus simple, cette manipulation a l’avantage de découpler l’url que l’on donne de celle qui fait réellement le boulot.
Cela permettra par exemple de changer de provider OpenID de manière totalement transparente.

Voici les deux lignes à ajouter en header de votre blog par exemple :
<link rel="openid.server" href="http://monblog.tld/openid/" />
<link rel="openid.delegate" href="http://monblog.tld/openid/" />

Voilà, vous pouvez utiliser ‘http://monblog.tld/’ pour vous authentifier sur les sites supportant OpenID.

4. Pour aller plus loin

Nous n’avons fait que survoler les grands principes d’OpenID, je vous invite à consulter le site officiel [en] pour une description détaillée des processus sous-jacents et des possiblités offertes.
Il est par exemple possible de rattacher un profile ou encore un avatar à votre compte.

5. Sources et liens utiles

, ,