Redmine
Contents
-
Redmine
- Requirements
- Installation
- Buster (Debian 10)
-
Installer RVM pour installer et utiliser Redmine
- Introduction
- Prérequis
-
Installation
- Créer un utilisateur Redmine
- Installer RVM
- Préparer la base de données
- Installer Redmine depuis Git
- Configurer Redmine
- Installer Ruby et Gems
- Sélectionner le bon gemset
- Installer les Gems pour Redmine
- RMV et bundler intégration
- Installer Phusion Passenger
- Configurer le VirtualHost
- Phase finale
- Conclusion
- En supplément
Redmine is a flexible project management web application. Written using the Ruby on Rails framework, it is cross-platform and cross-database.
Redmine is open source and released under the terms of the GNU General Public License v2 (GPL).
Requirements
Check the Redmine requirements carefuly, specially if you won't be using PostgreSQL. A few MariaDB and MySQL issues remain open.
Installation
Redmine database and application
This was tested in Debian Stretch (9).
1. Install your database:
apt install postgresql # or mysql-server
2. Install Redmine with support for your database of choice
apt install redmine-pgsql # or redmine-mysql, or redmine-sqlite
This will also install all required dependencies including Ruby libraries, etc.
There will be one or more prompts asking to confirm database configuration via dbconfig-common. The default Yes should be OK unless you are using an external database or want to otherwise manually configure this.
3. Configure the web server
apt install apache2 libapache2-mod-passenger
To use your domain for Redmine only (ie. http://domain.com/):
cp /usr/share/doc/redmine/examples/apache2-passenger-host.conf /etc/apache2/sites-available/redmine.conf
To use the same domain shared with other applications (ie. http://domain.com/redmine):
cp /usr/share/doc/redmine/examples/apache2-passenger-alias.conf /etc/apache2/sites-available/redmine.conf
Edit your configuration file to add your domain name and sysadmin contact information:
edit /etc/apache2/sites-available/redmine.conf
For example:
ServerName exampledomain.com ServerAdmin admin@exampledomain.com
Next:
a2enmod passenger a2ensite redmine.conf a2dissite 000-default service apache2 reload
Alternatively, to use the same domain but a different port, base your config on apache2-passenger-host.conf, then edit apache2.conf to also Listen to <port> and redmine.conf accordingly. In this case disabling 000-default is not required.
4. Log into Redmine at http://<ip>/ with the following default admin account:
username: admin password: admin
SSL certificate
Add the Debian Backports repository
Follow instructions at the Certbot documentation
Differences from upstream Redmine
The Debian redmine package contains a few patches to support running multiple Redmine instances using a single codebase. You manage your instances by using dpkg-reconfigure redmine. This multi-instance support makes some things appear in places that are different from when you are using the upstream redmine:
The application logs are located under /var/log/redmine/${instance}/ (instead of /path/to/redmine/log)
The database configuration is located at /etc/redmine/${instance}/database.yml (instead of /path/to/redmine/config/database.yml)
File attachments are located under /var/lib/redmine/${instance}/files
Plugins should be placed under /usr/share/redmine/plugins. The folder doesn't exist by default and must be created. Don't use /usr/share/redmine/lib/plugins as this result to routing error in the application.
Buster (Debian 10)
Apache 2.4.29
Create /etc/apache2/conf-available/redmine.conf
Example configuration:
Alias /redmine /your_redmine/public <Location /redmine> PassengerBaseURI /redmine PassengerAppRoot /your_redmine/ </Location> <Directory /your_redmine/public> Require all granted Allow from all AllowOverride all RailsBaseURI /redmine RailsEnv production Options -MultiViews </Directory>
# a2enconf redmine # systemctl reload apache2
Installer RVM pour installer et utiliser Redmine
- Ce tutoriel est validé en 2019 sous Debian Stretch 9 AMD64 Stable avec RVM pour une installation de Redmine 4.0.
D'après le tutoriel suivant : https://wiki.visionduweb.fr/index.php?title=Installer_Redmine_sur_Debian_avec_RVM
Introduction
- Pour éviter les problèmes de dépendances liées au différentes versions de Ruby, on décide d’installer un utilitaire qui s’appelle RVM. Il permet de faire coexister plusieurs installations de Ruby sur une même machine, tout en séparant l’installation des gems. RVM permet de pouvoir mettre à jour Ruby facilement.
Prérequis
Créer un domaine fictif dans le cas d'un test sur une machine locale
- # Le domaine fictif permettra de consulter Redmine localement depuis le navigateur. # Ouvrir le fichier /etc/hosts en tant que root. su nano /etc/hosts # Ajouter la deuxième ligne. 127.0.0.1 localhost 127.0.0.1 redmine.fictif.fr
Installer les paquets
- sudo apt-get install mariadb-server libmariadbclient-dev apache2 apache2-dev libapr1-dev libaprutil1-dev libcurl4-gnutls-dev libmagickwand-dev imagemagick build-essential dirmngr curl
Installation
Créer un utilisateur Redmine
- En root su adduser --home /opt/redmine redmine (Password redmine) gpasswd -a redmine sudo Passer à l'utilisateur Redmine. su - redmine
Installer RVM
- # Passer à l'utilisateur redmine. su - redmine # Ajouter les clés de RVM.
curl -sSL https://rvm.io/mpapis.asc | gpg --import - curl -sSL https://rvm.io/pkuczynski.asc | gpg --import - # Installer RVM Stable.
curl -sSL https://get.rvm.io | bash -s stable # Démarrer RVM. source /opt/redmine/.rvm/scripts/rvm
Préparer la base de données
- En root. su mysql -uroot -p create database redmine_production character set utf8; create user 'redmine'@'localhost' identified by 'redmine_mysql_user_password'; grant all privileges on redmine_production.* to 'redmine'@'localhost'; flush privileges; exit
Installer Redmine depuis Git
- su - redmine # Redémarrer la machine pour appliquer la prise en compte de sudo sur l'utilisateur redmine.
wget https://codeload.github.com/redmine/redmine/zip/4.0-stable unzip 4.0-stable sudo rm 4.0-stable ls redmine-4.0-stable # Créer un lien vers un dossier "active". # Permet d'installer une nouvelle version de redmine par exemple dans le dossier redmine-4-1-stable et d'activer ce nouveau dossier comme étant le dossier actif. ln -s redmine-4.0-stable active
Configurer Redmine
- su - redmine cd redmine-4.0-stable cp config/database.yml.example config/database.yml cp config/configuration.yml.example config/configuration.yml Éditer la base de données. nano config/database.yml production:
- adapter: mysql2 database: redmine_production host: localhost username: redmine password: "redmine_mysql_user_password" encoding: utf8
Installer Ruby et Gems
- Toujours avec l'utilisateur redmine. su - redmine cd ~ rvm install 2.4 ( Install of ruby-2.4.5 - #complete ) rvm gemset create redmine-4.0-stable
Sélectionner le bon gemset
- Lister les gemsets disponibles rvm list gemsets Affiche : rvm gemsets
=> ruby-2.4.5 [ x86_64 ]
- ruby-2.4.5@global [ x86_64 ]
ruby-2.4.5@redmine-4.0-stable [ x86_64 ]
Modifier pour ruby-2.4.5@redmine-4.0-stable [ x86_64 ] rvm use gemset ruby-2.4.5@redmine-4.0-stable Affiche : Using /opt/redmine/.rvm/gems/ruby-2.4.5 with gemset redmine-4.0-stable On vérifie : rvm list gemsets Affiche : rvm gemsets
- ruby-2.4.5 [ x86_64 ] ruby-2.4.5@global [ x86_64 ]
=> ruby-2.4.5@redmine-4.0-stable [ x86_64 ]
- ruby-2.4.5@global [ x86_64 ]
Installer les Gems pour Redmine
- Toujours avec l'utilisateur redmine cd redmine-4.0-stable/ bundle install --without develop,test,postgresql,sqlite ( Toutes les gems sont au vert, sauf Using bundler 1.16.6 qui est affiché en blanc. ) gem install passenger
RMV et bundler intégration
- Toujours avec l'utilisateur redmine cd ~ Cette étape est nécessaire car nous allons utiliser un bundle pour installer les gems requises de Redmine. gem regenerate_binstubs Affiche : try also: gem pristine --binstubs bundler 1.16.6 nokogiri 1.10.2 passenger 6.0.2 puma 3.12.1 rack 2.0.6 railties 5.2.2.1 rake 12.3.2 rake 12.0.0 rdoc 5.0.0 redcarpet 3.4.0 rouge 3.3.0 sprockets 3.7.2 thor 0.20.3 yard 0.9.18 # Aucune idée si la commande a été prise en compte ou non.
Installer Phusion Passenger
- Toujours avec l'utilisateur redmine cd redmine-4.0-stable/ passenger-install-apache2-module Choix 1 entrée Je laisse ruby et python de pré configuré puis à nouveau entrée. Configurer Apache Passenger. La commande précédente affiche les informations suivantes après avoir exécuté son code : Please edit your Apache configuration file, and add these lines:
<code>?LoadModule passenger_module /opt/redmine/.rvm/gems/ruby-2.4.5@redmine-4.0-stable/gems/passenger-6.0.2/buildout/apache2/mod_passenger.so <?IfModule mod_passenger.c>
?PassengerRoot /opt/redmine/.rvm/gems/ruby-2.4.5@redmine-4.0-stable/gems/passenger-6.0.2 ?PassengerDefaultRuby /opt/redmine/.rvm/gems/ruby-2.4.5@redmine-4.0-stable/wrappers/ruby
<?/IfModule></code> ### La proposition du tutoriel initial ne semble pas fonctionner ### ### La configuration de passenger ne semble pas être chargée.
### Ne fonctionne pas ### Créer un fichier de configuration sous /etc/apache2/conf-available nommé passenger-ruby-2.4.5@redmine-4.0-stable qui se connecte au module de passenger. ### Intéressant mais ne semble pas fonctionner ### Quand nous voudrons passer d’une installation Redmine à une installation Ruby + Gems séparée, nous aurons des modules passenger séparés pour chacune d’elles. Il suffit simplement de charger la configuration proposée directement au début du fichier /etc/apache2/apache2.conf
Ajouter la ligne ?LoadModule également, même si l'installeur nous dit, semble t'il, de ne pas le faire. Ajouter la configuration dans le fichier de configuration de Apache2 : sudo nano /etc/apache2/apache2.conf Redémarrer Apache2 sudo /etc/init.d/apache2 restart Terminer l'installation précédente avec la touche entrée depuis la première fenêtre pour finaliser cette installation. Normalement tout c'est bien passé et les contrôles sont au vert. La commande suivante permet de vérifier la configuration de l'installation précédente. passenger-config validate-install Si les contrôles ne sont pas passés au vert, relancer l'installation précédente jusqu'à valider les tests.
Configurer le VirtualHost
- Toutes les références au chemin Redmine utilisent le lien symbolique " active " au lieu d'utiliser directement le répertoire Redmine.
De cette manière, il suffit de pointer le lien symbolique vers le bon répertoire de Redmine pour basculer entre les versions de Redmine. Un seul fichier ?VirtualHost est alors nécessaire. Je crée le fichier redmine.conf dans le dossier des sites disponibles pour Apache2 : cd /etc/apache2/sites-available sudo nano redmine.conf
<?VirtualHost *:80> ?ServerAdmin admin@domain.sample ?ServerName redmine.fictif.fr
?DocumentRoot /opt/redmine/active/public/ RailsBaseURI / ?PassengerAppRoot /opt/redmine/active ?PassengerUser www-data ?PassengerGroup www-data
<Directory /opt/redmine/active/public/> Options +Indexes +?FollowSymLinks -?MultiViews ?AllowOverride All # Je commente les lignes pour Apache 2.2. # Order allow,deny # Allow from all # Je remplace par les lignes pour Apache 2.4 Require all granted </Directory> ?LogLevel warn ?ErrorLog ${APACHE_LOG_DIR}/redmine.error.log ?CustomLog ${APACHE_LOG_DIR}/redmine.access.log combined <?/VirtualHost> Activer le site. sudo a2ensite redmine.conf
Redémarrer Apache2 pour prendre en compte le ?VirtualHost. sudo /etc/init.d/apache2 restart
Phase finale
- Depuis l'utilisateur redmine dans le dossier de redmine stable : cd redmine-4.0-stable/ rake generate_secret_token RAILS_ENV=production rake db:migrate L’étape rake redmine: load_default_data n’est nécessaire que lors d’une nouvelle installation. Ignorer cette étape si vous utilisez une base de données Redmine déjà existante (ou importée d'un dump). RAILS_ENV=production rake redmine:load_default_data Le rake redmine: plugins: migrate est nécessaire uniquement si vous utilisez des plugins supplémentaires. RAILS_ENV=production rake redmine:plugins:migrate
Conclusion
- Redmine 4.0 est fonctionnel !
En supplément
- Les éléments suivants sont nécessaire pour réinstaller une sauvegarde, ou, pour faire une mise à jour.
Réimporter le fichier de configuration
- Deux fichiers sont présents, je ne suis pas sur qu'il faille sauvegarder les deux. # Comprend notamment le paramétrage pour l'adresse mail utilisée sur le site. configuration.yml # D'autres configurations complémentaires. settings.yml
Réimporter le fichier de configuration de la base de données
- Sauvegarder puis réinstaller database.yml.
Réimporter une base de données de Redmine et la mettre à jour
- Récupérer la base de données d'une version antérieur de Redmine, ici, la version de ma sauvegarde de Redmine 3.4.6 est mise à jour pour correspondre à la version de la base de données de Redmine 4.0. su
sudo mysql -u root redmine_production < sql.sql exit su - redmine # On liste les gems disponibles. rvm gemsets # On choisi le gemset qui a été créé pour redmine.
rvm use gemset ruby-2.4.5@redmine-4.0-stable # On se place dans le dossier de Redmine. cd redmine-4.0-stable/ # On met à jour la base de données. RAILS_ENV=production rake db:migrate # Va afficher :
== 20170723112801 ?RenameCommentsToContent: migrating ========================== -- rename_column(:comments, :comments, :content)
-> 0.0248s
== 20170723112801 ?RenameCommentsToContent: migrated (0.0249s) =================
== 20180913072918 ?AddVerifyPeerToAuthSources: migrating ======================= -- change_table(:auth_sources)
-> 0.0490s
== 20180913072918 ?AddVerifyPeerToAuthSources: migrated (0.0494s) ==============
== 20180923082945 ?ChangeSqliteBooleansTo0And1: migrating ====================== == 20180923082945 ?ChangeSqliteBooleansTo0And1: migrated (0.0000s) =============
== 20180923091603 ?ChangeSqliteBooleansDefault: migrating ====================== == 20180923091603 ?ChangeSqliteBooleansDefault: migrated (0.0000s) =============
Réimporter les fichiers
- su - redmine cd redmine-4.0-stable/files # Donner les droits apache2 au(x) dossier(s) contenant les fichiers. sudo chown www-data:www-data -R 2018/