2. GIT Repositorios
Note
Servidor git sobre ssh / http
1dnf install git nginx
2systemctl enable sshd
3systemctl start sshd
4systemctl enable nginx
5systemctl start nginx
Directorio de trabajo /home/git
Crear una carpeta con el nombre del repositorio acabado en ‘.git’ (best practice)
useradd -m git
password git
mkdir /home/git/<REPO>.git
cd <REPO>.git
git init --bare
Configuración para git sobre http
Instalación básica de nginx. Fichero default.d/git.conf
location /home/git/ { rewrite /home/git/(.*) /$1 break; root /home/git; include fastcgi_params; fastcgi_param SCRIPT_FILENAME /usr/libexec/git-core/git-http-backend; fastcgi_param GIT_PROJECT_ROOT /home/git; fastcgi_param PATH_INFO $uri; fastcgi_param REMOTE_USER $remote_user; fastcgi_param GIT_HTTP_EXPORT_ALL ""; fastcgi_pass unix:/run/fcgiwrap/fcgiwrap.sock; auth_basic "Restricted Access"; auth_basic_user_file /etc/nginx/gitpasswd;
}
Configuracion del fcgiwrap.service
[Unit] Description=Simple CGI Server After=nss-user-lookup.target [Service] EnvironmentFile=/etc/sysconfig/fcgiwrap ExecStart=/usr/sbin/fcgiwrap ${DAEMON_OPTS} -c ${DAEMON_PROCS} User=git Group=gitgroup [Install] Also=fcgiwrap.socket
Configuracion del fcgiwrap.socket
[Unit] Description=fcgiwrap Socket [Socket] ListenStream=/run/fcgiwrap/fcgiwrap.sock RuntimeDirectory=fcgiwrap SocketUser=nginx SocketMode=0660 [Install] WantedBy=sockets.target
Permisos de usuarios y grupos
sudo groupadd gitgroup sudo usermod -aG gitgroup git sudo usermod -aG gitgroup nginx sudo chgrp -R gitgroup /home/git/<REPO>.git sudo chmod -R g+rw /home/git/<REPO>.git sudo chmod -R g+s /home/git/<REPO>.git
Para evitar problemas
vi /etc/gitconfig [safe] directory = /home/git/<REPO1>.git directory = /home/git/<REPO2>.git
vi /home/git/<REPO>.git/config [...] repositoryformatversion = 0 filemode = true bare = true sharedrepository = 1 [receive] denyNonFastforwards = true [http] receivepack = true [safe] directory = /home/git/<REPO>.git
Client side
Clonar el repositorio desde ssh
git clone ssh://git@<IP>/home/git/<REPO.git>
Clonar el repositorio desde http
git clone http://core.iglu.net/home/git/<REPO>.git