7.6 KiB
Installation Redmine
Ce document explique l'installation du logiciel Redmine depuis les sources.
Cette installation à été testé sur une Debian Jessie avec Redmine en version 3.0, 3.1, 3.2, 3.3 et 3.4.
À noter :
- La catégorie nommées prérequis ne sont à faire qu'une seule fois par serveur.
- Les commandes sont à lancer avec l'utilisateur entre parenthèse.
Prérequis (User = root)
Installations des dépendances :
# aptitude install libpam-systemd libmysqlclient-dev ruby ruby-dev bundle imagemagick git-core git-svn gcc build-essential libxml2-dev libxslt1-dev libssl-dev
Installation des dépendances 2 (L'installation en une fois crée des conflits !) :
# aptitude install libmagickwand-dev libmagickcore-dev
Si Squid est présent vous devez rajouter les sites github et rubygems dans sa liste blanche !
echo "https://github.com/.*" >> /etc/squid3/whitelist.conf
echo "http://rubygems.org/.*" >> /etc/squid3/whitelist.conf
echo "http://.*.rubygems.org/.*" >> /etc/squid3/whitelist.conf
/home ne doit pas avoir l'attribut noexec !!!
Création du compte Unix (User = root)
Choix de l'utilisateur $REDMINE propriétaire de l'application
REDMINE='redmine'
Création de l'utilisateur $REDMINE :
useradd $REDMINE -d "/home/$REDMINE" -c "Redmine $REDMINE" -s "/bin/bash" -m
Ajout de l'utilisateur www-data au groupe $REDMINE :
adduser www-data $REDMINE
Création de la base de donnée (User = root)
HowtoMySQL
Installation (User = $REDMINE)
Se connecter avec l'utilisateur $REDMINE :
su - $REDMINE
Choisir la $BRANCHE de la version de Redmine :
- voir le dépôt Github pour choisir une version
- vérifier les prérequis sur redmine.org
BRANCHE=3.4-stable
Configuration du profile :
cat > ~/.profile <<EOF
# ~/.profile: executed by the command interpreter for login shells.
umask 027
export XDG_RUNTIME_DIR=/run/user/$UID
export PATH="\$HOME/.gems/ruby/2.1.0/bin:\$PATH"
export RAILS_ENV=production
EOF
source ~/.profile
Clonage du dépôt Git du projet Redmine :
git clone https://github.com/redmine/redmine.git -b $BRANCHE ~/www
Création des dossiers nécessaires :
mkdir -m 0750 ~/files
Copie de la configration de Redmine :
cat > ~/www/config/configuration.yml <<EOF
production:
email_delivery:
delivery_method: :smtp
smtp_settings:
address: localhost
port: 25
domain: "$(hostname -d)"
ssl: false
enable_starttls_auto: false
attachments_storage_path: /home/$USER/files
autologin_cookie_secure: true
EOF
Configuration des logs :
cat > ~/www/config/additional_environment.rb <<EOF
config.paths['log'] = "/home/$USER/log/redmine.log"
config.log_level = :warn
EOF
Récupération du mot de passe Mysql :
MYSQLPASS=`grep password ~/.my.cnf|cut -d'=' -f2|tr -d ' '`
Configuration de la base de donnée :
cat > ~/www/config/database.yml <<EOF
production:
adapter: mysql2
database: $USER
host: localhost
username: $USER
password: "$MYSQLPASS"
encoding: utf8
EOF
Ajout de la gem puma aux dépendances :
cat > ~/www/Gemfile.local <<EOF
gem "puma"
# En Debian Jessie il faut forcer la version de "xpath" pour être compatible Ruby 2.1
#gem "xpath", "< 3.0.0"
EOF
Installation des dépendances Gem avec bundle (cela peut durer plusieurs minutes) :
bundle install --gemfile=~/www/Gemfile --path=~/.gems
Génération d'un clé aléatoire utilisé pour encoder les cookies de session :
cd ~/www/
bundle exec rake -qf ~/www/Rakefile generate_secret_token
Création des schémas de la base de données redmine :
bundle exec rake -qf ~/www/Rakefile db:migrate
Chargement des données par défaut :
bundle exec rake -qf ~/www/Rakefile redmine:load_default_data REDMINE_LANG=fr
Serveur d'application
Maintenant que Redmine est installé, il faut configurer Puma.
La Gem est déjà installe grâce au Gemfile.local.
Lancement de l'application
Démarrer/éteindre l'application :
systemctl --user start/stop puma
Recharger la configuration après avoir modifier /etc/puma/$USER.rb (pas de coupure) :
systemctl --user reload puma
Redémarrer l'application :
systemctl --user restart puma
Activer/désactiver l'application au démarrage :
systemctl --user enable/disable puma
Gestions des plugins
Taches post installation / post mise a jour
Mise à jour des gem :
bundle install --gemfile=~/www/Gemfile --path=~/.gems
Migration des plugins :
( cd ~/www && bundle exec rake -qf ~/www/Rakefile redmine:plugins:migrate )
Desinstallation d'un plugin :
( cd ~/www && bundle exec rake -qf ~/www/Rakefile redmine:plugins:migrate[plugin_name,0] )
Mise a jour
Mineure
cd ~/www
git pull
bundle update
systemctl --user daemon-reload
systemctl --user restart puma
systemctl --user status puma
Majeure
systemctl --user stop puma
cd ~/www
git pull
git checkout $BRANCHE
rm Gemfile.lock
bundle update
bundle exec rake -q db:migrate
systemctl --user daemon-reload
systemctl --user start puma
systemctl --user status puma
Après une mise à jour de Debian
Après une mise à jour du type Debian 9 vers Debian 10, il faut remettre à jour les gems.
bundle install --redownload
Taches d'administration
Lancer un shell ruby dans l'environnement de production :
cd ~/www
bundle exec rails console
Créer un compte admin / mot de passe admin
user = User.new(:firstname => "<FIRSTNAME>", :lastname => "<LASTNAME>", :mail => "<MAIL>", :mail_notification => "none", :status => 1)
user.login = '<LOGIN>'
user.password = '<PASSWORD>'
user.password_confirmation = '<PASSWORD>'
user.valid? # will return true if the user is valid
user.admin = true
user.save
Compter les issues d'un projet / les supprimer
Ceci est notamment utile à faire avant de supprimer un projet, ce qui est peut-être impossible via l'interfaces web si il y atrop d'issues :
> p = Project.find(42)
> p.issues.count
(0.1ms) SELECT COUNT(*) FROM "issues" WHERE "issues"."project_id" = 42
=> 1337
> p.issues.each(&:destroy)
...
Changer le mot de passe de l’administrateur
Dans le cas où il n’y a qu’un seul utilisateur administrateur, on peut toujours changer son mot de passe en éditant directement la base de données. La procédure est dans la FAQ de Redmine.
FAQ
Déterminer la version de Redmine
L’information est accessible depuis l’interface dans Administration puis Informations. En ligne de commande, il faut vérifier le contenu du fichier /<racine_redmine>/lib/redmine/version.rb
. La version est lisible dans les variable MAJOR
, MINOR
et TINY
. Par exemple, pour une instance Redmine en 5.0.3 :
$ cat ./lib/redmine/version.rb
[…]
MAJOR = 5
MINOR = 0
TINY = 3
[…]
Commande AWK pour extraire la version au format
x.y.z
:$ awk '/^ *MAJOR/ { major = $NF } /^ *MINOR/ { minor = $NF } /^ *TINY/ { tiny = $NF } END { printf "%u.%u.%u", major, minor, tiny }' ./lib/redmine/version.rb
Changer un mot de passe avec rails
# su - REDMINE
$ cd ~/www
$ RAILS_ENV=production bundle exec rails c
> user = User.where('login').first
> user.password = 'mon-nouveau-mot-de-passe'
> user.password_confirmation = 'mon-nouveau-mot-de-passe'
> user.save!