Introduction
Redmine est un outil de gestion de projet Open Source très populaire dans le monde du développement informatique.
Plus de dix ans après sa sortie (2006), sa popularité est telle qu'il est aujourd'hui disponible dans 34 langues et dispose de milliers d'utilisateurs dans le monde entier.
La dernière mise à jour importante réalisée pour les dix ans de Redmine en 2006 a apporté plus de 100 nouveautés
Fonctionnement de Redmine
Redmine est un logiciel de gestion de projet en ligne Open Source (libre). Son utilisation est donc gratuite, mais il revient à l'utilisateur d'héberger et d'installer redmine sur un serveur (apache par exemple) pour qu'il puisse être accessible par tous les membres d'une équipe projet.
Redmine offre les fonctionnalités suivantes :
- Multi-projets : il est possible de créer plusieurs projets en parallèle et de les gérer de manière indépendante
- Contrôle flexible des accès des utilisateurs redmine : chaque compte utilisateur dispose d'un ou plusieurs rôle(s) (administrateur, accès restreint, utilisateur). L'administrateur attribue des droits spécifiques à chacun d'eux pour contrôler les accès de chacun
- Système de tracking des demandes flexible : l'intégralité du suivi des demandes est personnalisable.
- Graphique de Gantt et rapports personnalisés permettent de visualiser l'avancement des projets
- Fil d'actualités, gestion documentaire et gestion de fichiers de suivi de projet
- Flux d'informations et notifications par email
- Gestion du savoir : un wiki permet de rédiger de la documentation technique par projet
- Forum de discussion par projet
- Time tracking / suivi des temps et des activités
- Personnalisation des champs des demandes, des projets et des utilisateurs
- Intégrations à SVN, CVS, Git, Mercurial, Bazaar et Darcs
- Authentifications LDAP multiples
- Support de plusieurs bases de données
La navigation dans Redmine online se fait simplement via un moteur de recherche et 13 onglets :
- Le moteur de recherche permet de trouver des demandes (tickets), des documents de suivi de projet, des annonces, des wikis et tout autre contenu. Pour accéder directement à un ticket connu, il suffit de chercher “#” suivi du numéro de la demande
- L'onglet Aperçu détaille la description et les responsables du projet
- L'onglet Activité est un fil d'actualités à la manière de Facebook. Il permet de suivre l'évolution des tâches en cours
- L'onglet Roadmap détaille pour chaque version du produit en développement la consommation des tâches et les éventuels retards
- L'onglet Demandes est une liste de toutes les demandes. Cette liste est totalement personnalisable avec des tris, filtres et des champs personnalisés. Il est possible de créer autant de listes qu'on le souhaite et d'en partager certaines avec ses collaborateurs
- L'onglet Nouvelle demande permet de créer un nouveau ticket. En plus des champs classiques (nom, description, pièces jointes, catégorie, tickets parents et tickets liés) il est possible d'ajouter autant de champs qu'on le souhaite dans l'onglet Configuration. On peut le considérer comme un outil de ticketing gratuit.
- L'onglet dans Redmine Gantt est un diagramme de Gantt dynamique en fonction des filtres et tris mis en place
- L'onglet Calendrier est un agenda des demandes en cours de traitement
- L'onglet Documents est un espace de gestion documentaire. Il est possible d'y ajouter des documents stockés sur son ordinateur. Cette fonction est un outil d'appoint qui ne remplace pas un service comme Dropbox ou Google Drive
- L'onglet Wiki est un espace de gestion du savoir très utile indexé dans la recherche de Redmine. Cette fonction est particulièrement utile pour rédiger de la documentation technique ou des bonnes pratiques à partager en interne
- L'onglet Configuration permet de personnaliser tous les onglets précédents ainsi que les paramètres du projet : utilisateurs, catégories, versions du produit, droits et rôles, etc.
Installation de la plateforme
Pre Installation
L'installation de Redmine sera réalisé sur une Debian 10.
- OS Server : Debian 10
- CPU : 2 Vcpu
- RAM : 4 Go RAM
- DD : 40 Go
Mettre à jour le système
Pour commencer, assurez-vous que vos packages système sont à jour.
[root@serv ]# apt update
Installer les Build tools requis et les dépendances
Pour installer Redmine à partir du code source, vous devez installer les Build tools et les dépendances requises.
[root@serv ]# apt install build-essential ruby-dev libxslt1-dev libmariadb-dev libxml2-dev zlib1g-dev imagemagick libmagickwand-dev curl vim sudo
Installer MariaDB
[root@serv ]# apt install mariadb-server mariadb-client
Créer une base de données Redmine et un utilisateur de base de données Une fois MariaDB installé, connectez-vous en tant qu'utilisateur root et créez la base de données Redmine et l'utilisateur de la base de données. Remplacez les noms de la base de données et de l'utilisateur de la base de données en conséquence.
[root@serv ]# mysql -u root mysql > CREATE DATABASE redminedb CHARACTER SET utf8mb4 COLLATE = utf8mb4_unicode_ci; mysql > grant all on redminedb.* to redmineuser@localhost identified by 'P@ssW0rD'; #### Reload privilege tables and exit the database. mysql > flush privileges; mysql > quit
Install Apache HTTP Server
Redmine est une application Web et vous devez donc installer un serveur Web pour y accéder.
[root@serv ]# apt install apache2
Ensuite, installez les modules Apache pour Passenger, le serveur Web léger pour Ruby.
[root@serv ]# apt install libapache2-mod-passenger
La commande ci-dessus installera également d'autres dépendances requises, y compris Ruby.
[root@serv ]# ruby -v ruby 2.5.5p157 (2019-03-15 revision 67260) [x86_64-linux-gnu]
Démarrez et activez Apache pour qu'il s'exécute au démarrage du système.
[root@serv ]# systemctl enable --now apache2
Installation de Redmine
Créer un utilisateur système Redmine
Lors de l'installation des dépendances de Ruby, vous devez exécuter la commande bundler en tant qu'utilisateur non root avec les privilèges sudo. Par conséquent, créez un utilisateur Redmine affecté au répertoire d’installation de Redmine, /opt/redmine en tant que répertoire home.
[root@serv ]# useradd -r -m -d /opt/redmine -s /bin/bash redmine
Ajoutez l'utilisateur Apache au groupe Redmine.
[root@serv ]# usermod -aG redmine www-data
Téléchargez et installez Redmine
Redmine v4.1.1 est la dernière version à ce jour. Naviguez sur la page des versions de Redmine et récupérez l’archive Redmine. Vous pouvez simplement le télécharger en exécutant la commande ci-dessous.
[root@serv ]# apt install wget [root@serv ]# wget http://www.redmine.org/releases/redmine-4.0.5.tar.gz -P /tmp/
Extrayez l'archive Redmine dans le répertoire Redmine.
[root@serv ]# sudo -u redmine tar xzf /tmp/redmine-4.0.5.tar.gz -C /opt/redmine/ --strip-components=1
Configuration de Redmine
Une fois que vous avez installé Redmine dans le répertoire /opt/redmine, vous pouvez maintenant procéder à sa configuration.
Créez le fichier de configuration Redmine en renommant les exemples de fichiers de configuration comme indiqué ci-dessous:
[root@serv ]# su - redmine
[redmine@serv ]# cp /opt/redmine/config/configuration.yml{.example,}
[redmine@serv ]# cp /opt/redmine/public/dispatch.fcgi{.example,}
[redmine@serv ]# cp /opt/redmine/config/database.yml{.example,}
Configurer les paramètres de la base de données
Ouvrez le paramètre de configuration de la base de données Redmine créé et définissez les détails de connexion à la base de données Redmine pour MySQL.
[root@serv ]# nano /opt/redmine/config/database.yml ... production: adapter: mysql2 database: redminedb host: localhost username: redmineuser password: "P@ssW0rD" encoding: utf8mb4 ...
Installez Bundler pour gérer les dépendances gem
[root@serv ]# gem install bundler
Ensuite, installez les dépendances gems requises en tant qu’utilisateur redmine non privilégié.
[root@serv ]# su - redmine
[redmine@serv ]# bundle install --without development test --path vendor/bundle
Installer les dépendances de Redmine Ruby
Quittez l'utilisateur Redmine en appuyant sur Ctlr + D et, en tant qu'utilisateur root, accédez au répertoire d'installation de Redmine et installez les dépendances Ruby.
[root@serv ]# cd /opt/redmine
Générer un jeton de session secret
Pour empêcher la modération des cookies stockant les données de session, vous devez générer une clé secrète aléatoire que Rails utilise pour les coder.
[root@serv ]# bundle exec rake generate_secret_token
Créer des objets de schéma de base de données
Créez la structure de la base de données Rails en exécutant la commande ci-dessous ;
[root@serv ]# RAILS_ENV=production bundle exec rake db:migrate
Une fois la migration de la base de données terminée, insérez les données de configuration par défaut dans la base de données en exécutant:
[root@serv ]# RAILS_ENV=production REDMINE_LANG=en bundle exec rake redmine:load_default_data
Configure FileSystem Permissions
Assurez-vous que les répertoires suivants sont disponibles dans le répertoire Redmine, /opt/redmine.
- tmp and tmp/pdf
- public and public/plugin_assets
- log
- files
S'ils n'existent pas, créez-les simplement et assurez-vous qu'ils appartiennent à l'utilisateur utilisé pour exécuter Redmine.
[root@serv ]# for i in tmp tmp/pdf public/plugin_assets; do [ -d $i ] || mkdir -p $i; done [root@serv ]# chown -R redmine:redmine files log tmp public/plugin_assets [root@serv ]# chmod -R 755 /opt/redmine
Configurer vhosts Apache
Créez le fichier de configuration Redmine Apache VirtualHost.
[root@serv ]# nano /etc/apache2/sites-available/redmine.conf
...
<VirtualHost *:80>
ServerName redmine.example.com
RailsEnv production
DocumentRoot /opt/redmine/public
<Directory "/opt/redmine/public">
Allow from all
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/redmine_error.log
CustomLog ${APACHE_LOG_DIR}/redmine_access.log combined
</VirtualHost>
Vérifiez la configuration d'Apache pour les erreurs.
[root@serv ]# apachectl configtest Syntax OK
Assurez-vous que le module Passager est chargé:
[root@serv ]# apache2ctl -M | grep -i passenger passenger_module (shared)
S'il n'est pas activé, exécutez la commande ci-dessous pour l'activer.
[root@serv ]# a2enmod passenger Enable Redmine site.
Active le vhosts Redmine
[root@serv ]# a2ensite redmine Enabling site redmine.
Pour activer la nouvelle configuration, vous devez lancer :
[root@serv ]# systemctl reload apache2
Finalisation de l'installation
Une fois toutes les opérations de configuration réalisées, rendez-vous sur l'adresse de votre VHOST : "http://<FQDN>"
Vous devriez avoir accès à l'interface de Redmine
Authentifiez-vous avec les accès suivants : “Login : admin / Password : admin”
Vous allez lors de la première aithentification modifier le mot de passe
Vous voici connecté à une nouvelle instance de Redmine !
Administration de la plateforme
Mise à jour de la plateforme
Annexe
https://luisblasco.com/en/free-redmine-plugins
https://nunothemes.com/redmine-theme
https://bestredminetheme.com/zenmine
https://bestredminetheme.com/boostmine
https://www.redmineup.com/pages/themes/highrise
https://www.redmineup.com/pages/themes/a1
https://www.redmineup.com/pages/themes/circle
https://www.redmine.org/projects/redmine/wiki/FrGuide
http://redmine-git-hosting.io/features/
Plugins
https://github.com/AlphaNodes/redmine_privacy_terms
https://www.redmine.org/plugins/redmine_git_mirror
http://rmplus.pro/en/redmine/plugins/custom_menu
http://rmplus.pro/en/redmine/plugins/user_mentions
https://www.redmine.org/projects/redmine/wiki/HowTo_Easily_integrate_a_(SSH_secured)_GIT_repository_into_redmine