Choix
A titre de préambule, voici les choix que j’ai fait :
version : tracd 0.11.1
Subversion (SVN) comme gestionnaire de version
trac est utilisé en serveur ’standalone’ (indépendant d’un serveur apache)
plusieurs projets sont gérés simultanément
accès privé
gestion des temps de développement (estimation et décompte)
thème personnalisé
le serveur sera lancé par un utilisateur particulier
Initialisation
Sur ma dédibox avec une installation Debian. Voici le protocole que j’ai suivi.
En tant qu’administrateur :
- apt-get install trac
- apt-get install trac-spamfilter
Puis en tant qu’utilisateur normal (j’en créé un spécialement pour trac)
- # création des environnement qui serviront à trac pour gérer chaque projet
- trac-admin repertoire_projet1 initenv
- trac-admin repertoire_projet2 initenv
- # génération des mots de passe et des utilisateurs
- htpasswd -c .htpasswd_projet1 user1
- htpasswd .htpasswd_projet1 user2
- ...
- htpasswd -c .htpasswd_projet2 user1
- htpasswd .htpasswd_projet2 user3
- ...
- # Ajout des droit admin à au moins un utilisateur
- trac-admin repertoire_projet1/ permission add user1 TRAC_ADMIN
- trac-admin repertoire_projet2/ permission add user1 TRAC_ADMIN
- # pour vérifier que l'identification (et l'accès admin) fonctionne
- tracd -p 8000 --basic-auth=repertoire_projet1,/home /TRAC/.htpasswd_projet1,TRAC_PROJ1 --basic-auth=repertoire_projet2,/home/TRAC/.htpasswd_projet2,TRAC_PROJ2 /home/TRAC/repertoire_projet1/ /home/TRAC/repertoire_projet2/
- #ctl-c pour sortir
Dans un navigateur, on peut ensuite tester avec http://adressDuServeur:8000
Une fois que tout semble opérationnel on peut passer aux plugins
Plugins
J’avais besoin de trois fonctionnalités qui demandaient des plugins supplémentaire :
La gestion des temps de développement.
Un accès privé par défaut.
Une interface un peu plus sympathique
J’ai donc récupéré les plugins suivants :
TimingAndEstimation, qui permet d’estimer et de décompter le temps ticket part ticket.
NoAnonymous, qui permet d’interdire l’accès si on est pas identifié
GnomeBR un thème plus (trop ?) coloré.
ThemeEngine, nécessaire pour pouvoir installer des thèmes (et nécessaire pour le précédent).
Après la procédure est assez pénible, il va falloir régénérer les plugins avec la version de python du serveur. Ce que j’ai trouvé de plus simple c’est de mettre tous les plugins récupéré dans un répertoire spécialement créé pour ça sur le serveur et d’exécuter dans ce répertoire (ATTENTION !!! pas ailleurs) le script suivant
- find . -iname '*.zip' -exec unzip {} \;
- for setup in `find . -iname 'setup.py' `
- do
- start=`pwd`
- chmod -R 777 `dirname $setup`
- cd `dirname $setup`
- python setup.py bdist_egg
- cd $start
- echo `dirname $setup`
- done
- find . -iname '*.egg' -exec cp {} . \;
Ensuite il ne reste plus qu’à déplacer, les .egg (attention de bien choisir ceux liés à la version de trac (pour moi 0.11) dans le répertoire plugins de mes environnement (repertoire_projet1 et repertoire_projet2)
Ensuite on peut tester chaque projet séparément et on devra sans doute mettre à jour la base de donnée :
- trac-admin /home/TRAC/repertoire_projet1 upgrade
- trac-admin /home/TRAC/repertoire_projet2 upgrade
Petits réglages complémentaire
Dans trac.ini
les logs
les mails
Mise en route
Il reste en suite à lancer pour de vrai l’application (notament pour qu’elle continue de fonctionner quand on se déloguera du ssh).
- # le -d pour lancer le programme comme un daemon
- tracd -d -p 8520 --basic-auth=lunastars_v2,/home/TRAC/.htpasswd_luna,TRAC_LUNA --basic-auth=enov_bix,/home/TRAC/.htpasswd_enov,TRAC_ENOV /home/TRAC/lunastars_v2/ /home/TRAC/enov_bix/ &
puis quand on voudra l’arréter :
ps aux |grep tracd
kill le pid trouvé
Voilà, maintenant il ne reste plus qu’à explorer les fonctionnalités extraordinaire de cette application.
En espérant que cela aidera d’autres à gagner un peu de temps.