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.
Dans ce didacticiel, nous allons vous montrer comment installer et configurer la dernière version de Redmine sur un serveur Debian 9 en utilisant MySQL comme back-end de base de données et Passenger + Nginx comme serveur d'application Ruby.
Prérequis #
Assurez-vous que vous avez satisfait aux prérequis suivants avant de poursuivre ce didacticiel :
- Avoir un nom de domaine pointant vers l'adresse IP publique de votre serveur. Nous utiliserons
example.com
. - Connecté en tant qu'utilisateur avec des privilèges sudo.
- Avoir installé Nginx.
- Ayez installé un certificat SSL pour votre domaine.
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. Assurez-vous d'avoir au moins MySQL 5.7 ou MariaDB 10.3 installé sur votre machine.
Si MariaDB ou MySQL n'est pas installé sur votre serveur Debian, vous pouvez l'installer en suivant ces instructions.
Commencez par vous connecter à la console MySQL en tapant :
sudo mysql
Exécutez l'instruction SQL suivante pour créer une nouvelle base de données :
CREATE DATABASE redmine CHARACTER SET utf8mb4;
Créez un nouveau compte utilisateur MySQL et accordez l'accès à la base de données :
GRANT ALL ON redmine.* TO 'redmine'@'localhost' IDENTIFIED BY 'change-with-strong-password';
N'oubliez pas de modifier change-with-strong-password
avec un mot de passe fort. Une fois cela fait, déconnectez-vous de la console MariaDB en tapant :
EXIT;
Installation de Ruby #
Le moyen le plus simple d'installer Ruby sur Debian est d'utiliser le apt
gestionnaire de paquets :
Installez Ruby en tapant :
sudo apt install ruby-full
Au moment de la rédaction, la version dans les dépôts Debian est 2.3.3p222
qui est pris en charge par la dernière version de Redmine.
Si vous souhaitez installer Ruby via Rbenv ou RVM, visitez ce tutoriel.
Installation de Passenger et Nginx #
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 Nginx.
Assurez-vous que Nginx est installé avant de poursuivre avec les étapes suivantes.
Installation des packages nécessaires pour activer un référentiel https :
sudo apt install dirmngr gnupg apt-transport-https ca-certificates software-properties-common
Importez la clé GPG du référentiel et activez le référentiel Phusionpassenger :
sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 561F9B9CAC40B2F7
sudo add-apt-repository 'deb https://oss-binaries.phusionpassenger.com/apt/passenger stretch main'
Mettez à jour la liste des packages et installez le module Passenger Nginx avec :
sudo apt update
sudo apt install libnginx-mod-http-passenger
Installer Redmine sur Debian #
Commencez par installer les dépendances nécessaires pour compiler Redmine :
sudo apt install build-essential libmariadbclient-dev imagemagick libmagickwand-dev curl ruby-dev libxslt-dev libxml2-dev zlib1g-dev
Au moment de la rédaction de cet article, la dernière version stable de Redmine est la version 4.0.4.
Avant de passer à l'étape suivante, vous devriez vérifier la page de téléchargement de Redmine pour une version plus récente.
1. Téléchargement de Redmine #
Téléchargez l'archive Redmine à l'aide de la commande curl suivante :
sudo curl -L http://www.redmine.org/releases/redmine-4.0.4.tar.gz -o /tmp/redmine.tar.gz
Une fois le téléchargement terminé, extrayez l'archive et déplacez-la vers /opt
répertoire :
cd /tmp
sudo tar zxf /tmp/redmine.tar.gz
sudo mv /tmp/redmine-4.0.4 /opt/redmine
2. Configuration de la base de données Redmine #
Copiez le fichier de configuration de l'exemple Redmine :
sudo cp /opt/redmine/config/database.yml.example /opt/redmine/config/database.yml
Ouvrez le fichier avec votre éditeur de texte :
sudo nano /opt/redmine/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: utf8
Une fois terminé, enregistrez le fichier et quittez l'éditeur.
3. Installation des dépendances Ruby #
Accédez au répertoire redmine et installez le bundler et les autres dépendances Ruby :
cd /opt/redmine/
sudo gem install bundler --no-rdoc --no-ri
sudo bundle install --without development test postgresql sqlite
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 :
cd /opt/redmine/
sudo bundle exec rake generate_secret_token
sudo RAILS_ENV=production bundle exec rake db:migrate
5. Définissez le numéro d'autorisation correct
Nginx s'exécute en tant que www-data
utilisateur et groupe. Définissez les autorisations correctes en exécutant la commande chown suivante :
sudo chown -R www-data: /opt/redmine/
Configurer Nginx #
À présent, vous devriez déjà avoir Nginx avec certificat SSL installé sur votre système, sinon vérifiez les prérequis pour ce tutoriel.
Ouvrez votre éditeur de texte et créez le fichier de blocage du serveur Nginx suivant :
sudo nano /etc/nginx/sites-available/example.com
/etc/nginx/sites-available/example.com# Redirect HTTP -> HTTPS
server {
listen 80;
server_name www.example.com example.com;
include snippets/letsencrypt.conf;
return 301 https://example.com$request_uri;
}
# Redirect WWW -> NON WWW
server {
listen 443 ssl http2;
server_name www.example.com;
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem;
include snippets/ssl.conf;
return 301 https://example.com$request_uri;
}
server {
listen 443 ssl http2;
server_name example.com;
root /opt/redmine/public;
# SSL parameters
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem;
include snippets/ssl.conf;
include snippets/letsencrypt.conf;
# log files
access_log /var/log/nginx/example.com.access.log;
error_log /var/log/nginx/example.com.error.log;
passenger_enabled on;
passenger_min_instances 1;
client_max_body_size 10m;
}
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. Les extraits utilisés dans cette configuration sont créés dans ce guide.
Activez le bloc serveur en créant un lien symbolique vers le sites-enabled
répertoire :
sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
Avant de redémarrer le service Nginx faites un test pour vous assurer qu'il n'y a pas d'erreurs de syntaxe :
sudo nginx -t
S'il n'y a pas d'erreurs, la sortie devrait ressembler à ceci :
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Enfin, redémarrez le service Nginx en tapant :
sudo systemctl restart nginx
Accéder à Redmine #
Ouvrez votre navigateur, tapez votre domaine et en supposant que l'installation est réussie, un écran similaire au suivant apparaîtra :
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.