Ahora vamos a configurar un demonio sirviendo repositorios mediante el protocolo ``Git''. Es la forma mas común para dar acceso anónimo pero rápido a los repositorios. Recuerda que puesto que es un acceso no autentificado, todo lo que sirvas mediante este protocolo será público en la red.
Si activas el protocolo en un servidor más allá del cortafuegos, lo debes usar únicamente en proyectos que deban ser visibles a todo el mundo. Si el servidor está detrás de un cortafuegos, puedes usarlo en proyectos a los que un gran número de personas o de computadores (por ejemplo, servidores de integración continua o de compilación) tengan acceso de sólo lectura y no necesiten establecer una clave SSH para cada uno de ellos.
El protocolo Git es relativamente fácil de configurar. Básicamente, necesitas ejecutar el comando con la variante demonio (daemon):
git daemon --reuseaddr --base-path=/opt/git/ /opt/git/
El parámetro --reuseaddr
permite al servidor reiniciarse sin esperar
a que se liberen viejas conexiones; el parámetro --base-path
permite a los
usuarios clonar proyectos sin necesidad de indicar su camino completo; y el
camino indicado al final del comando mostrará al demonio Git dónde buscar los
repositorios a exportar. Si tienes un cortafuegos activo, necesitarás abrir
el puerto 9418 para la máquina donde estás configurando el demonio Git.
Este proceso se puede demonizar de diferentes maneras, dependiendo del sistema operativo con el que trabajas. En una máquina Ubuntu, puedes usar un script de arranque. Poniendo en el siguiente archivo:
/etc/event.d/local-git-daemon
un script tal como:
start on startup
stop on shutdown
exec /usr/bin/git daemon \
--user=git --group=git \
--reuseaddr \
--base-path=/opt/git/ \
/opt/git/
respawn
Por razones de seguridad, es recomendable lanzar este demonio con un usuario
que tenga únicamente permisos de lectura en los repositorios (Lo puedes hacer
creando un nuevo usuario 'git-ro' y lanzando el demonio con él). Para
simplificar, en estos ejemplos vamos a lanzar el demonio Git bajo el mismo
usuario git
que se usa con git-shell
.
Tras reiniciar tu máquina, el demonio Git arrancará automáticamente y se reiniciará cuando se caiga. Para arrancarlo sin necesidad de reiniciar la máquina, puedes utilizar el comando:
initctl start local-git-daemon
En otros sistemas operativos, puedes utilizar xinetd
, un script en el
sistema sysvinit
, o alguna otra manera (siempre y cuando demonizes el comando
y puedas monitorizarlo).
A continuación, has de indicar a Git a cuales de tus repositorios ha de permitir
acceso sin autentificar. Lo puedes hacer creando en cada repositorio un archivo
llamado git-daemon-export-ok
.
$ cd /path/to/project.git
$ touch git-daemon-export-ok
La presencia de este archivo dice a Git que este proyecto se puede servir sin problema sin necesidad de autentificación de usuarios.