Configurar un servidor Git nativo en Linux

traducido por I. A.

Si desea utilizar su repositorio Git para la edición colaborativa de código fuente, necesita un servidor Git. El servidor Git permite que varios desarrolladores colaboren en la misma base de código. Instalar el cliente Git en un servidor Linux es un primer paso hacia su propia solución de servidor, pero está lejos de ser suficiente. Para permitir que varias personas accedan a un repositorio de código, necesitamos autorización de acceso. Después de todo, el repositorio debe ser accesible públicamente a través de Internet. Queremos utilizar la gestión de usuarios para evitar que personas no autorizadas lean y modifiquen el contenido de los repositorios.

Existen muchas soluciones excelentes y convenientes para operar un servidor Git que deberían preferirse a una solución de servidor nativo. La administración de un servidor Git nativo requiere conocimientos de Linux y se realiza exclusivamente a través de la línea de comandos. Soluciones como SCM-Manager tienen una interfaz gráfica de usuario y vienen con muchas herramientas útiles para administrar el servidor. Estas herramientas no están disponibles con una instalación nativa.

¿Por qué debería instalar Git como servidor nativo? Esta pregunta es bastante fácil de responder. La razón es cuando el servidor en el que se pondrá a disposición el repositorio de código tiene solo unos pocos recursos de hardware. La memoria RAM en particular siempre es un problema en este contexto. Este suele ser el caso de servidores privados virtuales (VPS) alquilados o una pequeña RaspberryPI. Por lo tanto, podemos ver que puede tener sentido querer ejecutar un servidor Git nativo.

Como requisito previo, necesitamos un servidor Linux en el que podamos instalar el servidor Git. Este puede ser un servidor Debian o Ubuntu. Si usa CentOs u otras distribuciones de Linux, debe usar el administrador de paquetes de su distribución en lugar de APT para instalar el software.

En el primer paso, comenzamos actualizando los paquetes e instalando el cliente Git.

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install git
Bash

Como segundo paso, creamos un nuevo usuario llamado git y creamos un directorio de inicio para él y activamos allí el acceso SSH.

sudo useradd --create-home --shell /bin/bash git
sudo su - git
cd /home/git/
mkdir .ssh/ && chmod 700 .ssh/
touch .ssh/authorized_keys
chmod 600 .ssh/authorized_keys
Bash

Ahora, en el tercer paso, podemos crear nuestros repositorios Git en el directorio de inicio recién creado del usuario git. Estos se diferencian del espacio de trabajo local en que no tienen el código fuente extraído.

Lamentablemente, aún no hemos terminado con nuestro proyecto. En el cuarto paso, tenemos que establecer la autorización del usuario para el repositorio creado. Esto se hace almacenando la clave pública en el servidor Git para el acceso SSH. Para ello, copiamos el contenido de nuestro archivo de clave privada en el archivo /home/git/.ssh/authorized_keys en una línea separada. Si ahora desea denegar el acceso a los usuarios existentes, simplemente comente el número de clave privada con un #.

Si todo se ha hecho correctamente, puede acceder al repositorio utilizando el siguiente comando de línea de comandos: git clone ssh://git@<IP>/~/<repo>

Reemplace con la IP del servidor real. Para nuestro ejemplo, la ruta correcta es project.git, por lo que es el directorio que creamos para el repositorio Git.

Se pueden crear varios repositorios en el servidor Git nativo. Es importante tener en cuenta que todos los usuarios autorizados tienen acceso de lectura y escritura a todos los repositorios creados de esta manera. Esto solo se puede restringir creando varios usuarios en el sistema operativo del servidor Linux que proporciona nuestros repositorios Git, a quienes luego se les asignan los repositorios.

Vemos que una instalación de servidor Git nativo se puede implementar rápidamente, pero no es suficiente para el desarrollo de software comercial. Si te gusta experimentar, puedes crear una máquina virtual y probar este taller en ella.

PHP 8 y ​​GDLib en el Docker Container

Este artículo sólo es visible para Patreons conectados. Con una suscripción a Patreon me ayudas...

Ruby: configuración del entorno de desarrollo

Configure un entorno de desarrollo Ruby para dar sus primeros pasos con el framework web...

Adiós privacidad, adiós libertad

Cuanto más tengamos que repetir lo buena que es nuestra libertad de interlocución, menos podremos...

Entendiendo Linux: redescubrimiento del placer de la tecnología

Es hora de volver a tomar el control de tu hardware, porque no es necesario...

Trabajar con archivos de texto en el shell de Linux

La línea de comandos es una poderosa herramienta en Linux. En este artículo, usted aprenderá...

Deja un comentario

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