Redmine est l'un des outils logiciels open source de gestion de projet et de suivi des problèmes les plus populaires. 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 décrit comment installer et configurer la dernière version de Redmine sur un serveur Ubuntu 18.04 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 :
- Vous avez un nom de domaine pointant vers l'IP publique de votre serveur. Dans ce tutoriel, nous utiliserons
example.com
. - Vous êtes connecté en tant qu'utilisateur avec des privilèges sudo.
- Vous avez installé Nginx en suivant ces instructions.
- Vous avez installé un certificat SSL pour votre domaine. Vous pouvez installer un certificat SSL Let's Encrypt gratuit en suivant ces instructions.
Création de la base de données MySQL #
Redmine prend en charge MySQL/MariaDB, Microsoft SQL Server, SQLite 3 et PostgreSQL. Dans ce didacticiel, nous utiliserons MySQL comme back-end de base de données.
Si MySQL n'est pas déjà installé sur votre serveur Ubuntu, vous pouvez l'installer en suivant ces instructions.
Connectez-vous au shell MySQL en tapant la commande suivante :
sudo mysql
Depuis le shell MySQL, exécutez l'instruction SQL suivante pour créer une nouvelle base de données :
CREATE DATABASE redmine CHARACTER SET utf8mb4;
Ensuite, créez un 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';
Assurez-vous de modifier change-with-strong-password
avec un mot de passe fort. Une fois cela fait, quittez la console mysql en tapant :
EXIT;
Installation de Ruby #
Le moyen le plus simple d'installer Ruby sur votre système Ubuntu consiste à utiliser apt
directeur chargé d'emballage. Au moment de la rédaction, la version dans les référentiels Ubuntu est 2.5.1 qui est la dernière version stable de Ruby.
Installez Ruby en tapant :
sudo apt install ruby-full
Si vous souhaitez installer Ruby via Rbenv ou RVM, consultez ce guide.
Installation de Passenger et Nginx #
Passengerest 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 d'avoir suivi les prérequis et d'avoir installé Nginx avant de passer aux étapes suivantes.
Commencez par installer les packages nécessaires :
sudo apt install dirmngr gnupg apt-transport-https ca-certificates
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 bionic main'
Une fois le dépôt apt activé, 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 Ubuntu #
Nous allons commencer par installer les dépendances nécessaires pour compiler Redmine :
sudo apt install build-essential libmysqlclient-dev imagemagick libmagickwand-dev
Au moment de la rédaction de cet article, la dernière version stable de Redmine est la version 4.0.0.
Avant de passer à l'étape suivante, vous devez vérifier la page de téléchargement de Redmine pour voir si une version plus récente est disponible.
1. Téléchargement de Redmine #
Téléchargez l'archive Redmine avec la commande curl suivante :
sudo curl -L http://www.redmine.org/releases/redmine-4.0.0.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.0 /opt/redmine
2. Configuration de la base de données Redmine #
Commencez par copier l'exemple de fichier de configuration 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
Lors de votre première connexion, 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.