
Redmine est une application gratuite et open-source de gestion de projet et de suivi des problèmes. Il est multiplateforme et multibase de données et construit sur le framework Ruby on Rails.
Redmine inclut la prise en charge de plusieurs projets, wikis, système de suivi des problèmes, forums, calendriers, notifications par e-mail et bien plus encore.
Ce tutoriel explique comment installer et configurer la dernière version de Redmine sur CentOS 8. Nous utiliserons MariaDB comme back-end de base de données et Passenger + Apache comme serveur d'application Ruby.
Prérequis #
Assurez-vous que vous remplissez les conditions préalables suivantes :
- Nom de domaine pointant vers l'adresse IP publique de votre serveur.
- Vous êtes connecté en tant que root ou utilisateur avec des privilèges sudo.
Création d'une base de données MySQL #
Redmine prend en charge MySQL/MariaDB, Microsoft SQL Server, SQLite 3 et PostgreSQL. Nous utiliserons MariaDB comme back-end de base de données.
Si MariaDB ou MySQL n'est pas installé sur votre serveur CentOS, vous pouvez l'installer en suivant ces instructions.
Connectez-vous au shell MySQL à l'aide de la commande suivante :
sudo mysql
Depuis le shell MySQL, exécutez les instructions SQL suivantes pour créer une nouvelle base de données, un nouvel utilisateur et accorder à l'utilisateur l'accès à la base de données :
Assurez-vous de modifierCREATE DATABASE redmine CHARACTER SET utf8;
GRANT ALL ON redmine.* TO 'redmine'@'localhost' IDENTIFIED BY 'change-with-strong-password';
change-with-strong-password
avec un mot de passe fort. Une fois cela fait, quittez le shell MySQL :
EXIT;
Installation de Passenger, Apache et Ruby #
Passenger est un serveur d'applications Web rapide et léger pour Ruby, Node.js et Python qui peut être intégré à Apache et Nginx. Nous allons installer Passenger en tant que module Apache.
Activez le référentiel EPEL :
sudo dnf install epel-release
sudo dnf config-manager --enable epel
Une fois le dépôt activé, mettez à jour la liste des packages et installez Ruby, Apache et Passenger :
sudo dnf install httpd mod_passenger passenger passenger-devel ruby
Démarrez le service Apache et activez-le pour qu'il démarre au démarrage :
sudo systemctl enable httpd --now
Création d'un nouveau numéro d'utilisateur système
Créez un nouvel utilisateur et un groupe, avec le répertoire personnel /opt/redmine
qui exécutera l'instance Redmine :
sudo useradd -m -U -r -d /opt/redmine redmine
Ajouter le apache
utilisateur au redmine
groupe et changez le /opt/redmine
les permissions du répertoire pour qu'Apache puisse y accéder :
sudo usermod -a -G redmine apache
sudo chmod 750 /opt/redmine
Installation de Redmine #
Au moment de la rédaction, la dernière version stable de Redmine est la version 4.1.0.
Avant de passer aux étapes suivantes, visitez la page de téléchargement de Redmine pour voir si une version plus récente est disponible.
Installez le compilateur GCC et les bibliothèques nécessaires pour compiler Redmine :
sudo dnf group install "Development Tools"
sudo dnf install zlib-devel curl-devel openssl-devel mariadb-devel ruby-devel
Assurez-vous que vous exécutez les étapes suivantes en tant que redmine
utilisateur :
sudo su - redmine
1. Téléchargement de Redmine #
Téléchargez l'archive Redmine avec curl
:
curl -L http://www.redmine.org/releases/redmine-4.1.0.tar.gz -o redmine.tar.gz
Une fois le téléchargement terminé, extrayez l'archive :
tar -xvf redmine.tar.gz
2. Configuration de la base de données Redmine #
Copiez le fichier de configuration de la base de données d'exemple Redmine :
cp /opt/redmine/redmine-4.1.0/config/database.yml.example /opt/redmine/redmine-4.1.0/config/database.yml
Ouvrez le fichier avec votre éditeur de texte :
nano /opt/redmine/redmine-4.1.0/config/database.yml
Rechercher la production
section et entrez la base de données MySQL et les informations utilisateur que nous avons créées précédemment :
production:
adapter: mysql2
database: redmine
host: localhost
username: redmine
password: "change-with-strong-password"
encoding: utf8mb4
Une fois terminé, enregistrez le fichier et quittez l'éditeur.
3. Installation des dépendances Ruby #
Passer au redmine-4.1.0
répertoire et installez les dépendances Ruby :
cd ~/redmine-4.1.0
gem install bundler --no-rdoc --no-ri
bundle install --without development test postgresql sqlite --path vendor/bundle
4. Générer des clés et migrer la base de données #
Exécutez la commande suivante pour générer des clés et migrer la base de données :
bundle exec rake generate_secret_token
RAILS_ENV=production bundle exec rake db:migrate
Configuration d'Apache #
Revenez à votre utilisateur sudo et créez le vhostfile Apache suivant :
/etc/httpd/conf.d/example.com.confexit
sudo nano /etc/httpd/conf.d/example.com.conf
<VirtualHost *:80>
ServerName example.com
ServerAlias www.example.com
DocumentRoot /opt/redmine/redmine-4.1.0/public
<Directory /opt/redmine/redmine-4.1.0/public>
Options Indexes ExecCGI FollowSymLinks
Require all granted
AllowOverride all
</Directory>
ErrorLog /var/log/httpd/example.com-error.log
CustomLog /var/log/httpd/example.com-access.log combined
</VirtualHost>
N'oubliez pas de remplacer example.com par votre domaine Redmine. Redémarrez le service Apache en tapant :
sudo systemctl restart httpd
Configurer Apache avec SSL #
Si vous ne disposez pas d'un certificat SSL de confiance pour votre domaine, vous pouvez générer un certificat SSL Let's Encrypt gratuit en suivant ces instructions.
Une fois le certificat généré, modifiez la configuration Apache comme suit :
sudo nano /etc/httpd/conf.d/example.com.conf
/etc/httpd/conf.d/example.com.conf<VirtualHost *:80>
ServerName example.com
ServerAlias www.example.com
Redirect permanent / https://example.com/
</VirtualHost>
<VirtualHost *:443>
ServerName example.com
ServerAlias www.example.com
Protocols h2 http/1.1
<If "%{HTTP_HOST} == 'www.example.com'">
Redirect permanent / https://example.com/
</If>
DocumentRoot /opt/redmine/redmine-4.1.0/public
ErrorLog /var/log/httpd/example.com-error.log
CustomLog /var/log/httpd/example.com-access.log combined
SSLEngine On
SSLCertificateFile /etc/letsencrypt/live/example.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem
<Directory /opt/redmine/redmine-4.1.0/public>
Options Indexes ExecCGI FollowSymLinks
Require all granted
AllowOverride all
</Directory>
</VirtualHost>
N'oubliez pas de remplacer example.com par votre domaine Redmine et de définir le chemin correct vers les fichiers de certificat SSL. Toutes les requêtes HTTP seront redirigées vers HTTPS. Accéder à Redmine #
Ouvrez votre navigateur, saisissez votre domaine et, en supposant que l'installation a réussi, un écran semblable à celui-ci apparaît :

Les identifiants de connexion par défaut pour Redmine sont :
- Nom d'utilisateur :admin
- Mot de passe :admin
Lorsque vous vous connectez pour la première fois, vous serez invité à modifier le mot de passe, comme indiqué ci-dessous :

Une fois le mot de passe modifié, vous serez redirigé vers la page du compte utilisateur.
Si vous ne pouvez pas accéder à la page, votre pare-feu bloque probablement les ports Apache.
Utilisez les commandes suivantes pour ouvrir le port nécessaire :
sudo firewall-cmd --permanent --zone=public --add-port=443/tcp
sudo firewall-cmd --permanent --zone=public --add-port=80/tcp
sudo firewall-cmd --reload