Outils personnels

Installation Indefero : Différence entre versions

De wikiGite

(Installation)
 
(5 révisions intermédiaires par le même utilisateur non affichées)
Ligne 1 : Ligne 1 :
 
Excellent tuto : http://www.siteduzero.com/tutoriel-3-318320-indefero-un-bug-tracker-tres-complet.html
 
Excellent tuto : http://www.siteduzero.com/tutoriel-3-318320-indefero-un-bug-tracker-tres-complet.html
  
== Installation ==
+
== Installation v.1.3.2 ==
 
=== Pré-requis ===
 
=== Pré-requis ===
 
  apt-get install php5-gd php-pear unzip
 
  apt-get install php5-gd php-pear unzip
Ligne 130 : Ligne 130 :
  
 
== Note sur Debian/Postfix ==
 
== Note sur Debian/Postfix ==
Postfix semble incapable de comprendre le "From" du mail envoyé par PHP::Mail
+
Postfix semble incapable de comprendre le "From" du mail envoyé par PHP::Mail qu'Indefero utilise pour avertir de certains évènements.
  
 
l'expéditeur est *toujours* www-data@localhost.localdomain
 
l'expéditeur est *toujours* www-data@localhost.localdomain
Ligne 174 : Ligne 174 :
  
 
== Utilisation ==
 
== Utilisation ==
 
 
1. Création d'un projet dans le webUI en tant qu'admin
 
1. Création d'un projet dans le webUI en tant qu'admin
 
-> administration de la forge / projets / Créer un projet <br/>
 
-> administration de la forge / projets / Créer un projet <br/>
 
obligatoire : nom, nom court, description, type de dépôt<br/>
 
obligatoire : nom, nom court, description, type de dépôt<br/>
Nom court =  http://applis.systea.fr/indefero/index.php/p/projetTest<br/>
+
Nom court =  <nowiki>http://<SERVEUR INDEFERO>/index.php/p/projetTest</nowiki><br/>
 
donner un propriétaire, cocher "projet privé pour qu'il n'apparaisse pas sur la page de la forge sans connexion
 
donner un propriétaire, cocher "projet privé pour qu'il n'apparaisse pas sur la page de la forge sans connexion
  
entrer dans le projet / Accès aux onglets et notifications<br/>
+
2. Entrer dans le projet / Accès aux onglets et notifications
 
paramétrer notifications et vues des membres
 
paramétrer notifications et vues des membres
  
Une fois créé dans l'interface, sur le poste du développeur (qui a enregistré sa clé sur son utilisateur indefero !)
+
3. Une fois créé dans l'interface, sur le poste du développeur (qui a enregistré sa clé sur son utilisateur indefero !)
 
  mkdir projectname
 
  mkdir projectname
 
  cd projectname
 
  cd projectname
Ligne 193 : Ligne 192 :
 
  git remote add origin git@<SERVER NAME>:<PROJECT NAME>.git
 
  git remote add origin git@<SERVER NAME>:<PROJECT NAME>.git
 
  git push origin master # Important ! "master" est obligatoire pour le premier push
 
  git push origin master # Important ! "master" est obligatoire pour le premier push
 
 
Le projet est alors réellement créé sur le serveur. Il ne reste qu'à l'alimenter par des commit/push.
 
Le projet est alors réellement créé sur le serveur. Il ne reste qu'à l'alimenter par des commit/push.
  
Un autre développeur n'a qu'à enregistrer sa clé (en + de l'autre clé sur le même utilisateur indefero, ou sur un autre) et récupérer le projet
+
4. Un autre développeur n'a qu'à enregistrer sa clé (en + de l'autre clé sur le même utilisateur indefero, ou sur un autre) et récupérer le projet
 
  git clone git@<SERVER NAME>:<PROJECT NAME>.git
 
  git clone git@<SERVER NAME>:<PROJECT NAME>.git
 
Penser à paramétrer l'utilisateur localement sur le poste développeur pour que les commits apparaissent avec le bon nom de contributeur dans Indefero :
 
Penser à paramétrer l'utilisateur localement sur le poste développeur pour que les commits apparaissent avec le bon nom de contributeur dans Indefero :
 
  git config --global user.email "email@domain.com" # Doit être le même email que celui enregistré sur le compte Indefero pour faire le lien !
 
  git config --global user.email "email@domain.com" # Doit être le même email que celui enregistré sur le compte Indefero pour faire le lien !

Version actuelle datée du 17 septembre 2012 à 14:35

Excellent tuto : http://www.siteduzero.com/tutoriel-3-318320-indefero-un-bug-tracker-tres-complet.html

Installation v.1.3.2

Pré-requis

apt-get install php5-gd php-pear unzip

Installation du framework Pluf

pear upgrade-all
pear install --alldeps Mail
pear install --alldeps Mail_mime
pear install --alldeps Console_Getopt

wget http://projects.ceondo.com/p/pluf/source/download/master/ -O pluf-master.zip
cd pluf-master
mv src/ /home/www/indefero/pluf

Installation Indefero

Il est recommandé de ne pas mettre l'arborescence dans /var (on aura besoin de place pour les projets !).

Donc créer l'arborescence dans /home :

mkdir -p /home/www/
mkdir -p /home/git/repositories

cd /home/www/
wget http://projects.ceondo.com/p/indefero/downloads/get/indefero-1.3.2.tar.bz2
tar -xvjf indefero-1.3.2.tar.bz2
cd indefero/
cp src/IDF/conf/idf.php-dist src/IDF/conf/idf.php
cp src/IDF/conf/path.php-dist src/IDF/conf/path.php

Générer une clé qui sera utilisée lors de l'installation (par copié/collé dans "$cfg['secret_key']"):

dd if=/dev/urandom bs=1 count=64 2>/dev/null | base64 -w 0

Configurer idf.php et path.php selon votre système, notamment les URL, le repository Git, activer Git comme gestionnaire de version et désactiver Mercurial (par défaut).

Laisser vide $cfg['idf_base'] = ; car on utilisera le mod_rewrite.

NOTE Issue 179 : si SVN n'est pas utilisé, COMMENTER AUSSI LES 3 LIGNES :

$cfg['idf_plugin_syncsvn_authz_file'] = '/home/svn/dav_svn.authz';
$cfg['idf_plugin_syncsvn_passwd_file'] = '/home/svn/dav_svn.passwd';
$cfg['idf_plugin_syncsvn_svn_path'] = '/home/svn/repositories';

[PLUS]: idem si Mercurial n'est pas utilisé, commenter aussi :

$cfg['idf_plugin_syncmercurial_passwd_file'] = '/home/mercurial/auth/.htpasswd';
$cfg['idf_plugin_syncmercurial_path'] = '/home/mercurial/repositories';

Exemples de chemins dans path.php, d'après les répertories créés ci-dessus :

define('PLUF_PATH', dirname(__FILE__).'/../../../pluf');
define('IDF_PATH', dirname(__FILE__).'/../..');

Créer la base MySQL et un utilisateur dédié

mysql -p
mysql> create database indefero;
mysql>  grant all on indefero.* to indefero@localhost identified by 'indefero';

Lancer l'installation

cd src
php /home/www/indefero/pluf/migrate.php --conf=IDF/conf/idf.php -a -i -d -u # test uniquement, voir d'éventuelles erreurs
php /home/www/indefero/pluf/migrate.php --conf=IDF/conf/idf.php -a -i -d # installation

Créer un fichier /home/www/indefero/www/bootstrap.php pour créer l'utilisateur admin :

<?php
require '/home/www/indefero/src/IDF/conf/path.php';
require 'Pluf.php';
Pluf::start('//home/www/indefero/src/IDF/conf/idf.php');
Pluf_Dispatcher::loadControllers(Pluf::f('idf_views'));

$user = new Pluf_User();
$user->first_name = 'Admin';
$user->last_name = 'Admin'; // Required!
$user->login = 'admin'; // must be lowercase!
$user->email = 'support@systea.net';
$user->password = 'cela2I!'; // the password is salted/hashed 
                                 // in the database, so do not worry :)
$user->administrator = true;
$user->active = true;
$user->create();
print "Bootstrap ok\n";
?>

Et le lancer en ligne de commande :

php www/bootstrap.php

Si le retour est "Bootstrap ok", supprimer le fichier

rm www/bootstrap.php

Vérifier dans www/index.php que les chemins sont bons (à priori oui si on garde l'arborescence ci-dessus)

Après l'install, on crée des liens vers les fichiers utiles :

cd /var/www
mkdir indefero
chown www-data.www-data indefero
cd indefero
ln -s /home/www/indefero/www/index.php
ln -s /home/www/indefero/www/media

Créer un virtualhost Apache (ici en HTTPS)

<VirtualHost *:443>

ServerName indefero.systea.fr
DocumentRoot /home/www/indefero/

# add ssl protocol
SSLEngine On
SSLOptions +FakeBasicAuth +ExportCertData +StrictRequire
SSLCertificateFile    /etc/ssl/certs/ssl-cert-snakeoil.pem
SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key

<Directory /home/www/indefero>
        AllowOverride All
#        Options Indexes
#        Allow from all
        <IfModule mod_access.c>
                Order allow, deny
                Allow from all
        </IfModule>

<IfModule mod_ssl.c>
        SSLRequireSSL
        SSLRequire %{SSL_CIPHER_USEKEYSIZE} >= 128
</IfModule>

</Directory>
</VirtualHost>

Et pour réécrire l'URL (enlever le "index.php"), créer un fichier /home/www/indefero/.htaccess :

Options +FollowSymLinks
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*) /index.php/$1

On peut maintenant essayer de se connecter sur https://<SERVEUR INDEFERO> avec l'utilisateur "admin" créé par le bootstrap.

Note sur Debian/Postfix

Postfix semble incapable de comprendre le "From" du mail envoyé par PHP::Mail qu'Indefero utilise pour avertir de certains évènements.

l'expéditeur est *toujours* www-data@localhost.localdomain

Solution possible : ajouter dans /etc/postfix/main.cf

sender_canonical_maps = hash:/etc/postfix/canonical
myhostname = applis.systea.fr
mydomain =  systea.fr

Créer les maps /etc/postfix/canonical (remplace le sender www-data par support):

www-data    support

/etc/postfix/aliases (au cas ou support n'existe pas localement, renvoyer les messages de retour vers root (ou autre)):

support	root

postmap /etc/postfix/canonical postmap /etc/postfix/aliases

Intégration de GIT

Créer l'utilisateur git

adduser \
         --system \
         --shell /bin/bash \
         --gecos 'git version control' \
         --group \
         --disabled-password \
         --home /home/git \
         git
chown - R git.git /home/git
usermod -a -G git www-data
/etc/init.d/apache2 restart

Créer un fichier de clés qui recevra celles des utilisateurs autorisés à utiliser le dépôt

su git
mkdir /home/git/.ssh
touch /home/git/.ssh/authorized_keys
chmod 0700 /home/git/.ssh
chmod 0600 /home/git/.ssh/authorized_keys

Ce cron synchronise toutes les 5 minutes les clés SSH déposées par apache lors de l'ajout d'une clé par un utilisateur, dans /tmp/SYN-GIT (par défaut, voir idf.php), avec /home/git/.ssh/authorized_keys (accessible uniquement par git) :

# crontab -e
5 * * * * php /var/www/indefero-src/scripts/gitcron.php

Utilisation

1. Création d'un projet dans le webUI en tant qu'admin -> administration de la forge / projets / Créer un projet
obligatoire : nom, nom court, description, type de dépôt
Nom court = http://<SERVEUR INDEFERO>/index.php/p/projetTest
donner un propriétaire, cocher "projet privé pour qu'il n'apparaisse pas sur la page de la forge sans connexion

2. Entrer dans le projet / Accès aux onglets et notifications paramétrer notifications et vues des membres

3. Une fois créé dans l'interface, sur le poste du développeur (qui a enregistré sa clé sur son utilisateur indefero !)

mkdir projectname
cd projectname
git init
touch README # Important ! il faut au moins un fichier avant le premier commit, sinon erreurs possibles au "push".
git add .
git commit -m 'the first commit'
git remote add origin git@<SERVER NAME>:<PROJECT NAME>.git
git push origin master # Important ! "master" est obligatoire pour le premier push

Le projet est alors réellement créé sur le serveur. Il ne reste qu'à l'alimenter par des commit/push.

4. Un autre développeur n'a qu'à enregistrer sa clé (en + de l'autre clé sur le même utilisateur indefero, ou sur un autre) et récupérer le projet

git clone git@<SERVER NAME>:<PROJECT NAME>.git

Penser à paramétrer l'utilisateur localement sur le poste développeur pour que les commits apparaissent avec le bon nom de contributeur dans Indefero :

git config --global user.email "email@domain.com" # Doit être le même email que celui enregistré sur le compte Indefero pour faire le lien !