Ahora vamos a configurar un demonio'' sirviendo repositorios mediante el
protocolo Git''. Es la forma más común para dar acceso anónimo,
pero rápido, a los repositorios. Recuerda: 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-daemonun 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/
respawnPor 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-daemonEn 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-okLa presencia de este archivo dice a Git que este proyecto se puede servir sin problema sin necesidad de autentificación de usuarios.