redmine_logo.jpgRedmine est un système de gestion de projet en mode web. Il est développé en ruby grâce au framework ruby on rails. La dernière version stable de Redmine à ce jour est la version 1.0.2. Elle nécessite la version 2.3.5 de Rails et la version 1.0.1 de Rack.

Ce billet se base sur l'article suivant : http://doc.ubuntu-fr.org/redmine, il est adapté pour Debian.

Le site officiel de redmine est ici

Prérequis

Installer les packages suivants :

aptitude install build-essential ruby1.8-dev rubygems rake

Si vous êtes sous Debian-Lenny la version de rubygems fournit par debian n'est pas à jour, charger donc la dernière version et l'installer. Ceci est inutile si vous êtes sous Squeeze.

wget http://rubyforge.org/frs/download.php/70696/rubygems-1.3.7.tgz
tar -xvzf rubygems-1.3.7.tgz
cd rubygems-1.3.7
ruby1.8 setup.rb

Charger rails et rack, les installations via gem sont assez lentes.

gem1.8 install rails -v=2.3.5
gem1.8 install rack -v=1.0.1

il peut être intéressant de créer le lien symbolique suivant :
ln -s /usr/bin/gem1.8 /usr/bin/gem

Installation de redmine

Télécharger redmine

wget http://rubyforge.org/frs/download.php/72627/redmine-1.0.2.tar.gz
tar -xvzf redmine-1.0.2.tar.gz

Il faut une base de donnée, ici on prend MySQL. Installer la base de données

aptitude install mysql-server libmysqlclient-dev

Puis charger l'adaptateur MySQL pour ruby

gem1.8 install mysql

Créer un utilisateur spécifique. Pour des raisons de sécurité, il est préfèrable de créer un utilisateur spécifique à Redmine pour utiliser la base :

addgroup redmine
adduser redmine --no-create-home --ingroup redmine

Un mot de passe sera demandé pour l'utilisateur redmine. L'exemple prendra motdepasse

Créer la base de données de Redmine

mysql -u root -p
mysql> create database redmine default character set utf8 collate  utf8_general_ci;
mysql> grant all privileges on redmine.* to redmine@localhost identified by 'motdepasse' with grant option;
mysql> flush privileges;
mysql> exit;

Configuration

Se positionner dans le répertoire où sont décompressées les sources redmine et editer un fichier config/database.yml

production:
  adapter: mysql
  socket: /var/run/mysqld/mysqld.sock 
  database: redmine
  host: localhost
  username: redmine
  password: motdepasse
  encoding: utf8

Puis entrer la commande suivante :

rake generate_session_store

Il faut installer le package suivant :

aptitude install libopenssl-ruby1.8

Sinon l'erreur suivante se produira :

Rake aborted!
no such file to load -- net/https

Créer la structure de la base

RAILS_ENV=production rake db:migrate

Insérer les données par défaut

RAILS_ENV=production rake redmine:load_default_data

La langue sera demandée, fr pour du français.

Finalisation

En principe tout s'est fait sous l'identité root, aussi le mieux est de mettre redmine sous /opt afin de respecter les normes linux.

cd /opt
mkdir redmine
cd redmine
cp -r /root/redmine-1.0.2/* .

Il faut un dossier pids doit être présent également pour permettre au serveur web mongrel ( voir plus loin ) de démarrer.

mkdir /opt/redmine/tmp/pids

Affecter les droits

cd /opt/redmine
chown -R redmine:redmine files log tmp public/plugin_assets
chmod -R 755 files log tmp public/plugin_assets

Pour fonctionner redmine a besoin d'un serveur web. Mongrel est un serveur HTTP écrit en Ruby et en C. Il a été conçu pour être léger, rapide et sécurisé. Il est bien sur possible d'utiliser apache ( voir le lien suivant )

aptitude install mongrel

Démarrage de redmine

Créer sous /etc/init.d un script redmine avec les instructions suivantes :

#!/bin/sh
 
set -e
 
REDMINE_PATH=/opt/redmine/
REDMINE_PID=/tmp/mongrel.pid
REDMINE_PORT=3000
 
if [ -x /usr/bin/mongrel_rails ] ; then
        HAVE_MONGREL=1
else
        echo "Mongrel n'est pas installé."
        exit 0
fi
 
. /lib/lsb/init-functions
 
case "$1" in
  start)
        log_action_begin_msg "Démarrage de Redmine server"
        mongrel_rails start -c $REDMINE_PATH -d -e production -p $REDMINE_PORT -P $REDMINE_PID
        log_action_end_msg $?
        ;;
  stop)
        log_action_begin_msg "Arrêt de Redmine server"
        mongrel_rails stop -c $REDMINE_PATH -P $REDMINE_PID
        log_action_end_msg $?
        ;;
  force-reload|restart)
        $0 stop
        $0 start
        ;;
  *)
        echo "Usage: /etc/init.d/redmine {start|stop|restart|force-reload}"
        exit 1
        ;;
esac
 
exit 0

Par défaut redmine sera accéssible via le port 3000.

Le rendre executable et l'activer au boot de la machine

chmod +x /etc/init.d/redmine
update-rc.d redmine defaults

Démarer redmine

/etc/init.d/redmine start

Pointer un navigateur sur http://monserveur:3000. La page redmine s'affiche, le login de connexion par défaut est admin/admin.