Receta para crear un servidor git

Trasteando para montar mi propio servidor GIT, he creado esta receta, enfocada a mi necesidad pero que espero que le sirva a alguien más. Me he basado principalmente en un tutorial que encontré en internet, cuya referencia tenéis en los enlaces adjuntos. Lo he probado en Debian y no veo nada que impida que funcione también en Ubuntu. Aquí va:

Primero instalamos los paquetes necesarios…

sudo apt-get install apache2 git-core gitweb openssh-server

Después creamos el directorio servido por apache que contendrá lo necesario para gitweb.cgi. En caso de no existir, también crearemos el directorio del propio repositorio en /var/cache/git

sudo mkdir /var/www/git
[ -d "/var/cache/git" ] || sudo mkdir /var/cache/git

A continuación se crea el fichero para la configuración del virtualhost de git en /etc/apache2/sites-available/git

<VirtualHost git.rebeco.org>
        ServerAdmin rebeco@gmail.com
        DocumentRoot /var/www/git
        <Directory /var/www/git>
                Allow from all
                AllowOverride all
                Order allow,deny
                Options ExecCGI
                <Files gitweb.cgi>
                        SetHandler cgi-script
                </Files>
        </Directory>
        DirectoryIndex gitweb.cgi
        SetEnv GITWEB_CONFIG /etc/gitweb.conf
</VirtualHost>

Se añade el virtualhost a la configuración de arranque de apache…

sudo a2ensite git

Se copian los ficheros de gitweb al directorio del virtualhost…

sudo cp /usr/share/gitweb/* /var/www/git
sudo cp /usr/lib/cgi-bin/gitweb.cgi /var/www/git

Como hemos configurado git en el raíz de un subdominio no tenemos que tocar los path del fichero /etc/gitweb.conf Si se instala como directorio de un dominio existente se tendrían que cambiar para adaptarlos a la nueva ruta. Se reinicia apache para que los cambios sean efectivos.

sudo /etc/init.d/apache2 restart

Con esto ya tenemos montado el servidor git con vista vía apache (que podemos restringir en el mismo apache si es necesario). Ahora vamos a crear un repositorio de prueba para ver que funciona todo. Creamos primero su directorio.

cd /var/cache/git/
sudo mkdir prueba
sudo chown usuario.usuario prueba
cd prueba

Inicializamos el repositorio. En mi caso con la opción –bare ya que lo que estoy montando es un repositorio “central” donde hacer tanto push como pull remoto, no uno de trabajo local.

git init --bare
echo "Descripción del proyecto" > description
git config --global user.name "Pedro León"
git config --global user.email "rebeco@gmail.com"
git commit -a

Y con esto el servidor git ya está disponible vía ssh, que es como yo quiero usarlo. Se puede probar desde otra máquina con:

git clone usuario@git.rebeco.org:/var/cache/git/prueba

Para configurar el server por protocolo git es mejor que mires la documentación u otro tutorial, como por ejemplo en el que me he basado yo.

Tutorial en el que he basado el mío

Web oficial de GIT

Deja un comentario

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