HowTo/Trac with PostgreSQL and Subversion

Da FSUG Padova - Wiki pages.

In questo documento presento gli appunti che ho salvato durante l'installazione di Trac su dbms PostgreSQL e connessione con repository Subversion

Riferimenti

Ho effettuato l'installazione su un sistema Debian GNU/Linux seguendo la guida disponibile su http://trac.edgewall.org/wiki/TracInstall per i passaggi che servivano.

Se nel seguito qualcosa non è immediatamente chiaro trovate la risposta sulla guida citata.

Istruzioni eseguite

Installazione dei package necessari

apt-get install python-docutils python-pygments postgresql python-psycopg2 apache2 libapache2-mod-wsgi libapache2-mod-auth-pam
easy_install babel
easy_install pytz
apt-get install trac

Configurazione di PostgreSQL

Nel seguito faccio riferimento a PostgreSQL 8.4: se notate differenze utilizzando PostgreSQL 9 per cortesia segnalatelo, grazie :-)

su - postgres
createuser -P trac		# creo l'utente Pg trac inserendo una nuova password
createdb -O trac trac-xyz	# '-O trac' attribuisce all'utente Pg trac la proprietà del database

Bisogna quindi modificare /etc/postgresql/8.4/main/pg_hba.conf per consentire l'accesso tramite password (md5) e ricaricare la configurazione di PostgreSQL con

/etc/init.d/postgresql reload

Inizializzazione del repository Trac per il progetto 'Ics Ypsilon Zeta'

 mkdir /var/lib/trac
 trac-admin /var/lib/trac/xyz initenv
 Creating a new Trac environment at /var/lib/trac/xyz
 [...]
 Project Name [My Project]> Progetto Ics Ypsilon Zeta
 [...]
 Database connection string [sqlite:db/trac.db]> postgres://trac:XXXXXXXX@/trac-xyz # XXXXXXXX è la password dell'utente ''trac''
 [...]
 Repository type [svn]> [RETURN]
 [...]
 Path to repository [/path/to/repos]> /var/lib/svn/xyz
 [...]
 Project environment for 'Progetto Ics Ypsilon Zeta' created.

 You may now configure the environment by editing the file:

   /var/lib/trac/xyz/conf/trac.ini

 If you'd like to take this new project environment for a test drive,
 try running the Trac standalone web server `tracd`:

   tracd --port 8000 /var/lib/trac/xyz

 Then point your browser to http://localhost:8000/xyz.
 There you can also browse the documentation for your installed
 version of Trac, including information on further setup (such as
 deploying Trac to a real web server).

 The latest documentation can also always be found on the project
 website:

   http://trac.edgewall.org/

 Congratulations!

Configurazione del web server

Trac è corredato di un web server minimale, tracd, ma per maggiore flessibilità uso Apache, con mod_wsgi (consigliato).

La configurazione di Apache esula dallo scopo di questi appunti pertanto assumo che lo abbiate già installato come preferite.

E' necessario attribuire all'utente dei processi di Apache i diritti di scrittura sul repository Trac:

chown -R www-data: /var/lib/trac/xyz

Creazione dei directory htdocs e cgi-bin:

trac-admin /var/lib/trac/xyz deploy /tmp/deploy
mv /tmp/deploy/* /var/lib/trac/

Creiamo il directory cache per gli egg:

mkdir /var/lib/trac/eggs

e ne informiamo Apache impostando la variabile d'ambiente corrispondente PYTHON_EGG_CACHE.

Accesso a Trac

L'argomento autenticazione è vasto e le scelte dipendono dai sistemi che preferite utilizzare, in dipendenza dal vostro contesto di sicurezza, pertanto non considero qui l'argomento dal punto di vista di Apache e mi limito a considerare le opzioni di accesso per Trac.

Sulla console di Trac togliamo all'utente anonimo tutti i permessi e assegnamo ai nostri utenti i permessi necessari:

trac-admin /var/lib/trac/xyz
Trac [/var/lib/trac/xyz]> permission remove anonymous BROWSER_VIEW CHANGESET_VIEW FILE_VIEW LOG_VIEW MILESTONE_VIEW \
                          REPORT_SQL_VIEW REPORT_VIEW ROADMAP_VIEW SEARCH_VIEW TICKET_VIEW TIMELINE_VIEW WIKI_VIEW
Trac [/var/lib/trac/xyz]> permission add andrea all # Fa' vedere che abbondiamo...