« Installation et mise en place de trac » : différence entre les versions
Aucun résumé des modifications |
Aucun résumé des modifications |
||
Ligne 6 : | Ligne 6 : | ||
Ce howto va vous montrer comment mettre en place ce système de tracking. | Ce howto va vous montrer comment mettre en place ce système de tracking. | ||
Le domaine utilisé est <code>trac.pfoo. | Le domaine utilisé est <code>trac.pfoo.domain.tld</code> qui est un alias pour <code>srv.domain.tld</code>.<br /> | ||
<code> | <code>srv.domain.tld</code> est le domaine identifiant le serveur sur lequel se trouvera le trac. Il possède l'adresse ipv4 <code>213.186.47.110</code> et l'adresse ipv6 <code>2001:41d0:1:d6e::110</code>. | ||
Ce howto est construit de manière à respecter mon howto sur apache 2 ainsi que celui sur svn. Les changements de permissions effectués dans ce howto supposent que vous êtes en umask 0027 | Ce howto est construit de manière à respecter mon howto sur apache 2 ainsi que celui sur svn. Les changements de permissions effectués dans ce howto supposent que vous êtes en umask 0027 | ||
Ligne 13 : | Ligne 13 : | ||
=Champs dns= | =Champs dns= | ||
Éditez le fichier de la zone dns de votre domaine (<code>/srv/bind/ | Éditez le fichier de la zone dns de votre domaine (<code>/srv/bind/domain.tld.hosts</code> dans mon cas) et ajoutez les lignes suivantes si elles ne sont pas présentent : | ||
<pre> | <pre> | ||
srv.domain.tld. IN A 213.186.47.110 | |||
srv.domain.tld. IN AAAA 2001:41d0:1:d6e::110 | |||
trac.pfoo IN CNAME | trac.pfoo IN CNAME srv.domain.tld. | ||
</pre> | </pre> | ||
Ligne 32 : | Ligne 32 : | ||
=Création de l'environnement trac= | =Création de l'environnement trac= | ||
Nous allons créer un environnement trac nommé "trac" dans <code>/srv/http/ | Nous allons créer un environnement trac nommé "trac" dans <code>/srv/http/domain.tld/pfoo.domain.tld/trac/</code> : | ||
<pre>trac-admin /srv/http/ | <pre>trac-admin /srv/http/domain.tld/pfoo.domain.tld/trac initenv</pre> | ||
Il va falloir répondre à une série de questions: | Il va falloir répondre à une série de questions: | ||
Ligne 40 : | Ligne 40 : | ||
Database connection string [sqlite:db/trac.db]> appuyez sur enter | Database connection string [sqlite:db/trac.db]> appuyez sur enter | ||
Repository type [svn]> appuyez sur enter | Repository type [svn]> appuyez sur enter | ||
Path to repository [/var/svn/test]> /srv/http/ | Path to repository [/var/svn/test]> /srv/http/domain.tld/pfoo.domain.tld/svn/ | ||
Templates directory [/usr/share/trac/templates]> appuyez sur enter | Templates directory [/usr/share/trac/templates]> appuyez sur enter | ||
</pre> | </pre> | ||
Comme vous pouvez le voir, je couple trac avec mon dépôt subversion situé dans <code>/srv/http/ | Comme vous pouvez le voir, je couple trac avec mon dépôt subversion situé dans <code>/srv/http/domain.tld/pfoo.domain.tld/svn/</code>. | ||
Pour fonctionner, il faut que l'environnement trac soit accessible en lecture et en écriture par apache. Modifiez donc les droits d'accès : | Pour fonctionner, il faut que l'environnement trac soit accessible en lecture et en écriture par apache. Modifiez donc les droits d'accès : | ||
<pre> | <pre> | ||
chown -R root:www-data /srv/http/ | chown -R root:www-data /srv/http/domain.tld/pfoo.domain.tld/trac/ | ||
chmod -R g+w /srv/http/ | chmod -R g+w /srv/http/domain.tld/pfoo.domain.tld/trac/ | ||
</pre> | </pre> | ||
Ligne 56 : | Ligne 56 : | ||
Nous allons maintenant créer deux utilisateurs ayant accès à trac. On préfèrera crypter les mots-de-passes en SHA (option -s) | Nous allons maintenant créer deux utilisateurs ayant accès à trac. On préfèrera crypter les mots-de-passes en SHA (option -s) | ||
<pre> | <pre> | ||
htpasswd -cs /srv/http/ | htpasswd -cs /srv/http/domain.tld/pfoo.domain.tld/trac.htpasswd pfoo | ||
htpasswd -s /srv/http/ | htpasswd -s /srv/http/domain.tld/pfoo.domain.tld/trac.htpasswd jonass | ||
</pre> | </pre> | ||
Bien-sur, il faut que ce fichier soit accessible par apache : | Bien-sur, il faut que ce fichier soit accessible par apache : | ||
<pre>chown root:www-data /srv/http/ | <pre>chown root:www-data /srv/http/domain.tld/pfoo.domain.tld/trac.htpasswd</pre> | ||
=Configuration de apache2= | =Configuration de apache2= | ||
Créez le fichier <code>/etc/apache2/vhosts/trac.pfoo. | Créez le fichier <code>/etc/apache2/vhosts/trac.pfoo.domain.tld.conf</code> et ajoutez y les lignes suivantes : | ||
<pre><nowiki> | <pre><nowiki> | ||
<VirtualHost 213.186.47.110:80> | <VirtualHost 213.186.47.110:80> | ||
ServerName trac.pfoo. | ServerName trac.pfoo.domain.tld | ||
Include sites/trac.pfoo. | Include sites/trac.pfoo.domain.tld.conf | ||
</VirtualHost> | </VirtualHost> | ||
<VirtualHost [2001:41d0:1:d6e::110]:80> | <VirtualHost [2001:41d0:1:d6e::110]:80> | ||
ServerName trac.pfoo. | ServerName trac.pfoo.domain.tld | ||
Include sites/trac.pfoo. | Include sites/trac.pfoo.domain.tld.conf | ||
</VirtualHost> | </VirtualHost> | ||
</nowiki></pre> | </nowiki></pre> | ||
Ligne 83 : | Ligne 83 : | ||
==Avec CGI== | ==Avec CGI== | ||
Créez le fichier <code>/etc/apache2/sites/trac.pfoo. | Créez le fichier <code>/etc/apache2/sites/trac.pfoo.domain.tld.conf</code> et ajoutez y les lignes suivantes : | ||
<pre> | <pre> | ||
ScriptAlias /trac /usr/share/trac/cgi-bin/trac.cgi | ScriptAlias /trac /usr/share/trac/cgi-bin/trac.cgi | ||
<Location "/trac"> | <Location "/trac"> | ||
SetEnv TRAC_ENV "/srv/http/ | SetEnv TRAC_ENV "/srv/http/domain.tld/pfoo.domain.tld/trac/" | ||
</Location> | </Location> | ||
<Location "/trac/login"> | <Location "/trac/login"> | ||
AuthType Basic | AuthType Basic | ||
AuthName "Trac" | AuthName "Trac" | ||
AuthUserFile /srv/http/ | AuthUserFile /srv/http/domain.tld/pfoo.domain.tld/trac.htpasswd | ||
Require valid-user | Require valid-user | ||
</Location> | </Location> | ||
Ligne 109 : | Ligne 109 : | ||
</pre> | </pre> | ||
Créez le fichier <code>/etc/apache2/sites/trac.pfoo. | Créez le fichier <code>/etc/apache2/sites/trac.pfoo.domain.tld.conf</code> et ajoutez y les lignes suivantes : | ||
<pre><nowiki> | <pre><nowiki> | ||
<Location /trac> | <Location /trac> | ||
Ligne 115 : | Ligne 115 : | ||
PythonInterpreter main_interpreter | PythonInterpreter main_interpreter | ||
PythonHandler trac.web.modpython_frontend | PythonHandler trac.web.modpython_frontend | ||
PythonOption TracEnv /srv/http/ | PythonOption TracEnv /srv/http/domain.tld/pfoo.domain.tld/trac/ | ||
PythonOption TracUriRoot /trac | PythonOption TracUriRoot /trac | ||
SetEnv PYTHON_EGG_CACHE /srv/http/ | SetEnv PYTHON_EGG_CACHE /srv/http/domain.tld/pfoo.domain.tld/trac/cache/ | ||
</Location> | </Location> | ||
<Location "/trac/login"> | <Location "/trac/login"> | ||
AuthType Basic | AuthType Basic | ||
AuthName "Trac" | AuthName "Trac" | ||
AuthUserFile /srv/http/ | AuthUserFile /srv/http/domain.tld/pfoo.domain.tld/trac.htpasswd | ||
Require valid-user | Require valid-user | ||
</Location> | </Location> | ||
Ligne 133 : | Ligne 133 : | ||
=Configuration de trac.ini= | =Configuration de trac.ini= | ||
Le fichier de configuration de votre trac est <code>/srv/http/ | Le fichier de configuration de votre trac est <code>/srv/http/domain.tld/pfoo.domain.tld/trac/conf/trac.ini</code>. | ||
Vous pouvez le modifier à votre guise. Si vous souhaitez coupler votre trac avec un dépôt svn, il faut modifier la directive <code>repository_dir</code> afin qu'elle corresponde au chemin de votre dépôt subersion. Normalement, ceci est déjà fait étant donné que vous avez entré le chemin de votre dépôt lors de la création de l'environnement trac. | Vous pouvez le modifier à votre guise. Si vous souhaitez coupler votre trac avec un dépôt svn, il faut modifier la directive <code>repository_dir</code> afin qu'elle corresponde au chemin de votre dépôt subersion. Normalement, ceci est déjà fait étant donné que vous avez entré le chemin de votre dépôt lors de la création de l'environnement trac. | ||
Ligne 139 : | Ligne 139 : | ||
Depuis <code>Trac 0.11</code> le plugin Webadmin est inclut par défaut avec Trac. Pour qu'un utilisateur puisse y accéder il suffit de lui ajouter la permission <code>TRAC_ADMIN</code>. Par exemple : | Depuis <code>Trac 0.11</code> le plugin Webadmin est inclut par défaut avec Trac. Pour qu'un utilisateur puisse y accéder il suffit de lui ajouter la permission <code>TRAC_ADMIN</code>. Par exemple : | ||
<pre>trac-admin /srv/http/ | <pre>trac-admin /srv/http/domain.tld/pfoo.domain.tld/trac/ permission add pfoo TRAC_ADMIN</pre> | ||
En rechargeant la page de Trac vous verrez apparaître un bouton admin. | En rechargeant la page de Trac vous verrez apparaître un bouton admin. | ||
Ligne 145 : | Ligne 145 : | ||
=Ajouter une feuille de style CSS= | =Ajouter une feuille de style CSS= | ||
Vous pouvez embellir votre page trac avec une feuille de style CSS. Pour cela, rendez dans votre dossier trac (<code>/srv/http/ | Vous pouvez embellir votre page trac avec une feuille de style CSS. Pour cela, rendez dans votre dossier trac (<code>/srv/http/domain.tld/pfoo.domain.tld/trac/</code> dans mon cas) et modifiez le fichier <code>templates/site.html</code> : | ||
<pre><nowiki> | <pre><nowiki> | ||
<head py:match="head" py:attrs="select('@*')"> | <head py:match="head" py:attrs="select('@*')"> |
Version du 29 juin 2013 à 00:59
Ce howto a été écrit au départ pour debian etch puis a été adapté pour debian lenny. Il reste cependant valable la plupart du temps pour ces deux versions de debian.
Trac est un système de tracking pour le développement d'applications. Il se compose d'une interface web, d'un wiki, et permet d'intégrer facilement un dépôt SubVersion.
Ce howto va vous montrer comment mettre en place ce système de tracking.
Le domaine utilisé est trac.pfoo.domain.tld
qui est un alias pour srv.domain.tld
.
srv.domain.tld
est le domaine identifiant le serveur sur lequel se trouvera le trac. Il possède l'adresse ipv4 213.186.47.110
et l'adresse ipv6 2001:41d0:1:d6e::110
.
Ce howto est construit de manière à respecter mon howto sur apache 2 ainsi que celui sur svn. Les changements de permissions effectués dans ce howto supposent que vous êtes en umask 0027
Champs dns
Éditez le fichier de la zone dns de votre domaine (/srv/bind/domain.tld.hosts
dans mon cas) et ajoutez les lignes suivantes si elles ne sont pas présentent :
srv.domain.tld. IN A 213.186.47.110 srv.domain.tld. IN AAAA 2001:41d0:1:d6e::110 trac.pfoo IN CNAME srv.domain.tld.
Bien-sur si vous ne disposez pas d'ipv6 vous n'avez pas besoin du champs AAAA
.
Installation
On va commencer par installer trac à partir des dépôts debian :
aptitude install trac
Trac nécessite un gestionnaire de base de donnée. Le support MySQL n'était encore qu'en test au moment où j'écris ces lignes, nous allons plutôt utiliser sqlite.
aptitude install sqlite
Création de l'environnement trac
Nous allons créer un environnement trac nommé "trac" dans /srv/http/domain.tld/pfoo.domain.tld/trac/
:
trac-admin /srv/http/domain.tld/pfoo.domain.tld/trac initenv
Il va falloir répondre à une série de questions:
Project Name [My Project]> myproject Database connection string [sqlite:db/trac.db]> appuyez sur enter Repository type [svn]> appuyez sur enter Path to repository [/var/svn/test]> /srv/http/domain.tld/pfoo.domain.tld/svn/ Templates directory [/usr/share/trac/templates]> appuyez sur enter
Comme vous pouvez le voir, je couple trac avec mon dépôt subversion situé dans /srv/http/domain.tld/pfoo.domain.tld/svn/
.
Pour fonctionner, il faut que l'environnement trac soit accessible en lecture et en écriture par apache. Modifiez donc les droits d'accès :
chown -R root:www-data /srv/http/domain.tld/pfoo.domain.tld/trac/ chmod -R g+w /srv/http/domain.tld/pfoo.domain.tld/trac/
Création de deux utilisateurs
Nous allons maintenant créer deux utilisateurs ayant accès à trac. On préfèrera crypter les mots-de-passes en SHA (option -s)
htpasswd -cs /srv/http/domain.tld/pfoo.domain.tld/trac.htpasswd pfoo htpasswd -s /srv/http/domain.tld/pfoo.domain.tld/trac.htpasswd jonass
Bien-sur, il faut que ce fichier soit accessible par apache :
chown root:www-data /srv/http/domain.tld/pfoo.domain.tld/trac.htpasswd
Configuration de apache2
Créez le fichier /etc/apache2/vhosts/trac.pfoo.domain.tld.conf
et ajoutez y les lignes suivantes :
<VirtualHost 213.186.47.110:80> ServerName trac.pfoo.domain.tld Include sites/trac.pfoo.domain.tld.conf </VirtualHost> <VirtualHost [2001:41d0:1:d6e::110]:80> ServerName trac.pfoo.domain.tld Include sites/trac.pfoo.domain.tld.conf </VirtualHost>
Si vous voulez une vhost sécurisée en ssl, je vous renvois à mon howto sur apache2.
Maintenant, deux choix s'offrent à nous pour l'accès web au déport trac. On peut soit utiliser CGI
, soit utiliser mod-python
. Personnellement, je préfère mod-python
.
Avec CGI
Créez le fichier /etc/apache2/sites/trac.pfoo.domain.tld.conf
et ajoutez y les lignes suivantes :
ScriptAlias /trac /usr/share/trac/cgi-bin/trac.cgi <Location "/trac"> SetEnv TRAC_ENV "/srv/http/domain.tld/pfoo.domain.tld/trac/" </Location> <Location "/trac/login"> AuthType Basic AuthName "Trac" AuthUserFile /srv/http/domain.tld/pfoo.domain.tld/trac.htpasswd Require valid-user </Location> RedirectMatch ^/$ /trac/
Il ne reste plus qu'à reloader apache :
/etc/init.d/apache2 reload
Avec mod-python
Pour commencer, il faut installer mod-python et le loader :
aptitude install libapache2-mod-python libapache2-mod-python-doc a2enmod python
Créez le fichier /etc/apache2/sites/trac.pfoo.domain.tld.conf
et ajoutez y les lignes suivantes :
<Location /trac> SetHandler mod_python PythonInterpreter main_interpreter PythonHandler trac.web.modpython_frontend PythonOption TracEnv /srv/http/domain.tld/pfoo.domain.tld/trac/ PythonOption TracUriRoot /trac SetEnv PYTHON_EGG_CACHE /srv/http/domain.tld/pfoo.domain.tld/trac/cache/ </Location> <Location "/trac/login"> AuthType Basic AuthName "Trac" AuthUserFile /srv/http/domain.tld/pfoo.domain.tld/trac.htpasswd Require valid-user </Location> RedirectMatch ^/$ /trac/
Il ne reste plus qu'à reloader apache :
/etc/init.d/apache2 reload
Configuration de trac.ini
Le fichier de configuration de votre trac est /srv/http/domain.tld/pfoo.domain.tld/trac/conf/trac.ini
.
Vous pouvez le modifier à votre guise. Si vous souhaitez coupler votre trac avec un dépôt svn, il faut modifier la directive repository_dir
afin qu'elle corresponde au chemin de votre dépôt subersion. Normalement, ceci est déjà fait étant donné que vous avez entré le chemin de votre dépôt lors de la création de l'environnement trac.
Trac Webadmin
Depuis Trac 0.11
le plugin Webadmin est inclut par défaut avec Trac. Pour qu'un utilisateur puisse y accéder il suffit de lui ajouter la permission TRAC_ADMIN
. Par exemple :
trac-admin /srv/http/domain.tld/pfoo.domain.tld/trac/ permission add pfoo TRAC_ADMIN
En rechargeant la page de Trac vous verrez apparaître un bouton admin.
Ajouter une feuille de style CSS
Vous pouvez embellir votre page trac avec une feuille de style CSS. Pour cela, rendez dans votre dossier trac (/srv/http/domain.tld/pfoo.domain.tld/trac/
dans mon cas) et modifiez le fichier templates/site.html
:
<head py:match="head" py:attrs="select('@*')"> ${select('*|comment()|text()')} <link rel="stylesheet" type="text/css" href="${href.chrome('site/style.css')}" /> </head> <div py:match="div[@id='banner']" py:attrs="select('@*')"> <div id="innerbanner"> ${select('*|text()')} </div> </div>
Ensuite ajoutez votre css dans le répertoire site/
de votre trac sous le nom style.css