Installation Indefero : Différence entre versions
De wikiGite
(→Note sur Debian/Postfix) |
|||
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 |
Version du 17 septembre 2012 à 14:27
Excellent tuto : http://www.siteduzero.com/tutoriel-3-318320-indefero-un-bug-tracker-tres-complet.html
Sommaire
Installation
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://applis.systea.fr/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
entrer dans le projet / Accès aux onglets et notifications
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 !)
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.
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 !