Redmine multi-instances sur Debian Squeeze

 

Redmine est une application open source web de gestion de projets qui présente un grand nombre de fonctionnalités :

  • gestion de multiples projets
  • gestion de contrôles d'accès flexible
  • diagramme de gant et calendrier
  • news, documents et gestion de fichiers
  • email notifications
  • wiki et forum par projet
  • gestion du temps
  • gestion SCM (SVN, CVS, Git, Mercurial, Bazaar and Darcs)
  • LDAP authentification
  • Multilangue
  • support MySQL, PostgreSQL, SLQLite
  • installation de plusieurs instances possible sur le même coeur

Installation

Depuis la sortie de la Debian Squeeze, Redmine est empaqueté officiellement dans les dépôts. On va donc utiliser la méthode Debian d'installation.

On va utiliser MySQL comme serveur de bases de données.

On va aussi utiliser le module Apache Passenger qui permet de déployer des applications Ruby.

# apt-get install apache2 mysql-server mysql-client libapache2-mod-passenger librmagick-ruby1.8
# apt-get install redmine redmine-mysql

Lors de l'installation des questions seront posées sur l'installation et la création d'une instance par défaut.

 

Création des instances

L'installation de base crée une instance appelée default. Le but ici est de créer deux instances entreprise1 et entreprise2 :

# dpkg-reconfigure redmine

A la première question, remplacer default par : "entreprise1 entreprise2" puis installer les bases, avec de préférences un utilisateur mysql différent de root.

On a donc maintenant deux instances, les fichiers de configuration se trouvent dans /etc/redmine/instance/, on y retrouve les fichiers suivant :

database.yml

Ce fichier défini les paramètres de connexion à la base de données :

production:
adapter: mysql
database: redmine_entreprise1
host: localhost
port:
username: red_ent1
password: azerty
encoding: utf8

 

session.yml

Fichier de gestion des sessions.

 

email.yml

Ce fichier n'existe pas par défaut mais est nécessaire. Il dois contenir les informations pour la gestion des mails de l'instance  (attention l'indentation est importante) :

production:
  delivery_method: :smtp
  smtp_settings:
    address: smtp.domaine.tld
    port: 25
    domain: domaine.tld

On peut trouver une version plus complète dans le répertoire /usr/share/redmine/config/.

 

Configuration d'Apache et Passenger

vhost Apache

Les instances seront accessibles via l'url : redmine.entreprise1.net. On crée un fichier dans /etc/apache2/sites-available :

<VirtualHost *:80>
ServerName redmine.entreprise1.net

# Passenger configuration
RailsEnv production
SetEnv X_DEBIAN_SITEID "entreprise1"
PassengerAppRoot /var/lib/redmine/entreprise1/passenger
Alias "/plugin_assets/" /var/cache/redmine/entreprise1/plugin_assets/
DocumentRoot /usr/share/redmine/public
<Directory "/usr/share/redmine/public">
Order allow,deny
Allow from all
</Directory>
</VirtualHost>

 

Configuration de passenger

Si on ne crée pas les liens suivant une seule instance sera utilisée par tout les vhosts et on se retrouve alors avec des incohérences complètes. Il faut donc faire ceci pour chaque instance :

# cd /var/lib/redmine/entreprise1
# ln -s /usr/share/redmine passenger

 

On peut maintenant activer les vhosts et accéder aux instances. Le login et mot de passe par défaut sont admin/admin.

 

Reste plus qu'à :

  • configurer l'instance
  • créer les utilisateurs
  • créer les projets