19
0
Fork 0
wiki/HowtoRedmine.md

5.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

Récupération du mot de passe Mysql :

MYSQLPASS=`grep password ~/.my.cnf|cut -d'=' -f2|tr -d ' '`

Configuraion 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

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 :

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 mettre en place une instance Puma.

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 :

bundle exec rake -qf ~/www/Rakefile redmine:plugins:migrate

Desinstallation d'un plugin :

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

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