Comment installer et configurer Redmine sur CentOS
Redmine est un système de gestion de projet et de suivi des problèmes gratuit, open source et populaire. Il prend en charge les bases de données PostgreSQL et MariaDB et est construit sur le framework Ruby on Rails. Il prend en charge les plugins tiers intégrés, vous permettant de configurer plusieurs projets, wikis et forums. Il offre un large éventail de fonctionnalités, notamment les notifications par e-mail et flux, la prise en charge de plusieurs langues, le contrôle d'accès basé sur les rôles, la gestion des fichiers, etc.
Ce tutoriel expliquera comment installer le système de gestion de projet Redmine sur CentOS.
Conditions préalables
- Un serveur exécutant CentOS 8.
- Un mot de passe root est configuré sur le serveur.
Installer les dépendances requises
Avant de commencer, vous devrez installer quelques dépendances sur votre serveur. Vous pouvez tous les installer à l'aide de la commande suivante :
dnf group install "Development Tools"
dnf install zlib-devel curl-devel openssl-devel -y
Une fois tous les packages installés, vous pouvez passer à l'étape suivante.
Installer et configurer la base de données MariaDB
Redmine utilise MariaDB comme backend de base de données, vous devrez donc installer le serveur de base de données MariaDB sur votre serveur. Vous pouvez l'installer à l'aide de la commande suivante :
dnf install mariadb-server mariadb-devel -y
Une fois le serveur MariaDB installé, démarrez le service MariaDB et activez-le pour démarrer au redémarrage du système :
systemctl start mariadb
systemctl enable mariadb
Ensuite, connectez-vous au shell MariaDB avec la commande suivante :
mysql
Une fois connecté, créez une base de données et un utilisateur pour Redmine avec la commande suivante :
MariaDB [(none)]> CREATE DATABASE redmine CHARACTER SET utf8mb4;
MariaDB [(none)]> GRANT ALL PRIVILEGES ON redmine.* TO 'redmine'@'localhost' IDENTIFIED BY 'password';
Ensuite, videz les privilèges et quittez MariaDB avec la commande suivante :
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> EXIT;
Une fois que vous avez terminé, vous pouvez passer à l'étape suivante.
Installer Ruby et Passenger
Ensuite, vous devrez installer Ruby et Passenger sur votre système.
Tout d’abord, installez et activez le dépôt EPEL avec la commande suivante :
dnf install epel-release -y
dnf config-manager --enable epel -y
Ensuite, installez Ruby et Passenger à l'aide de la commande suivante :
dnf install mod_passenger passenger passenger-devel ruby ruby-devel -y
Une fois tous les packages installés, vous pouvez passer à l'étape suivante.
Installer Redmine
Tout d’abord, vous devrez créer un utilisateur distinct pour Redmine. Vous pouvez le créer avec la commande suivante :
useradd -m -U -r -d /opt/redmine redmine
Ensuite, connectez-vous à l'utilisateur Redmine et téléchargez la dernière version de Redmine avec la commande suivante :
su - redmine
wget --no-check-certificate https://www.redmine.org/releases/redmine-4.2.1.zip
Une fois le téléchargement terminé, décompressez le fichier téléchargé avec la commande suivante :
unzip redmine-4.2.1.zip
Ensuite, renommez le répertoire extrait avec la commande suivante :
mv redmine-4.2.1 redmine
Ensuite, changez le répertoire en Redmine et copiez l'exemple de fichier de configuration de la base de données :
cd redmine
cp config/database.yml.example config/database.yml
Ensuite, modifiez le fichier de configuration de la base de données et définissez les paramètres de votre base de données :
nano config/database.yml
Modifiez les lignes suivantes qui correspondent à votre base de données :
production:
adapter: mysql2
database: redmine
host: localhost
username: redmine
password: "password"
encoding: utf8mb4
Enregistrez et fermez le fichier puis installez le Bundler avec la commande suivante :
gem install bundler --no-rdoc --no-ri
Ensuite, installez les autres dépendances avec la commande suivante :
bundle install --without development test postgresql sqlite --path vendor/bundle
Ensuite, générez un jeton secret avec la commande suivante :
bundle exec rake generate_secret_token
Ensuite, générez les objets de base de données nécessaires à l'application à l'aide de la commande suivante :
RAILS_ENV=production bundle exec rake db:migrate
Enfin, démarrez l'application avec la commande suivante :
bundle exec rails server webrick -e production
Vous devriez voir le résultat suivant :
/usr/bin/ruby: warning: shebang line ending with \r may cause problems
=> Booting WEBrick
=> Rails 5.2.5 application starting in production on http://0.0.0.0:3000
=> Run `rails server -h` for more startup options
[2021-06-24 00:40:15] INFO WEBrick 1.4.2
[2021-06-24 00:40:15] INFO ruby 2.5.5 (2019-03-15) [x86_64-linux]
[2021-06-24 00:40:15] INFO WEBrick::HTTPServer#start: pid=43076 port=3000
Appuyez sur CTRL + C pour arrêter l'application.
Ensuite, quittez l'utilisateur Redmine avec la commande suivante :
exit
Créer un fichier de service Systemd pour Redmine
Ensuite, vous devrez créer un fichier de service systemd pour gérer l'application Redmine. Vous pouvez le créer avec la commande suivante :
nano /usr/lib/systemd/system/redmine.service
Ajoutez les lignes suivantes :
[Unit]
Description=Redmine server
After=syslog.target
After=network.target
[Service]
Type=simple
User=redmine
Group=redmine
ExecStart=/bin/ruby /opt/redmine/redmine/bin/rails server webrick -e production
# Give a reasonable amount of time for the server to start up/shut down
TimeoutSec=300
[Install]
WantedBy=multi-user.target
Enregistrez et fermez le fichier puis rechargez le démon systemd avec la commande suivante :
systemctl daemon-reload
Ensuite, démarrez le service Redmine et activez-le pour démarrer au redémarrage du système :
systemctl start redmine
systemctl enable redmine
Maintenant, vérifiez l'état du Redmine avec la commande suivante :
systemctl status redmine
Vous devriez voir le résultat suivant :
? redmine.service - Redmine server
Loaded: loaded (/usr/lib/systemd/system/redmine.service; disabled; vendor preset: disabled)
Active: active (running) since Thu 2021-06-24 04:26:51 EDT; 1min 37s ago
Main PID: 44044 (ruby)
Tasks: 3 (limit: 25014)
Memory: 121.6M
CGroup: /system.slice/redmine.service
??44044 /bin/ruby /opt/redmine/redmine/bin/rails server webrick -e production
Jun 24 04:26:51 centos8 systemd[1]: Started Redmine server.
Jun 24 04:26:52 centos8 ruby[44044]: /bin/ruby: warning: shebang line ending with \r may cause problems
Jun 24 04:26:56 centos8 ruby[44044]: [2021-06-24 04:26:56] INFO WEBrick 1.4.2
Jun 24 04:26:56 centos8 ruby[44044]: [2021-06-24 04:26:56] INFO ruby 2.5.5 (2019-03-15) [x86_64-linux]
Jun 24 04:26:56 centos8 ruby[44044]: [2021-06-24 04:26:56] INFO WEBrick::HTTPServer#start: pid=44044 port=3000
À ce stade, Redmine est démarré et écoute sur le port 3000. Vous pouvez le vérifier avec la commande suivante :
ss -antpl | grep 3000
Vous devriez obtenir le résultat suivant :
LISTEN 0 128 0.0.0.0:3000 0.0.0.0:* users:(("ruby",pid=44044,fd=9))
Configurer Nginx comme proxy inverse pour Redmine
Ensuite, vous devrez installer et configurer Nginx comme proxy inverse pour Redmine. Tout d'abord, installez le serveur Nginx avec la commande suivante :
dnf install nginx -y
Ensuite, créez un fichier de configuration d'hôte virtuel Nginx avec la commande suivante :
nano /etc/nginx/conf.d/redmine.conf
Ajoutez les lignes suivantes :
upstream backend {
server 127.0.0.1:3000;
}
server {
listen 80;
server_name redmine.example.com;
access_log /var/log/nginx/redmine.example.com-access.log;
error_log /var/log/nginx/redmine.example.com-error.log;
location / {
proxy_pass http://backend/;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forward-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forward-Proto http;
proxy_set_header X-Nginx-Proxy true;
proxy_redirect off;
}
}
Enregistrez et fermez le fichier, puis vérifiez Nginx pour toute erreur de syntaxe avec la commande suivante :
nginx -t
Vous devriez obtenir le résultat suivant :
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Ensuite, démarrez le service Nginx et activez-le pour démarrer au redémarrage du système :
systemctl start nginx
systemctl enable nginx
Vous pouvez également vérifier l'état de Nginx avec la commande suivante :
systemctl status nginx
Vous devriez obtenir le résultat suivant :
? nginx.service - The nginx HTTP and reverse proxy server
Loaded: loaded (/usr/lib/systemd/system/nginx.service; disabled; vendor preset: disabled)
Drop-In: /usr/lib/systemd/system/nginx.service.d
??php-fpm.conf
Active: active (running) since Thu 2021-06-24 04:33:48 EDT; 25s ago
Process: 45832 ExecStart=/usr/sbin/nginx (code=exited, status=0/SUCCESS)
Process: 45830 ExecStartPre=/usr/sbin/nginx -t (code=exited, status=0/SUCCESS)
Process: 45828 ExecStartPre=/usr/bin/rm -f /run/nginx.pid (code=exited, status=0/SUCCESS)
Main PID: 45833 (nginx)
Tasks: 3 (limit: 25014)
Memory: 5.3M
CGroup: /system.slice/nginx.service
??45833 nginx: master process /usr/sbin/nginx
??45834 nginx: worker process
??45835 nginx: worker process
Jun 24 04:33:48 centos8 systemd[1]: Starting The nginx HTTP and reverse proxy server...
Jun 24 04:33:48 centos8 nginx[45830]: nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
Jun 24 04:33:48 centos8 nginx[45830]: nginx: configuration file /etc/nginx/nginx.conf test is successful
Jun 24 04:33:48 centos8 systemd[1]: Started The nginx HTTP and reverse proxy server.
Accéder à Redmine
Vous pouvez désormais accéder à l'interface Web de Redmine en utilisant l'URL http://redmine.example.com. Vous devriez voir la page suivante :
Cliquez sur le bouton Connexion. Vous devriez voir la page de connexion de Redmine :
Fournissez l'utilisateur et le mot de passe par défaut en tant qu'administrateur, puis cliquez sur le bouton Connexion . Vous serez redirigé vers l'écran de modification du mot de passe :
Définissez votre nouveau mot de passe administrateur et cliquez sur le bouton Enregistrer pour enregistrer les modifications.
Conclusion
Toutes nos félicitations! Vous avez installé avec succès Redmine sur CentOS 8 avec Nginx. Vous pouvez désormais utiliser Redmine dans votre organisation et gérer votre projet depuis un emplacement central.