Plan du KiWi
Si vous n'avez pas trouvé votre bonheur dans les liens plus haut, le plan vous montrera les quelques pages “cachées” de ce kiwi !
Quoi de mieux que Subversion et Trac pour gérer tout vos projets ? Que cela soit pour travailler seul où en groupe c'est juste le combo gagnant.
Voyons comment les installer sur un serveur Ubuntu (où sur votre machine locale).
$ sudo apt-get update $ sudo apt-get install subversion libapache2-svn libapache2-mod-python2.4 trac
En ce qui me concerne, je place mes instances de Trac dans /var/trac, de ce fait, je fais :
$ sudo mkdir /var/trac $ sudo chown www-data:www-data /var/trac
J'ai trouvé sur PrendreUnCafé un script très bien fait qui permet d'automatiser la création. Vous pouvez trouver ce script ici → create_svn_repo.sh
$ chmod +x create_svn_repo.sh
Il faut le lancer en tant que root ou via la commande sudo. Il vous suffit de répondre aux questions du script.
SVN_ROOT="/var/svn"
Ensuite, on initialise l'environnement Trac (après l'avoir crée) :
sudo mkdir /var/trac sudo trac-admin /var/trac/projet initenv sudo chown -R www-data /var/trac/projet
Par défaut, une instance Trac permet à tous les visiteurs anonymes d'en modifier les contenus ; bien évidemment, c'est un comportement de l'application particulièrement risqué, ne serait-ce qu'en regard du spam potentiel que vous pourriez récolter. Nous allons donc successivement créer un utilisateur subversion, puis désactiver les contributions anonymes pour Trac et ajouter un utilisateur possédant les droits d'administration Trac. Notez que nous utiliserons le même fichier de stockage des noms d'utilisateurs et de mots de passe pour Trac et Subversion ; ce fichier sera appelé au niveau de notre fichier de configuration Apache - défini un peu plus bas dans ce tutoriel.
Créons tout d'abord le fichier de stockage des mots de passe Trac/Subversion et ajoutons un utilisateur maintener :
$ sudo htpasswd -c /etc/apache2/dav_svn.passwd maintener
$ sudo htpasswd /etc/apache2/dav_svn.passwd utilisateur
N'oubliez pas que vous devez attribuez des permissions à votre utilisateur pour le projet Trac concerné.
Attribuez-lui un mot de passe. Bien, cet utilisateur aura par la suite officiellement accès à notre dépôt Subversion. Donnons-lui maintenant les droits d'administration totale de Trac :
$ sudo trac-admin /var/trac/projet permission add maintener TRAC_ADMIN
On peut également imaginer la création d'un compte utilisateur développeur, qui peut créer des tickets, en fermer et maintenir le wiki :
$ sudo htpasswd -c /etc/apache2/dav_svn.passwd dev $ sudo trac-admin /var/trac/projet permission add dev WIKI_CREATE WIKI_MODIFY TICKET_CREATE TICKET_MODIFY
Il nous reste à desactiver les contributions anonymes :
$ sudo trac-admin /var/trac/monzouliprojet permission remove anonymous WIKI_CREATE WIKI_MODIFY TICKET_CREATE TICKET_MODIFY
Vous trouverez plus d'informations sur les privilèges de Trac sur la page qui lui est consacrée.
Côté Subversion, il nous faut autoriser les checkouts anonymes mais s'assurer que'un utilisateur est authentifié avant d'accepter ses commits. Cela se configure très facilement dans le fichier /var/svn/projet/conf/svnserve.conf, dans lequel vous pouvez saisir :
[general] anon-access = read auth-access = write password-db = passwd # authz-db = authz realm = Projet Subversion Repository
Nous devons rendre accessible par le web notre instance de Trac ainsi que le dépôt Subversion associé, par le biais d'un hôte virtuel apache dédié :
$ sudo vi /etc/apache2/sites-available/trac.conf
On y écrit les paramètres de notre hôte dédié, en admettant que nous disposons du domaine mondomaine.org nanti d'un sous-domaine trac :
<VirtualHost *> ServerAdmin webmaster@mondomaine.org ServerName trac.mondomaine.org DocumentRoot /var/trac/projet <Location /> SetHandler mod_python PythonHandler trac.web.modpython_frontend PythonOption TracEnv /var/trac/projet PythonOption TracUriRoot / PythonPath "sys.path + ['/var/trac/projet']" </Location> ErrorLog /var/log/apache2/error.trac.domaine.org.log CustomLog /var/log/apache2/access.trac.domaine.org.log combined <Location /svn> DAV svn SVNPath /var/svn/projet AuthType Basic AuthName "Projet Subversion repository" AuthUserFile /etc/apache2/dav_svn.passwd <LimitExcept GET PROPFIND OPTIONS REPORT> Require valid-user </LimitExcept> </Location> <Location "/login"> AuthType Basic AuthName "Trac login" AuthUserFile /etc/apache2/dav_svn.passwd Require valid-user </Location> </VirtualHost>
Vous devrez bien entendu enregistrer le domaine et le sous domaine dans votre fichier de configuration DNS, voire simplement dans votre fichier /etc/hosts si vous disposez d'un service de gestion DNS décentralisé comme celui que propose la société Gandi. Par exemple :
## Fichier /etc/hosts
127.0.0.1 localhost localhost.localdomain mamachine
123.124.125.126 trac.mondomaine.org
Nous utilisons mod_python (précédemment installé), n'oublions pas de l'activer :
$ sudo a2enmod mod_python
Ceci fait, il nous reste à activer le nouvel hôte apache et à relancer ce dernier :
$ sudo a2ensite trac.mondomaine.org $ sudo /etc/init.d/apache2 restart
Pour vérifier que tout s'est déroulé correctement, faites pointer votre navigateur préféré vers l'adresse trac.mondomaine.org, vous devriez accéder sans encombres à votre instance nouvellement créée. Vous pouvez vous logguer en cliquant sur le lien Login et en fournissant les paramètres d'accès utilisateur que vous avez définis précédemment. Si vous vous logguez en administrateur Trac, vous devriez disposer du menu Admin donnant accès à l'extension WebAdmin où vous pourrez ajuster les paramètres de votre instance aux petits oignons.
Côté subversion, vous pouvez effectuer un checkout de votre projet de cette façon :
$ svn co http://trac.mondomaine.org/svn/trunk/ .
Un commit nécessitera cependant l'authentification ; vous pourrez forcer le nom d'utilisateur à utiliser :
$ svn commit -m "test de commit" main/test/toto.txt --username mainteneur