Redmine

De Wiki de la communauté Mandriva.

Je rassemble ici mes notes pour installer le superbe gestionnaire de projet qu'est Redmine
Redmine, est un gestionnaire de projet écrit en ruby à l'aide de l'outil Ruby on Rails. IL est multi-projets et permet la mise en place d'un gestionnaire de bogues (bugs), d'un wiki, d'un forum, etc. Plus d'information sur Wikipédia ou sur le projet Plume


Sommaire

Pré-requis

Je pars du principe que vous savez :

Que vous avez :

  • installé Rails,
  • installé un gestionnaire de base de données comme MySQL, PostgreSQL, Sqlite3 ou un autre à votre convenance,
  • installé le paquet permettant à ruby de s'interfacer avec la base de donnée choisie,

Dans une console root

# Pour utiliser MySQL 
urpmi ruby-mysql

# Pour utiliser Sqlite3
urpmi ruby-sqlite3

Que si vous voulez le mettre sur votre superbe serveur connecté au monde, que vous savez ce que vous faites ou que vous avez lu le tutoriel qui va bien :

  • déployer en production votre application rails avec lighttpd.

Installation manuel

Un petit coup d'oeil sur cette page ne vous fera pas de mal RedminInstall.

Téléchargement et installation

J'installe cette application dans le dossier /var/www de mon ordinateur, puisqu'il sera accessible pour tous sur mon réseau local. L'ensemble des commandes ci-dessous se fait en console root

# Je me positionne dans le bon répertoire
cd /var/www

# Télécharger le projet (Version 0.9.0 RC en date du 24/01/2010)
wget http://rubyforge.org/frs/download.php/68515/redmine-0.9.0.tar.gz

# Extraire l'archive
tar zxvf redmine-0.9.0.tar.gz

# Création d'un lien permettant d'avoir un nom de dossier simple tout en conservant l'information de numéro de version du logiciel
ln -s redmine-0.9.0 redmine

# Suppression de l'archine
rm -f redmine-0.9.0.tar.gz

Configuration

La configuration diffère en fonction du gestionnaire de base de données. J'ai testé avec MySQL, je vous donne les éléments, pour une autre base, je vous donnerai ce que j'aurais testé dans le futur.

# Création de la base de donnée pour Redmine
# Connection à MySQL en tant qu'utilisateur root (-u root) ayant un mot de passe (-p), à vous d'adapter en fonction de votre cas
mysql -u root -p

# Création d'une base de donnée nommée "redmine"
create database redmine character set utf8;

# Création d'un utilisateur "redmine" avec le mot de passe "mon_mot_de_passe"
create user 'redmine'@'localhost' identified by 'mon_mot_de_passe';

# Attribution de tous les droits et privilèges à l'utilisateur "redmine" pour la base "redmine"
grant all privileges on redmine.* to 'redmine'@'localhost';
# Sortie de l'interpréteur  de mysql
[ctrl]+z

Il faut maintenant modifier le fichier config/database.yml pour lui donner les valeurs de notre configuration

# Copier le fichier
cp /var/www/redmine/config/database.yml.example /var/www/redmine/config/database.yml

# Edition du fichier avec vi
vi /var/www/redmine/config/database.yml

Editer le fichier pour qu'il reflète les valeurs suivantes :

production:
   adapter:  mysql
   database: redmine
   host:     localhost
   username: redmine
   password: mon_mot_de_passe

Il faut maintenant modifier le fichier config/email.yml pour lui donner les valeurs de notre configuration

# Copier le fichier
cp /var/www/redmine/config/email.yml.example /var/www/redmine/config/email.yml

# Edition du fichier avec vi
vi /var/www/redmine/config/email.yml

Pour le moment je vous renvoie à la documentation Email_Configuration.


Post-installation

Maintenant, il nous reste que les opération de post-installation

# Nous devons être dans le bon dossier
cd /var/www/redmine

# Génération du "secret"
RAILS_ENV=production rake config/initializers/session_store.rb

# Génération de la base de donnée
RAILS_ENV=production rake db:migrate

# Mise en place des données par défaut (choisir [fr] à la question posée)
RAILS_ENV=production rake redmine:load_default_data

# Test de l'application
ruby script/server webrick -e production

Maintenant connectez vous sur ce lien http://localhost:3000/ et vérifiez si vous avez la page d'accueil. Utilisez "admin /admin" pour vous connecter et n'oubliez pas de changer le mot de passe !

Terminons la configuration

Si tout va bien, terminons la configuration :

# Arrêt du serveur webrick
[ctrl]+c 

# Vérification que les dossiers temporaires sont présents
mkdir tmp public/plugin_assets

# Changement des permissions à l'utilisateur "apache" et au groupe "apache" (c'est apache qui va servir l'application)
chown -R apache:apache /var/www/redmine-0.9.0

Ne pas oublier de bien vérifier les permissions sur vos dossiers : il ne faut pas que les autres utilisateurs (le monde) puissent écrivent dans vos dossiers, voir à ce sujet les permissions.

Fichier de configuration si nous voulons utiliser lighttpd

J'utilise lighttpd pour servir mes pages web, voici donc le fichier de configuration à mettre en place. J'ai aussi modifier le DNS de mon domaine pour que les requêtes http vers "redmine.mon-domaine.tld" arrive sur mon serveur. Tout ce fait dans une console en mode root :

# Copie du fichier de déploiement
cp /var/www/redmine/public/dispatch.fcgi.example /var/www/redmine/public/dispatch.fcgi
 
# Edition du fichier de configuration
vi /etc/lighttpd/lighttpd.conf

Ajouter cette section sous la section VIRTUAL HOSTS, ligne 154 dans mon fichier :

#########################################################################################
###
### Configuration du serveur redmine
###
#########################################################################################
$HTTP["host"] == "redmine.mon-domaine.tld" {
   server.document-root = "/var/www/redmine/public"
   accesslog.filename = "/var/log/lighttpd/redmine.log"
   server.error-handler-404 = "/dispatch.fcgi"
   fastcgi.server = ("dispatch.fcgi" =>
      (  ("socket" => "/var/run/lighttpd/redmine.socket"
         ,"bin-path" => "/var/www/redmine/public/dispatch.fcgi"
         ,"min-procs" => 1
         ,"max-procs" => 4
         ,"bin-environment" =>
            ("RAILS_ENV" => "production"
            ,"LANG" => "fr_FR.UTF-8"
            )
         ,"bin-copy-environment" => ("PATH")
         )
      )
   )
}

Maintenant tester et mettons en production

# Test de la syntaxe :
/usr/sbin/lighttpd -t -f /etc/lighttpd/lighttpd.conf

# Relancer le serveur :
service lighttpd restart

# Vérifier si le serveur fonctionne
service lighttpd status

Tout va très Madame la Marquise, tout va très bien, tout va très bien !