Actus Circuit Libre
Posté le
⚙️ Hébergement

Redmine : Installation sur Ubuntu 26.04

Auteur
Redmine : Installation sur Ubuntu 26.04

Redmine est un outil libre de gestion et de suivi de projets particulièrement adapté aux équipes techniques et aux organisations souhaitant centraliser leurs activités.

Il permet de planifier les tâches, suivre l'avancement des projets, gérer les tickets d'incidents ou de demandes, partager la documentation et faciliter la collaboration entre les différents intervenants.

Accessible via une interface web et dispisant de nombreuses fonctionnalités (gestion des rôles, diagrammes de Gantt, suivi du temps, wiki, forums, etc.), Redmine constitue une solution complète pour piloter efficacement des projets de toutes tailles.

Voici comment je l'installe sur Ubuntu 26.04.

Installation des dépendances

# update et upgrade
sudo apt update && sudo apt upgrade -y

# paquets requis
sudo apt install -y \
            ruby3.2 \
            ruby3.2-dev \
            rails \
            nginx \
            build-essential \
            mysql-server \
            libmysqlclient-dev \
            ruby-mysql2 \
            zlib1g-dev \
            libyaml-dev

Télécharger et installer Redmine

# Télécharger et décompresser dans /opt
wget https://www.redmine.org/releases/redmine-6.0.6.tar.gz
cd /opt/
sudo tar -xvzf ~/redmine-6.0.6.tar.gz

# symlink pour retirer la version
sudo ln -s redmine-6.0.6/ redmine

Configuration de la base de données

Entrer dans l'environnement mySQL : sudo mysql

CREATE DATABASE redmine CHARACTER SET utf8mb4;
CREATE USER 'redmine'@'localhost' IDENTIFIED BY 'secretPassword';
GRANT ALL PRIVILEGES ON redmine.* TO 'redmine'@'localhost';
FLUSH PRIVILEGES;

Copier puis éditer le fichier database.yml

sudo cp config/database.yml.example config/database.yml
sudo vim config/database.yml
production:
  adapter: mysql2
  database: redmine
  host: localhost
  username: redmine
  password: "secretPassword" 
  # Use "utf8" instead of "utfmb4" for MySQL prior to 5.7.7
  encoding: utf8mb4

Installer les dépendances Ruby

# installer bundler
sudo gem install bundler

# installer le bundle de Redmine
sudo bundle install

!!warn Un bon nombre de gems peuvent ne pas être accessible, ou manquer de dépendances, affichant une série d'erreurs. !!

Il est alors nécessaire d'installer manuellement chaque gem et d'identifier les potentiels manques. Exemple : sudo gem install xpath

Installer et configurer Puma

Installer la gem puma

sudo gem install puma

Créer le fichier de config dans config/puma.rb

#!/usr/bin/env puma
directory '/opt/redmine'
rackup '/opt/redmine/config.ru'
bind "unix:///opt/redmine/tmp/sockets/puma.sock"
environment 'production'
pidfile "/opt/redmine/tmp/pids/puma.pid"
state_path "/opt/redmine/tmp/pids/puma.state"
stdout_redirect '/opt/redmine/log/puma.stdout.log', '/opt/redmine/log/puma.stderr.log', true
workers 2
threads 1,6

Créer les répertoires de destination :

# depuis /opt/redmine
sudo mkdir -p tmp/sockets/ tmp/pids log

Tester avec :

sudo bundle exec puma -C config/puma.rb

Optionnel : créer un service pour Puma

Créer le service - Attention socket lancé depuis root

sudo vim /etc/systemd/system/puma.service

[Unit]
Description=Puma HTTP Server for Redmine
After=network.target

[Service]
Type=simple
User=root
WorkingDirectory=/opt/redmine

ExecStart=/usr/local/bin/bundle exec puma -C config/puma.rb

Restart=always
RestartSec=10

StandardOutput=append:/opt/redmine/log/puma.stdout.log
StandardError=append:/opt/redmine/log/puma.stderr.log

[Install]
WantedBy=multi-user.target
# Charger et lancer le service
sudo systemctl daemon-reexec
sudo systemctl daemon-reload
sudo systemctl enable --now puma.service
sudo systemctl status puma

Lancer les scripts Redmine

# générer le secret token
sudo bundle exec rake generate_secret_token

# migrer la base de donnée
sudo RAILS_ENV=production bundle exec rake db:migrate

# charger le répertoire par défaut
sudo RAILS_ENV=production bundle exec rake redmine:load_default_data

# lorsque demandé, choisir la langue fr

Configuration Nginx

# Créer le fichier de configuration
sudo vim /etc/nginx/sites-available/redmine

# Activer la config
sudo ln -s /etc/nginx/sites-available/redmine /etc/nginx/sites-enabled/redmine

# Controller la config
sudo nginx -t

# Redémarrer Nginx
sudo systemctl restart nginx.service

Fichier de conf redmine pour exemple, en écoute sur le port 80

server {
    listen 80;
    server_name IP-or-DNS;

    root /opt/redmine/public;

    access_log /var/log/nginx/redmine.access.log;
    error_log  /var/log/nginx/redmine.error.log;

    location / {
        proxy_pass http://unix:/opt/redmine/tmp/sockets/puma.sock;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;

        client_max_body_size 100M;
    }

    location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ {
        expires max;
        log_not_found off;
    }
}

Accéder à l'application Redmine

Tester l'accès au navigateur avec IP/DNS du serveur, il devrait afficher la page d'accueil.

enter image description here

Se connecter avec admin:admin

!!success Votre instance Redmine est désormais opérationnelle ! !!