Instalar servidor para el protocolo Git

Una vez instalado el servidor Git sobre Nginx he decidido agregarle la opción de publicar los repositorios públicos sobre el protocolo Git y, si bien las configuraciones se basan en la configuración dada en el tutorial previo de Cómo instalar un servidor Git sobre Nginx, el ejemplo puede ser fácilmente extendido a otros casos.

Configuración

El servicio sobre el protocolo Git se implementa utilizando el ejecutable git-daemon incluido en la propia distribución de Git. Para activarlo, primeramente se crea o edita el fichero /lib/systemd/system/git‑daemon.service con el contenido siguiente:

[Unit]
Description=Start Git Daemon
After=network.target syslog.service

[Service]
ExecStart=/usr/bin/git daemon --reuseaddr --base-path=/var/local/git/pub/ /var/local/git/pub/

Restart=always
RestartSec=500ms

StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=git-daemon

User=www-data
Group=www-data

[Install]
WantedBy=multi-user.target

Como puede observarse, la configuración se reduce a lanzar el ejecutable de Git en modo demonio especificando el área que hemos destinado a repositorios públicos /var/local/git/pub/ y asignado el usuario y grupo a los utilizados por defecto por el servidor web.

Inicio / reinicio automático de los servicios configurados

Una vez definido el servicio, para dejarlo habilitado para su inicialización automática con cada inicio del servidor, el comando a utilizar es:

# systemctl enable git-daemon

y puede iniciarse manualmente con:

# service git-daemon start

Y podrá comprobarse su estado de operación en cualquier momento con:

# systemctl status git-daemon
● git-daemon.service - Start Git Daemon
   Loaded: loaded (/lib/systemd/system/git-daemon.service; enabled; vendor preset: enabled)
   Active: active (running) since Sat 2018-05-05 13:50:48 CEST; 2min 48s ago
 Main PID: 24562 (git)
    Tasks: 2 (limit: 4915)
   CGroup: /system.slice/git-daemon.service
           ├─24562 /usr/bin/git daemon --reuseaddr --base-path=/var/local/git/pub/ /var/local/git/pub/
           └─24563 git-daemon --reuseaddr --base-path=/var/local/git/pub/ /var/local/git/pub/

may 05 13:50:48 srv.example.org systemd[1]: Started Start Git Daemon.

Uso del servicio

Siguiendo con el ejemplo del repositorio /var/local/git/pub/python/sandbox.git utilizado en el tutorial Cómo instalar un servidor Git sobre Nginx, primeramente debemos agregar el flag git‑daemon‑export‑ok para que sea exportable por el protocolo Git:

# touch /var/local/git/pub/python/sandbox.git/git-daemon-export-ok
# chgrp www-data /var/local/git/pub/python/sandbox.git/git-daemon-export-ok
# chmod g+r /var/local/git/pub/python/sandbox.git/git-daemon-export-ok

Una vez hecho esto, cualquier cliente remoto puede acceder al repositorio a través de la URL git://example.org/python/sandbox.git

$ git clone git://example.org/python/sandbox.git
Clonar en «sandbox»...
warning: Parece que ha clonado un repositorio vacío.
Comprobando la conectividad… hecho.

José Administrator
Apasionado por el software, la electrónica y la fotografía.
follow me

Deja un comentario

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