Saltar al contenido principal

Servidor dedicado: Instalar GitLab en Linux

Esta guía fue creada con los siguientes productos:

(Los detalles pueden variar según los productos de diferentes proveedores, pero los conceptos principales permanecen igual)

Introducción

GitLab es una plataforma DevOps completa que permite a los equipos colaborar en código, automatizar flujos de trabajo y gestionar todo el ciclo de vida del desarrollo de software de forma eficiente. En esta guía, explicaremos cómo instalar GitLab en un servidor Linux.

Preparación

Los siguientes requisitos son recomendados por el equipo oficial de GitLab y es muy recomendable seguirlos para evitar inconvenientes y problemas más adelante.

Hardware

ComponentesMínimoRecomendado
CPU2x 2 GHz4x 2.6+ GHz
RAM4 GB8 GB
Almacenamiento10 GB50+ GB
Ancho de banda100 mbit/s (subida y bajada)100 mbit/s (subida y bajada)

Software

PlataformaOpciones
Sistema operativoUbuntu (20.04, 22.04, 24.04), Debian (10, 11, 12), OpenSUSE (15.5)
Base de datosPostgreSQL 14.9+
Servidor webNGINX (incluido con GitLab), Puma 6.4.2+
OtrosRedis 7.x+, Sidekiq 7.3.2+, Prometheus 2.54.1+
información

Para la información más precisa y actualizada sobre especificaciones, consulta la documentación oficial de Requisitos de hardware de GitLab.

Preparación

Para instalar GitLab en tu servidor Linux, primero debes establecer una conexión mediante un cliente SSH. Consulta nuestra guía de acceso inicial (SSH) para aprender más sobre esto.

Una vez establecida la conexión, puedes comenzar a instalar los paquetes necesarios para la instalación de GitLab.

Paso 1: Instalación de dependencias

Primero, debes instalar algunas dependencias para poder ejecutar el instalador de GitLab. Usa los siguientes comandos para instalar las dependencias requeridas en tu servidor Linux.

Actualiza la lista de paquetes a la última versión e instala el paquete OpenSSH Server junto con los prerrequisitos necesarios usando el siguiente comando. Así es como se alojará tu panel web de GitLab.

sudo apt update
sudo apt-get install -y curl openssh-server ca-certificates tzdata perl

También puedes instalar Postfix (servidor SMTP) si quieres enviar notificaciones por correo electrónico usando GitLab. Esto es opcional.

Si quieres usar notificaciones por correo, instala Postfix con el siguiente comando:

sudo apt-get install -y postfix
información

Durante la instalación de Postfix puede aparecer una configuración. En ese caso, selecciona 'Internet Site' y presiona enter. Usa el DNS externo de tu servidor Linux para 'mail name' y presiona enter. Si aparecen más pantallas, sigue presionando enter para aceptar la configuración por defecto.

Si prefieres usar otra solución para enviar correos, omite este paso y configura un servidor SMTP externo después de instalar GitLab en tu servidor Linux siguiendo una guía oficial de GitLab.

Paso 2: Instalación de GitLab

Después de descargar e instalar todas las dependencias necesarias, ya estás listo para instalar GitLab.

En esta guía, instalaremos GitLab directamente desde los repositorios oficiales.

El siguiente script añadirá los repositorios de GitLab al gestor de paquetes apt:

curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ee/script.deb.sh | sudo bash

Una vez hecho, instala el paquete gitlab-ee:

sudo apt-get install -y gitlab-ee

Cuando termine este proceso, deberías tener GitLab listo en tu servidor Linux. Continúa con la siguiente sección para configurar ajustes esenciales y asegurar que el servidor funcione correctamente.

Paso 3: Configuración de GitLab

Para asegurarte de que todo funcione, debes hacer algunos cambios en el archivo de configuración. Empieza abriendo el archivo de configuración de GitLab con tu editor de texto favorito. Usaremos el editor nano preinstalado como ejemplo.

sudo nano /etc/gitlab/gitlab.rb

Luego, busca la línea external_url y escribe tu dominio o la dirección IP de tu servidor Linux si no tienes un dominio para usar con GitLab.

## GitLab URL
##! URL en la que GitLab será accesible.
##! Para más detalles sobre cómo configurar external_url, consulta:
##! https://docs.gitlab.com/omnibus/settings/configuration.html#configuring-the-external-url-for-gitlab
##!
##! Nota: Durante la instalación/actualizaciones, el valor de la variable de entorno
##! EXTERNAL_URL se usará para rellenar/reemplazar este valor.
##! En instancias AWS EC2, también intentamos obtener el nombre de host/IP pública
##! desde AWS. Para más detalles, consulta:
##! https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instancedata-data-retrieval.html
external_url 'http`s`://`Tu dominio / dirección IPv4 de tu servidor Linux`'

Además, recomendamos ingresar tu correo electrónico en la línea letsencrypt['contact_emails']. Esto permitirá que Let's Encrypt te envíe notificaciones y te contacte sobre los certificados SSL automáticos y gratuitos.

nota

Necesitas usar un dominio si quieres obtener un certificado SSL gratuito de Let's Encrypt. No puedes solicitar uno directamente para tu dirección IP.

################################################################################
# Integración con Let's Encrypt
################################################################################
# letsencrypt['enable'] = nil
# letsencrypt['contact_emails'] = [`Tu correo aquí`] # Debe ser un array con correos para contacto
# letsencrypt['group'] = 'root'
# letsencrypt['key_size'] = 2048
# letsencrypt['owner'] = 'root'
# letsencrypt['wwwroot'] = '/var/opt/gitlab/nginx/www'
# Consulta https://docs.gitlab.com/omnibus/settings/ssl/index.html#renew-the-certificates-automatically para más info
# letsencrypt['auto_renew'] = true
# letsencrypt['auto_renew_hour'] = 0
# letsencrypt['auto_renew_minute'] = nil # Debe ser un número o expresión cron, si se especifica.
# letsencrypt['auto_renew_day_of_month'] = "*/4"
# letsencrypt['auto_renew_log_directory'] = '/var/log/gitlab/lets-encrypt'
# letsencrypt['alt_names'] = []
consejo

Puedes usar CTRL+W para buscar letsencrypt['contact_emails'] y presionar enter para no tener que buscar manualmente en todo el archivo.

Cuando termines, presiona CTRL+X, luego Y y Enter para guardar los cambios.

Finalmente, ejecuta el siguiente comando para reconfigurar GitLab con las nuevas opciones:

sudo gitlab-ctl reconfigure

Este proceso puede tardar un poco porque inicializará GitLab con la configuración actualizada y procesos automáticos. También se emitirán los certificados SSL si usaste un dominio.

Paso 4: Acceder a la interfaz web

Después de la inicialización, el servidor debería ser accesible vía navegador. Navega a tu sitio web ingresando tu dominio o dirección IP así:

https://[tu_dominio] O http://[tu_dirección_ip]

Al entrar por primera vez a la interfaz web, verás una página de login.

Para obtener acceso de administrador en el primer login, entra como usuario root usando root como nombre de usuario.

Para la contraseña, debes acceder a un archivo en tu servidor Linux donde está almacenada. Usa el siguiente comando y busca el campo Password.

sudo nano /etc/gitlab/initial_root_password
# ADVERTENCIA: Este valor es válido solo en las siguientes condiciones

# 1. Si se proporcionó manualmente (ya sea vía variable de entorno `GITLAB_ROOT_PASSWORD` o mediante la configuración `gitlab_rails['initial_root_password']` en `gitlab.rb` antes de que la base de datos fuera inicializada).

# 2. La contraseña no ha sido cambiada manualmente, ni vía UI ni línea de comandos.

#

# Si la contraseña mostrada aquí no funciona, debes resetear la contraseña de admin siguiendo https://docs.gitlab.com/ee/security/reset_user_password.html#reset-your-root-password.

Password: `[TU_CONTRASEÑA_AQUÍ]`

# NOTA: Este archivo se eliminará automáticamente en la primera ejecución de reconfigure después de 24 horas.

Introduce el usuario y contraseña en la página de login para entrar a tu panel de GitLab por primera vez. Ya deberías poder acceder a tu panel GitLab en tu propio servidor Linux.

Recomendamos crear un nuevo usuario y/o cambiar la contraseña del usuario root. Esto se hace accediendo a Admin en la esquina inferior izquierda y seleccionando Overview->Users. En esta página podrás gestionar los usuarios de tu instancia GitLab.

Opcional: Configurar un firewall con ufw

Puedes saltarte esto si no quieres configurar un firewall o si, por ejemplo, ya usas firewalld en OpenSUSE. Asegúrate de permitir los puertos 80/443 y el puerto 22.

Instalar ufw

Si ya tienes instalado ufw, puedes saltarte este paso.

sudo apt-get install -y ufw

Abrir puertos necesarios

sudo ufw allow http
sudo ufw allow https
sudo ufw allow OpenSSH

Activar firewall

aviso

Esto bloqueará por defecto el acceso a todos los puertos excepto los permitidos. Asegúrate de que la lista blanca esté bien configurada antes de ejecutar este comando.

Para que el firewall tenga efecto, actívalo con el siguiente comando:

sudo ufw enable

Conclusión

¡Felicidades, has instalado GitLab con éxito! Si tienes más preguntas o problemas, contacta a nuestro equipo de soporte, disponible para ayudarte todos los días.

Si quieres hacer configuraciones adicionales, te recomendamos leer la Documentación oficial de GitLab para los siguientes pasos.