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-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.