Cuando se trata de alojamiento Git, tienes varias opciones disponibles. GitHub, Gitlab y Bitbucket son soluciones populares, pero ejecutar tu propio servidor Git es una alternativa que vale la pena considerar.
Configurar un servidor Git te permite crear repositorios privados sin las restricciones de los planes gratuitos de los proveedores.
En esta guía, explicaremos cómo configurar un servidor Git desnudo en Linux. Esta configuración es buena si tienes pocos repositorios y los colaboradores son expertos en tecnología. De lo contrario, deberías considerar la instalación de una aplicación git autoalojada como Gitea, Gogs , o Gitlab .
El servidor Git se puede configurar en cualquier máquina Linux remota o incluso en tu sistema local.
Cómo configurar el servidor Git #
El primer paso es instalar Git en tu servidor.
Si estás usando Debian o Ubuntu, refresca el índice de paquetes locales e instala git ejecutando los siguientes comandos como usuario sudo:
sudo apt update && sudo apt install git
Para instalar el paquete git en servidores CentOS escribe:
sudo yum install git
A continuación se crea un nuevo usuario que gestionará los repositorios Git:
sudo useradd -r -m -U -d /home/git -s /bin/bash git
El directorio home del usuario se establece en /home/git
. Todos los repositorios se almacenarán bajo este directorio. No establecimos una contraseña para el usuario «git», el inicio de sesión sólo será posible utilizando las claves ssh.
Cambia al usuario «git» usando el comando su
:
sudo su - git
Ejecuta los siguientes comandos para crear el directorio SSH y establecer los permisos correctos :
mkdir -p ~/.ssh && chmod 0700 ~/.ssh
Crea un archivo llamado ~/.ssh/authorized_keys
que contendrá las claves SSH de los usuarios autorizados:
touch ~/.ssh/authorized_keys && chmod 0600 ~/.ssh/authorized_keys
Eso es todo. La configuración del servidor está completa. Ahora estás listo para crear tu primer repositorio Git.
Ejecuta el siguiente comando para iniciar un nuevo repositorio vacío:
git init --bare ~/projectname.git
Puedes nombrar el directorio como quieras. Lo importante es crear el repositorio bajo el directorio raíz del usuario «git».
Initialized empty Git repository in /home/git/projectname.git/
Configuración del repositorio Git local #
Para poder empujar los cambios git locales al servidor Git tendrás que añadir tu clave pública SSH de usuario local al archivo authorized_keys
del usuario «git» remoto.
Si ya tienes un par de claves SSH creadas en tu sistema local, puedes mostrar la clave pública escribiendo:
cat ~/.ssh/id_rsa.pub
La salida debería ser algo parecido a lo siguiente:
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDd/mnMzHwjUzK8g3ldfsfRpJuC16mhWamaXRk8ySQrD/dzpbRLfDnZsLxCzRoq+ZzFHGwcQlJergtergdHGRrO8FE5jl3IWRRp+mP12qYw== [email protected]
Si obtiene un mensaje de error que dice No such file or directory
, significa que no tiene un par de claves SSH generado en su máquina local.
Para generar un nuevo par de claves SSH utiliza el siguiente comando:
ssh-keygen -t rsa -b 4096 -C "[email protected]"
Copia la salida del comando cat
anterior y vuelve a la consola del servidor Git.
En el servidor, abre tu editor de texto y pega la clave pública que has copiado de tu máquina local en el archivo ~/.ssh/authorized_keys
:
sudo nano /home/git/.ssh/authorized_keys
Todo el texto de la clave pública debe estar en una sola línea.
Estamos asumiendo que el paquete Git ya está instalado en tu máquina local. Si no es así, instálalo de la misma manera que se explica en las secciones anteriores.
Si tienes un proyecto existente sin versionar, navega al directorio del proyecto. Si estás empezando desde cero, crea el directorio del proyecto, y navega hasta él:
cd /path/to/local/project
Inicia un repositorio git:
git init .
El último paso es añadir el git remote a tu repositorio local:
git remote add origin git@git_server_ip:projectname.git
No olvides sustituir git_server_ip
por el nombre de host o la dirección IP de tu servidor Git.
Para verificar que todo está configurado correctamente, crea un archivo de prueba :
touch test_file
Añade los cambios al área de staging:
git add .
Comite los cambios:
git commit -m "descriptive message"
Empuje los cambios del repositorio local a un repositorio remoto:
git push -u origin master
Si todo está configurado correctamente, la salida debería ser algo así:
Para añadir un nuevo colaborador, sólo hay que copiar su clave SSH pública en el archivo ~/.ssh/authorized_keys
del usuario «git».
Puedes utilizar los mismos pasos para crear nuevos repositorios. Es importante tener en cuenta que el repositorio remoto debe existir antes de añadir el git remote a tu repositorio local.
Conclusión #
En este tutorial, te hemos mostrado cómo configurar tu propio servidor Git privado y crear repositorios.