-
1. Inicio - Sobre el Control de Versiones
-
2. Fundamentos de Git
-
3. Ramificaciones en Git
-
4. Git en el Servidor
- 4.1 Los Protocolos
- 4.2 Configurando Git en un servidor
- 4.3 Generando tu clave pública SSH
- 4.4 Configurando el servidor
- 4.5 El demonio Git
- 4.6 HTTP Inteligente
- 4.7 GitWeb
- 4.8 GitLab
- 4.9 Git en un alojamiento externo
- 4.10 Resumen
-
5. Git en entornos distribuidos
-
6. GitHub
-
7. Herramientas de Git
- 7.1 Revisión por selección
- 7.2 Organización interactiva
- 7.3 Guardado rápido y Limpieza
- 7.4 Firmando tu trabajo
- 7.5 Buscando
- 7.6 Reescribiendo la Historia
- 7.7 Reiniciar Desmitificado
- 7.8 Fusión Avanzada
- 7.9 Rerere
- 7.10 Haciendo debug con Git
- 7.11 Submódulos
- 7.12 Agrupaciones
- 7.13 Replace
- 7.14 Almacenamiento de credenciales
- 7.15 Resumen
-
8. Personalización de Git
-
9. Git y Otros Sistemas
- 9.1 Git como Cliente
- 9.2 Migración a Git
- 9.3 Resumen
-
10. Los entresijos internos de Git
-
A1. Apéndice A: Git en otros entornos
- A1.1 Interfaces gráficas
- A1.2 Git en Visual Studio
- A1.3 Git en Eclipse
- A1.4 Git con Bash
- A1.5 Git en Zsh
- A1.6 Git en Powershell
- A1.7 Resumen
-
A2. Apéndice B: Integrando Git en tus Aplicaciones
- A2.1 Git mediante Línea de Comandos
- A2.2 Libgit2
- A2.3 JGit
-
A3. Apéndice C: Comandos de Git
- A3.1 Configuración
- A3.2 Obtener y Crear Proyectos
- A3.3 Seguimiento Básico
- A3.4 Ramificar y Fusionar
- A3.5 Compartir y Actualizar Proyectos
- A3.6 Inspección y Comparación
- A3.7 Depuración
- A3.8 Parcheo
- A3.9 Correo Electrónico
- A3.10 Sistemas Externos
- A3.11 Administración
- A3.12 Comandos de Fontanería
4.5 Git en el Servidor - El demonio Git
El demonio Git
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.