Mar. Abr 16th, 2024

Durante mi vida profesional he usado multiples gestores de proyectos, pero hay uno que me ha llamado la atención gratamente por su sencillez y utilidad en desarrollos ágiles; Trac.


Escrito en Python y con compatibilidad con los motores de bases de datos más usados(PostgreSQL, MySQl, sqlLite…) y con servidores web como  Apache y todos los compatibles con ajp y fastcgi.

Asimismo se integra a la perfección con Subversion 1.5 y 1.6

Para realizar una instalación estándar con MySQL como base de datos y Apache como servidor web mediante  AJP podemos seguir los siguientes pasos:

  • Bajarse la última versión estable de la página del proyecto
  • Tener instalados los siguientes paquetes:
  • Descomprimir las fuentes:
$ tar zxvf Trac-0.12.2.tar.gz
  • Ejecutamos la instalación:
$ python ./setup.py install
  • Creamos la base de datos, comprobamos que tenga el character-set UTF8 y le damos permisos a un usuario para administrar la base de datos

mysql> CREATE DATABASE trac DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;

Query OK, 1 row affected (0.00 sec)
mysql> use trac;

Database changed

mysql> SHOW VARIABLES WHERE variable_name IN (‘character_set_database’, ‘collation_database’);

Variable_name          | Value    |

character_set_database | utf8     ||

collation_database     | utf8_bin |

2 rows in set (0.05 sec)
mysql> GRANT ALL ON trac.* TO tracuser@localhost IDENTIFIED BY ‘xxxxxxxx’;

Query OK,0 rows affected (0.16 sec)

  • A continuación se crea el proyecto en Trac
$ trac-admin /home/proyectoTrac/ initenv

Creating a new Trac environment at /home/proyectoTrac
Trac will first ask a few questions about your environment in order to initialise and prepare the project database.
Please enter the name of your project. This name will be used in page titles and descriptions.
Project name [My Project]> Prueba

Please specify the connection string for the database to use. By default, a local SQLite database is created in the environment directory. It is also possible to use an already existing PostgreSQL database (check the Trac documentation for the exact connection string syntax).
Database connection string [sqlite:db/trac.db]> mysql://tracuser:password@localhost/trac

Tras esto se creará el proyecto en Trac y podremos probar que todo ha ido bien arrancando el servidor ligero en el puerto deseado, por ejemplo:

$ tracd --port 8000 /home/proyectoTrac

Con lo que se arrancará en el puerto 8000 el servidor ligero escrito enPython de Trac.

Si todo ha ido bien veremos un listado de los proyectos creados.

Para que Apache sea quien sirve la página la manera más sencilla es mediante AJP.

Asi pues configuraremos un virtual host de la siguiente manera:
<VirtualHost 10.234.213.66:80>

ServerName trac.xxxx.es

ProxyRequests Off

<Proxy *>

Order deny,allow

Allow from all

</Proxy>

ProxyPass / http://127.0.0.1:8000/

<Location />

ProxyPassReverse http://127.0.0.1:8000/

</Location>ProxyPreserveHost On

</VirtualHost>

Pero seguramente querremos tener usuarios para llevar un control de las incidencias y táreas de cada usuario y asignar permisos.

Una manera sencilla de realizar esto es mediante la autenticación básica de Apache, por lo que crearemos un fichero de autenticación de la siguiente manera:

$ htpasswd -cm /path/to/env/.htpasswd username

De esta manera con el parametro -c creamos el fichero(si existe sobreescribe toda su información) y con -m ciframos el password. Para añadir nuevos usuarios ejecutaremos el comando sin -c para que no machaque los usuarios ya creados. Ahora sólo resta arrancar el servidor con la opción --basic-auth y los parámetros correctos

$ tracd -s --port 8000 --basic-auth="carpetadelproyecto,ficherohtpassword" directoriodondeestanlosproyectos

Arrancamos Apache y podremos acceder a través del puerto 80 con autenticación båsica. Es imprescindible leer la completa documentación disponible para entender y configurar a nuestra medida Trac En próximas entregas ahondaré en la gestión del workflow de los proyectos y sus tareas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *