Accueil > Recettes Techniques > Linux > Installation Trac sur hébergement dédié

Installation Trac sur hébergement dédié

Installation clé en main sur ma dédibox de Trac-Svn

mardi 24 novembre 2009, par Julien Falconnet

Ça faisait des années que je tournais autour. On m’en avais parlé, j’en avais vu quelques uns... Mais TRAC était toujours resté la "bonne idée qu’on adopterai dès qu’on aurait le temps". D’un autre côté, l’essentiel de mes projet n’impliquaient que moi, donc je m’en sortais très bien avec mon cahier. A deux, ça passait encore. Mais à quatre, j’ai amèrement regretté de n’avoir pas un suivi de projet connecté à subversion. Je me suis finalement ressaisit et voici le résultat de mes recherches.

 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 :

  1. apt-get install trac
  2. apt-get install trac-spamfilter

Puis en tant qu’utilisateur normal (j’en créé un spécialement pour trac)

  1. # création des environnement qui serviront à trac pour gérer chaque projet
  2. trac-admin repertoire_projet1 initenv
  3. trac-admin repertoire_projet2 initenv
  4. # génération des mots de passe et des utilisateurs
  5. htpasswd -c .htpasswd_projet1 user1
  6. htpasswd .htpasswd_projet1 user2
  7. ...
  8. htpasswd -c .htpasswd_projet2 user1
  9. htpasswd .htpasswd_projet2 user3
  10. ...
  11. # Ajout des droit admin à au moins un utilisateur
  12. trac-admin repertoire_projet1/ permission add user1 TRAC_ADMIN
  13. trac-admin repertoire_projet2/ permission add user1 TRAC_ADMIN
  14. # pour vérifier que l'identification (et l'accès admin) fonctionne
  15. 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/
  16. #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

  1. find . -iname '*.zip'  -exec unzip {} \;
  2. for setup in `find . -iname 'setup.py' `
  3. do
  4. start=`pwd`
  5. chmod -R 777 `dirname $setup`
  6. cd `dirname $setup`
  7. python setup.py bdist_egg
  8. cd $start
  9. echo `dirname $setup`
  10. done
  11. 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 :

  1. trac-admin /home/TRAC/repertoire_projet1 upgrade
  2. 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).

  1. # le -d pour lancer le programme comme un daemon
  2. 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.


[edit : 2/12/2009] Pour pouvoir clore et ajouter du temps sur les tickets directement par les messages des commits SVN, il faut appliquer la procédure indiquée ici : http://trac-hacks.org/wiki/TimingAn...