Subversion y Trac · 3 min read · Jan 20, 2026
Configurando Subversion y Trac como Hosts Virtuales en un Servidor Ubuntu
Configurando Subversion y Trac como Hosts Virtuales en un Servidor Ubuntu
Este manual describe el proceso mediante el cual se puede configurar el sistema de control de versiones Subversion y hacer que funcione en conjunto con Trac, el gestor de proyectos para proyectos de desarrollo de software, en un servidor que ejecute Ubuntu (o posiblemente Debian). Es presentado por Openject Consulting.
Configurando Subversion
Para obtener información detallada sobre esto, incluyendo configuraciones alternativas, echa un vistazo a Control de Versiones con Subversion.
- Instala los paquetes requeridos.sudo aptitude install enscript libapache2-mod-python python-docutils trac db4.3-util libapache2-svn subversion-tools
- Crea un directorio de host virtual para SVN. Usaremos /var/local/svn en lugar de /var/www para que las instancias de Subversion no saturen el directorio de directorios raíz web.sudo mkdir -p /var/local/svn/svn.example.com
- Crea un grupo de desarrollo y añade al usuario web a él.sudo addgroup example; sudo adduser www-data example
- Añade usuarios al grupo de desarrollo. Estas son personas que necesitan acceso al repositorio.sudo adduser username1 example
sudo adduser username2 example
sudo adduser username3 example - Establece los permisos adecuados.sudo chmod 2770 /var/local/svn/svn.example.com
- Configura el repositorio.sudo svnadmin create /var/local/svn/svn.example.com
- Limpia el archivo de contraseñas actual. Por defecto es para el protocolo svnserve, pero usaremos HTTPS (o solo HTTP). Añadiremos usuarios a este archivo más adelante en el proceso.sudo rm /var/local/svn/svn.example.com/conf/passwd
sudo touch /var/local/svn/svn.example.com/conf/passwd - Permite que el grupo escriba en el repositorio.sudo chmod -R g+w /var/local/svn/svn.example.com
- Establece la propiedad adecuada de los archivos.sudo chown -R www-data:example /var/local/svn/svn.example.com
- Establece los permisos de acceso al repositorio. La información sobre cómo hacer esto se puede encontrar en la sección de Autorización Basada en Rutas de Control de Versiones con Subversion.sudo vi /var/local/svn/svn.example.com/conf/authz
- Crea un directorio para los archivos de registro.sudo mkdir /var/log/apache2/svn.example.com
- Añade el sitio a la lista de rotación de registros.sudo vi /etc/logrotate.d/apache2
- Configura el host virtual…sudo vi /etc/apache2/sites-available/svn.example.com…con los siguientes datos. Si no te importa SSL, puedes ignorar las opciones de SSL y ejecutar esto en el puerto 80.
Referencia:/etc/apache2/mods-enabled/dav_svn.confServerName svn.example.com DAV svn AuthType Basic AuthName "svn.example.com" AuthUserFile /var/local/svn/svn.example.com/conf/passwd AuthzSVNAccessFile /var/local/svn/svn.example.com/conf/authz SVNPath /var/local/svn/svn.example.com Require valid-user CustomLog /var/log/apache2/svn.example.com/access.log combined ErrorLog /var/log/apache2/svn.example.com/error.log SSLEngine on SSLCertificateFile /etc/apache2/ssl/apache.pem # Añade esto una vez que haya un certificado real (no autofirmado). # SSLCertificateKeyFile /etc/apache2/ssl/server.key ServerName svn.example.com Redirect / https://svn.example.com/ - Habilita el host virtual de subversion.sudo a2ensite svn.example.com
- Crea combinaciones de usuario/contraseña.htpasswd /var/local/svn/svn.example.com/conf/passwd username
- Reinicia el servidor web.sudo /etc/init.d/apache2 restart
- Si vas a tener usuarios trabajando localmente, configura svnwrap. (Consulta la página del manual para más detalles.)sudo ln -s /usr/bin/svnwrap /usr/local/bin/svn
Configurando Trac
- Crea el directorio web. Usaremos /var/local/trac en lugar de /var/www para no saturar el directorio de raíces web.sudo mkdir -p /var/local/trac/trac.example.com
- Establece los permisos adecuados.sudo chmod 2770 /var/local/trac/trac.example.com
- Crea una instancia de Trac.sudo trac-admin /var/local/trac/trac.example.com initenv
- Establece la propiedad adecuada en el directorio web.sudo chown -R www-data:example /var/local/trac/trac.example.com
- Permite que el grupo escriba en el repositorio.sudo chmod -R g+w /var/local/trac/trac.example.com
- Configúralo.sudo vi /var/local/trac/trac.example.com/conf/trac.ini
- Crea un directorio para los archivos de registro.sudo mkdir /var/log/apache2/trac.example.com
- Añade el sitio a la lista de rotación de registros.sudo vi /etc/logrotate.d/apache2
- Configura el host virtual…sudo vi /etc/apache2/sites-available/trac.example.com…con los siguientes datos. Si no te importa SSL, puedes omitir las opciones de SSL y ejecutar esto en el puerto 80.
# Configuración de TracReferencia: http://trac.edgewall.org/wiki/TracOnUbuntuServerName trac.example.com Redirect / https://trac.example.com/ ServerName trac.example.com DocumentRoot /var/local/trac/trac.example.com/ Alias /trac/ /usr/share/trac/htdocs Options Indexes MultiViews AllowOverride None Order allow,deny Allow from all SetHandler mod_python PythonHandler trac.web.modpython_frontend PythonInterpreter main_interpreter PythonOption TracEnv /var/local/trac/trac.example.com/ PythonOption TracUriRoot / AuthType Basic AuthName "trac.example.com" # Usa el archivo de contraseñas de SVN. AuthUserFile /var/local/svn/svn.example.com/conf/passwd Require valid-user CustomLog /var/log/apache2/trac.example.com/access.log combined ErrorLog /var/log/apache2/trac.example.com/error.log SSLEngine on SSLCertificateFile /etc/apache2/ssl/apache.pem # Añade esto una vez que haya un certificado real (no autofirmado). # SSLCertificateKeyFile /etc/apache2/ssl/server.key - Habilita el host virtual de Trac.sudo a2ensite trac.example.com
- Configura los permisos de Trac. Una vez que estés dentro de la consola de administración, ejecuta el comando “help permission” para obtener información sobre cómo hacerlo. Esto es importante porque algunas configuraciones son permisivas por defecto, cuando deberían ser restrictivas. Además, consulta la página wiki TracPermissions que viene con tu nueva instalación.trac-admin /var/local/trac/trac.example.com
- Reinicia el servidor web.sudo /etc/init.d/apache2 restart
Lo último que queda por hacer es añadir los subdominios “svn” y “trac” a la configuración DNS de tu dominio. Una vez que esto esté hecho, Subversion y Trac estarán integrados en tu entorno de servidor y serán accesibles desde la web.
Recibe nuevas publicaciones en tu bandeja de entrada.
No spam. Cancela la suscripción en cualquier momento.