Hoy en día, la programación y el desarrollo de software están en pleno auge. Con ello, la demanda de herramientas en este campo no para de crecer. Esto ha generado un entorno muy competitivo en el mundo digital, donde distintos programas de desarrollo y DevOps se pelean por ser el más utilizado en su área. Git es uno de ellos. A esto se suma la consolidación del trabajo remoto en empleos que se realizan frente a una pantalla, lo que ha llevado a muchos desarrolladores a alojar sus proyectos, incluido Git, en servidores remotos. Si también es tu caso y quieres montar tu propio servidor Git, estás en el lugar indicado.
En este artículo, explicaré qué es Git exactamente, sus ventajas e inconvenientes, y luego te mostraré qué necesitas para montar tu propio servidor Git. ¡Empezamos!
¿Qué es Git?
Git es una herramienta de DevOps diseñada para que desarrolladores y programadores gestionen sus proyectos de la forma más eficiente posible. Su función principal es registrar los cambios en el código fuente a lo largo del tiempo. Git es gratuito y de código abierto y recibe actualizaciones periódicas. Esto lo convierte en una de las herramientas de DevOps más accesibles y fiables del mundo. Cada equipo donde está instalado Git actúa como un repositorio completo con su propio historial de cambios de archivos. Con casi 20 años de desarrollo activo y más de 30 versiones publicadas, Git se encuentra actualmente en la versión 2.40.0, con más actualizaciones por venir. Veamos ahora algunos casos de uso de Git para entender mejor por qué querríamos instalar un servidor Git.
Casos de uso de Git
Antes de lanzarte a montar tu propio servidor Git local, conviene repasar los principales casos de uso de Git para entender bien por qué vamos a necesitar un servidor Git.
Clonación de repositorios
Muchos desarrolladores prefieren crear un repositorio Git en el servidor para hacer seguimiento de los programas y archivos que les interesan. Git te permite, con unos pocos comandos básicos, replicar tu repositorio del kernel Linux y usarlo para llevar un registro de cambios más limpio y eficiente, limitado solo a los archivos que te interesan. El proceso es sencillo y funciona tanto para proyectos pequeños como para proyectos grandes. Este proceso también se conoce como "ramificación, ya que en esencia, creas una nueva rama a partir de tu repositorio ya existente.
Flujo de trabajo con Git
El flujo de trabajo con Git es otro caso de uso clave una vez que configures tu propio servidor Git. Con un servidor Git local puedes crear dos conjuntos de ramas mediante el proceso de clonación: una que represente tu proyecto (por ejemplo, un sitio web) y otra rama de producción independiente donde se registren todos los cambios de cada desarrollador y se puedan probar antes de aplicarlos. Este enfoque por capas no solo acelera el desarrollo y las pruebas, sino que también facilita enormemente el seguimiento de los cambios a lo largo del proceso.
Fusionando
¿Recuerdas crear ramas en tu repositorio y llevar un registro de cambios? Como su nombre indica, el merge es justo la operación contraria. En el merge, que muchos consideran el aspecto más complejo de Git, el objetivo es integrar los datos de una rama de vuelta en la rama principal de la que originalmente se separó. Esto se hace habitualmente para consolidar el historial completo del proyecto en un único repositorio claro y fácil de consultar, que recoja todos los cambios realizados desde las distintas ramas. Si durante el desarrollo necesitas las ramas para trabajar en paralelo sin interferencias, el merge sirve para reunir todo ese trabajo al final y obtener una visión global del proyecto, especialmente útil durante la resolución de problemas.
Aloja tu propio servidor Git: ventajas y desventajas
Todo programa tiene ventajas e inconvenientes que conviene conocer antes de adoptarlo. En esta sección repasamos los de Git, pero con una condición importante: estas ventajas e inconvenientes se aplican a Git cuando lo alojas tú mismo, que es precisamente de lo que trata esta guía. Entremos en materia.
Git alojado en tu propio servidor: ventajas
Sin intermediarios
Con Git autoalojado, solo tú y las personas que designes tendrán acceso a tus archivos. Esto elimina por completo la intervención de terceros no deseados y te permite trabajar en tu proyecto con total tranquilidad. Además, tus datos estarán mucho más protegidos y podrás destinar los recursos que antes reservabas para seguridad a otras áreas.
Seguridad
En cuanto a seguridad, Git puede llegar a ser muy seguro si se aplican buenas prácticas y herramientas de terceros. Es cierto que al optar por el autoalojamiento se pierde algo de seguridad respecto a soluciones gestionadas, pero a cambio se gana una libertad casi ilimitada para configurar la seguridad según tus propias necesidades.
Repositorios ilimitados
¿Recuerdas la clonación y las ramas? Con Git no hay límite en el número de repositorios que puedes crear. Esto lo convierte en una opción ideal para proyectos grandes donde cada rama de desarrollo necesita su propio repositorio. También es perfecto para proyectos con archivos pesados, como recursos 3D, o cuando trabajas con Unity.
Git autoalojado: Contras
Gran esfuerzo de gestión
Los repositorios de Git pueden descontrolarse rápidamente. Si decides configurar un servidor Git en tu propia plataforma autohospedada, gestionar todas las ramas y los metadatos puede convertirse en un dolor de cabeza. Necesitas ser muy meticuloso con ello o contar con un desarrollador experimentado que lo haga por ti.
Curva de aprendizaje pronunciada
Alojar Git es una cosa; dominarlo y gestionar tu propio servidor Git local es otra muy distinta. Git tiene una de las curvas de aprendizaje más pronunciadas entre los programas DevOps basados en repositorios, así que o dedicas mucho tiempo a aprenderlo o lo delegas a terceros.
Sin GUI ni soporte Windows
¿Querías configurar un servidor Git en Windows? ¿O quizás ejecutarlo con una interfaz gráfica? Mala suerte. Estás limitado a sistemas operativos basados en el kernel Linux, y no hay GUI que te facilite las cosas. ¿Quieres instalar un servidor Git y alojarlo tú mismo? Mejor aprende los fundamentos de programación.
Método obsoleto
Por cualquier métrica que se considere, ejecutar Git en un servidor propio parece una solución superada por métodos más eficientes. Los ejemplos más claros serían ejecutar GitLab, así que antes de decidirte por montar tu propio servidor Git, consulta GitLab ¡también!
Requisitos para instalar un servidor Git
Antes de empezar, repasemos los requisitos para configurar un servidor Git y alojar el tuyo propio. Solo necesitas dos cosas: un servidor y una instancia de Git, además de conocimientos básicos de programación para llevar a cabo la configuración.
Servidor Git
Para el servidor, puedes usar otro PC propio, servidores dedicados de proveedores tradicionales, o, si prefieres tener control total sobre el entorno, un VPS en la nube (servidor privado virtual). Con un VPS puedes gestionar el servidor directamente y administrar la instancia de Git al mismo tiempo. Ten en cuenta que el servidor debe tener una distribución Linux para poder configurar un servidor Git. Cloudzy ofrece una amplia variedad de Linux VPS servicios con más de 10 distribuciones Linux reconocidas, como Ubuntu, Debian, CentOS, Kali y OpenSUSE. Desde solo 4,95 $ al mes, puedes tener un servidor Linux fiable cerca de tu ubicación para garantizar una buena calidad de conexión y usarlo para alojar y ejecutar tu propio servidor Git.
Consigue un VPS Linux económico o premium para alojar tu sitio web o escritorio remoto, al precio más competitivo del mercado. VPS sobre Linux KVM para mayor eficiencia, con hardware potente y almacenamiento NVMe SSD para mayor velocidad.
Leer másInstancia de Git
Configurar un servidor Git es un proceso sencillo, y lo haremos de forma automática durante la instalación. Como se mencionó, Git es de código abierto y gratuito, lo que lo convierte en una opción preferida frente a muchos otros programas de repositorios orientados al desarrollo. Ahora que conoces los requisitos, entremos directamente en la guía paso a paso para instalar un servidor Git en tu servidor Linux.
Cómo instalar un servidor Git en Linux (guía paso a paso)
Paso 1: Descargar e instalar Git
Este es el primer paso del proceso. En el terminal de tu distribución Linux, introduce el siguiente comando para iniciar la descarga de Git:
Distribuciones basadas en Ubuntu/Debian:
sudo apt install git
Distribuciones basadas en Arch:
sudo pacman -S git
Distribuciones basadas en RHEL:
sudo dnf install git
Este comando descargará e instalará Git en tu servidor Linux. Espera a que el proceso finalice.
Paso 2: Registrar y configurar el servidor Git
Si tienes un servidor local en otro equipo, arráncalo. Si tienes un VPS, conéctate a tu servidor Linux de forma remota usando SSH o RDP. A continuación, configuraremos el servidor Git para que funcione en remoto. Para ello, crearemos una cuenta de Git con el siguiente comando:
ssh username@address
sudo useradd git
Luego introduce este comando para cambiar a la cuenta recién creada:
su git
Este paso es fundamental para garantizar la seguridad de tu servidor Git local. Con esta cuenta serás el administrador del servidor. Podrás organizar a futuros usuarios en grupos con permisos y niveles de acceso predefinidos.
Paso 3: Crear directorios SSH y Crear un repositorio Git en el servidor
El siguiente paso es crear un directorio exclusivo de SSH para almacenar nuestras claves públicas y crear un repositorio Git en el servidor con capas adicionales de seguridad y niveles de acceso definidos. Empieza introduciendo el siguiente comando:
ssh git@address
mkdir .ssh
chmod 700 .ssh/
touch .ssh/authorized_keys
Una vez que hayas restringido el acceso de otros usuarios con esta línea de comandos, introduce la siguiente para asegurarte de que tus claves SSH se almacenan de forma segura en un authorized_keys carpeta, donde solo tú puedes acceder (ejecuta este comando únicamente si NO tienes un archivo id_rsa.pub archivo):
cd .ssh
ssh-keygen -t rsa
cat id_rsa.pub
Por último, copia la clave pública SSH que creaste para configurar una nueva conexión SSH con mayor seguridad en tu servidor Git local:
cd .ssh
vi authorized_keys
Paso 4: Crear un directorio principal
En tu servidor Linux, debes crear un nuevo directorio para guardar todos los repositorios que Git utilizará en tus proyectos futuros. Puedes aprender a gestionar tus repositorios Git en detalle. Introduce este comando:
mkdir directory_name
Paso 5: ¡Añade tu proyecto!
Has creado el servidor Git correctamente. El proceso de instalación ha concluido con éxito y la configuración también está lista. Solo queda añadir proyectos adicionales con el siguiente comando:
cd parent_directory
mkdir new_project.git
A continuación, introduce este comando para añadir el origen remoto a tu equipo local:
git init --bare
git remote add origin name git@address:new_project.git
Por último, realiza un Git push para verificar que todo funciona correctamente:
touch testfile
git add testfile
git commit -m "test file"
git push name master
git clone git@address:new_project.git
Enhorabuena, has alojado Git y creado un repositorio Git en el servidor con éxito.
Preguntas frecuentes
¿Puedo alojar Git sin un servidor?
No. Independientemente del tipo de servidor, necesitarás hardware que actúe como tal. Puedes usar GitHub como servidor en la nube para tus repositorios, o consultar nuestras VPS ofertas, o utilizar otro servicio de alojamiento de terceros como servidor.
¿Se puede instalar un servidor Git con interfaz gráfica?
Sí. Aunque Git en sí no incluye interfaz gráfica, existe una versión independiente con GUI llamada "Git GUI" disponible para quienes no pueden prescindir de ella.
¿Git tiene algún plan de pago?
No. Git es y seguirá siendo un programa gratuito y de código abierto, tal como establecieron sus creadores originales. Puedes usarlo como base para tus propios desarrollos o simplemente utilizarlo de forma gratuita.
¿Por qué alojar tu propio servidor Git?
Si trabajas en un proyecto pequeño con pocos repositorios, el autoalojamiento ofrece mayor privacidad y seguridad. Esa es la razón principal. Sin embargo, a medida que los proyectos crecen y los repositorios aumentan, el autoalojamiento empieza a perder eficiencia.