6.3 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
Creer un compte admin / mot de passe admin
user = User.new(:firstname => "Admin", :lastname => "Admin", :mail => "admin@example.com", :mail_notification => "none", :status => 1)
user.login = 'admin'
user.hashed_password = "4af53bd5aff3b4b8ac275cfc918244f7e61aa4cb"
user.salt = "270d36d363b07abc40245d02348a53a8"
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)
...