Introducción
Cuando se trata de hosting Git, hay varias opciones disponibles. GitHub, Gitlab y Bitbucket son soluciones populares, pero ejecutar su propio servidor Git es una alternativa que vale la pena considerar.
La configuración de un servidor Git le permite crear repositorios privados sin las restricciones de los planes gratuitos de los proveedores. En esta guía, explicamos cómo configurar un servidor Git básico en Linux. Esta configuración es buena si tienes pocos repositorios y los colaboradores son expertos en tecnología. Si no es así, debería considerar instalar una aplicación de git autohospedada como Gitea, Gogs o Gitlab.
El servidor Git se puede configurar en cualquier máquina Linux remota o incluso en su sistema local.
Configurar el servidor Git
El primer paso es instalar Git en su servidor.
Si está utilizando Debian o Ubuntu, actualice el índice del paquete local e instale git ejecutando los siguientes comandos como usuario sudo:
sudo apt update && sudo apt install git
Para instalar el paquete git en el servidor CentOS, escriba:
sudo yum install git
A continuación, cree un nuevo usuario que gestionará los repositorios de Git:
sudo useradd -r -m -U -d /home/git -s /bin/bash git
El directorio de inicio del usuario está configurado en /home/git
. Todos los repositorios se almacenarán en este directorio. No hemos establecido una contraseña para el usuario "git", el acceso solo será posible usando las claves ssh.
Cambie al usuario "git" usando el comando su
sudo su - git
Ejecute los siguientes comandos para crear el directorio SSH y establecer los permisos correctos:
mkdir -p ~/.ssh && chmod 0700 ~/.ssh
Cree 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 instalación del servidor está completa. Ahora está listo para crear su primer repositorio de Git.
Ejecute el siguiente comando para iniciar un nuevo repositorio vacío:
git init --bare ~/projectname.git
Puede nombrar el directorio como desee. Lo importante es crear el repositorio en el directorio de inicio del usuario de git.
Initialized empty Git repository in /home/git/projectname.git/
Configurar el repositorio local de Git
Para enviar cambios de git locales al servidor de Git, es necesario agregar la clave pública SSH del usuario local al authorized_keys
Si ya tiene un par de claves SSH creado en su sistema local, puede ver la clave pública escribiendo:
cat ~/.ssh/id_rsa.pub
La salida debería verse así:
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDd/mnMzHwjUzK8g3ldfsfRpJuC16mhWamaXRk8ySQrD/dzpbRLfDnZsLxCzRoq+ZzFHGwcQlJergtergdHGRrO8FE5jl3IWRRp+mP12qYw== [email protected]
No such file or directory
, significa que no se ha generado un par de claves SSH en la computadora local.
Para generar un nuevo par de claves SSH, use el siguiente comando:
ssh-keygen -t rsa -b 4096 -C "[email protected]"
Copie la salida del cat
anterior y vuelva a la consola del servidor Git.
En el servidor, abra el editor de texto y pegue la clave pública que copió de su computadora local en el ~/.ssh/authorized_keys
:
vi /home/git/.ssh/authorized_keys
El texto completo de la clave pública debe estar en una línea.
Supongamos que el paquete Git ya está instalado en su computadora local. Si no es así, instálelo como se explica en las secciones anteriores.
Si tiene un proyecto existente sin verificar, vaya al directorio del proyecto. Si está comenzando desde cero, cree el directorio del proyecto y navegue hasta él:
cd /path/to/local/project
Inicializa un repositorio de git:
git init.
El último paso es agregar git remote al repositorio local:
git remote add origin git@git_server_ip:projectname.git
No olvide reemplazar git_server_ip
con el nombre de host o la dirección IP del servidor Git.
Para verificar que todo esté configurado correctamente, cree un archivo de prueba:
touch test_file
Agregue los cambios al área de preparación:
git add.
Confirmar cambios:
git commit -m "descriptive message"
Envíe los cambios al repositorio local en un repositorio remoto:
git push -u origin master
Si todo está configurado correctamente, la salida debería verse así:
Counting objects: 3, done.
Writing objects: 100% (3/3), 218 bytes | 218.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To git_server_ip:projectname.git
* [new branch] master -> master
Branch 'master' set up to track remote branch 'master' from 'origin'.
Para agregar un nuevo colaborador, simplemente copie su clave SSH pública en el ~/.ssh/authorized_keys
usuario "git".
Puede seguir los mismos pasos para crear nuevos repositorios. Es importante tener en cuenta que el repositorio remoto debe existir antes de agregar git remote al repositorio local.
Conclusión
En este tutorial, le mostramos cómo configurar su servidor Git privado y crear repositorios.