Cómo Instalar GitLab en Ubuntu: Guía Completa Paso a Paso
GitLab es una de las plataformas DevOps de código abierto más poderosas disponibles hoy en día, ofreciendo un conjunto completo de herramientas que incluyen control de versiones basado en Git, canalizaciones de integración continua/entrega continua (CI/CD), seguimiento de problemas y características de colaboración en equipo — todo en un solo lugar. Ya sea que estés administrando un pequeño equipo de desarrollo o ejecutando proyectos de software a escala empresarial, alojar GitLab en Ubuntu te da control total sobre tus datos, flujos de trabajo e infraestructura.
Esta guía te acompaña en cada paso de la instalación y configuración de GitLab Community Edition (CE) en un servidor Ubuntu, desde la preparación inicial del sistema hasta la habilitación de HTTPS y la gestión de servicios.
Requisitos previos
Antes de comenzar, asegúrate de tener lo siguiente en su lugar:
- Un servidor ejecutando Ubuntu 20.04 o 22.04 LTS (se recomienda instalación nueva)
- Un mínimo de 4 GB RAM y 2 CPU cores (GitLab recomienda al menos 4 cores para uso en producción)
- Acceso root o sudo al servidor
- Un nombre de dominio registrado apuntando a la dirección IP de tu servidor (opcional pero fuertemente recomendado para HTTPS)
- Puertos 80 y 443 abiertos en tu firewall
> Consejo: Para el mejor rendimiento de GitLab, considera implementar en un plan de VPS Hosting con suficientes recursos de RAM y CPU. Los planes VPS de AlexHost están optimizados para cargas de trabajo Linux y vienen con acceso root completo, lo que los hace un entorno ideal para plataformas DevOps auto-hospedadas como GitLab.
Paso 1: Actualizar paquetes del sistema
Antes de instalar cualquier software, es crítico asegurar que el índice de paquetes de tu sistema y los paquetes instalados estén completamente actualizados. Esto previene conflictos de dependencias y asegura que estés trabajando con los últimos parches de seguridad.
sudo apt update && sudo apt upgrade -yEspera a que se complete el proceso de actualización antes de proceder al siguiente paso.
Paso 2: Instalar dependencias requeridas
GitLab requiere varios paquetes de apoyo para funcionar correctamente, incluyendo herramientas para comunicación segura, gestión de zonas horarias y scripting. Instálalos con el siguiente comando:
sudo apt install -y curl openssh-server ca-certificates tzdata perlAquí está lo que hace cada paquete:
| Paquete | Propósito |
|---|---|
curl | Descarga scripts y archivos de la web |
openssh-server | Habilita acceso SSH a tu servidor |
ca-certificates | Valida certificados SSL/TLS |
tzdata | Proporciona datos de zona horaria |
perl | Requerido para los scripts internos de GitLab |
Paso 3: Agregar el Repositorio Oficial de GitLab
GitLab mantiene un repositorio de paquetes oficial que facilita la instalación y futuras actualizaciones. Utiliza el siguiente comando para descargar y ejecutar el script de configuración del repositorio:
curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bashEste script automáticamente:
- Detecta tu versión de Ubuntu
- Agrega el repositorio de paquetes de GitLab a tus fuentes de APT
- Importa la clave de firma GPG del repositorio para la verificación de paquetes
Una vez que el script se completa, tu sistema está listo para instalar GitLab directamente desde la fuente oficial.
Paso 4: Instalar GitLab Community Edition
Ahora instala GitLab CE usando el gestor de paquetes apt. Debes establecer la variable de entorno EXTERNAL_URL en la URL o dirección IP a través de la cual los usuarios accederán a tu instancia de GitLab.
Si tienes un nombre de dominio:
sudo EXTERNAL_URL="https://gitlab.yourdomain.com" apt install gitlab-ceSi estás usando una dirección IP (por ejemplo, para un servidor local o privado):
sudo EXTERNAL_URL="http://YOUR_SERVER_IP" apt install gitlab-ceReemplaza gitlab.yourdomain.com o YOUR_SERVER_IP con tu dominio o dirección IP real.
> Nota: El proceso de instalación puede tomar varios minutos ya que descarga y configura todos los componentes de GitLab, incluyendo PostgreSQL, Redis, NGINX y Sidekiq.
Durante la instalación, GitLab:
- Instalará todos los servicios incluidos (base de datos, caché, servidor web, etc.)
- Se configurará a sí mismo según el
EXTERNAL_URLque proporcionaste - Generará archivos de configuración iniciales en
/etc/gitlab/
Paso 5: Ejecutar la Reconfiguración de GitLab
Después de la instalación, ejecuta el comando de reconfiguración para finalizar la configuración, inicializar la base de datos e iniciar todos los servicios de GitLab:
sudo gitlab-ctl reconfigureEste comando lee la configuración de /etc/gitlab/gitlab.rb y aplica todos los ajustes. También genera certificados SSL (si Let’s Encrypt está configurado), configura el esquema de la base de datos e inicia todos los servicios de fondo requeridos.
Deberías ver una salida larga que termine con un mensaje similar a:
gitlab Reconfigured!Paso 6: Acceder a GitLab en su navegador web
Una vez completada la reconfiguración, abra su navegador web y navegue a la URL que especificó durante la instalación:
https://gitlab.yourdomain.como
http://YOUR_SERVER_IPPrimer inicio de sesión
En su primera visita, GitLab le pedirá que establezca una contraseña de administrador. Después de establecerla, inicie sesión con las siguientes credenciales:
- Nombre de usuario:
root - Contraseña: La contraseña que acaba de crear
> Consejo de seguridad: Cambie las credenciales de la cuenta root predeterminada inmediatamente después de su primer inicio de sesión. Cree una cuenta de administrador personal y restrinja la cuenta root solo para uso de emergencia.
Paso 7: Configurar Notificaciones por Correo Electrónico de GitLab (Opcional)
Enviar notificaciones por correo electrónico es esencial para una instancia de GitLab en producción — permite funciones como verificación de cuenta, actualizaciones de solicitudes de fusión, alertas de CI/CD y restablecimiento de contraseña. Configura los parámetros SMTP en el archivo de configuración principal de GitLab:
sudo nano /etc/gitlab/gitlab.rbAñade o modifica el siguiente bloque de configuración SMTP:
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.yourmailprovider.com"
gitlab_rails['smtp_port'] = 587
gitlab_rails['smtp_user_name'] = "your_email@yourdomain.com"
gitlab_rails['smtp_password'] = "your_email_password"
gitlab_rails['smtp_domain'] = "yourdomain.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = trueGuarda el archivo y aplica los cambios:
sudo gitlab-ctl reconfigure> ¿Buscas una infraestructura de correo electrónico confiable? AlexHost ofrece servicios profesionales de Email Hosting que se integran perfectamente con aplicaciones autohospedadas como GitLab, proporcionando relé SMTP estable con alta entregabilidad.
Paso 8: Habilitar HTTPS con Let’s Encrypt (Recomendado)
Se recomienda encarecidamente ejecutar GitLab sobre HTTPS en cualquier entorno de producción o de equipo. GitLab tiene soporte integrado para Let’s Encrypt, una autoridad de certificados SSL gratuita y automatizada.
> Importante: Let’s Encrypt requiere que su nombre de dominio sea accesible públicamente y que el puerto 80 esté abierto en su servidor. No funcionará con direcciones IP sin procesar.
Abra el archivo de configuración de GitLab:
sudo nano /etc/gitlab/gitlab.rbAgregue la siguiente configuración:
letsencrypt['enable'] = true
letsencrypt['contact_emails'] = ['your_admin_email@yourdomain.com']
letsencrypt['auto_renew'] = true
letsencrypt['auto_renew_hour'] = 12
letsencrypt['auto_renew_minute'] = 30
letsencrypt['auto_renew_day_of_month'] = "*/7"Guarde el archivo y reconfigure GitLab:
sudo gitlab-ctl reconfigureGitLab obtendrá e instalará automáticamente su certificado SSL, y la configuración auto_renew garantiza que se renueve antes de la expiración sin ninguna intervención manual.
> Alternativa: Si prefiere administrar certificados SSL de forma independiente o necesita certificados comodín/multidominios, AlexHost ofrece una variedad de Certificados SSL que se pueden configurar manualmente en la configuración NGINX de GitLab.
Paso 9: Gestión de servicios de GitLab
GitLab incluye su propia herramienta de gestión de servicios llamada gitlab-ctl. Utiliza los siguientes comandos para controlar los servicios de GitLab:
Iniciar GitLab
sudo gitlab-ctl startDetener GitLab
sudo gitlab-ctl stopReiniciar GitLab
sudo gitlab-ctl restartVerificar estado del servicio
sudo gitlab-ctl statusVer registros en tiempo real
sudo gitlab-ctl tailVer registros de un servicio específico (por ejemplo, NGINX)
sudo gitlab-ctl tail nginxEstos comandos son invaluables para la solución de problemas y el mantenimiento rutinario. El comando status mostrará el estado de todos los subservicios de GitLab, incluyendo PostgreSQL, Redis, Sidekiq, Puma (servidor web) y NGINX.
Paso 10: Configuración inicial de GitLab para su organización
Con GitLab instalado y en funcionamiento, es hora de configurarlo según las necesidades de su equipo. Aquí hay áreas clave para configurar a través de la interfaz web de GitLab:
Gestión de usuarios
Navegue a Admin Area → Users para crear cuentas de usuario para los miembros de su equipo. Puede configurar métodos de autenticación, incluidos LDAP, OAuth y SAML para inicio de sesión único empresarial.
Grupos y proyectos
- Los grupos le permiten organizar proyectos relacionados y gestionar permisos a escala
- Los proyectos son repositorios individuales con sus propios rastreadores de problemas, wikis y canalizaciones CI/CD
Canalizaciones CI/CD
El CI/CD integrado de GitLab es una de sus características más poderosas. Cree un archivo .gitlab-ci.yml en la raíz de su repositorio para definir canalizaciones automatizadas de compilación, prueba e implementación.
Configuración del repositorio
Configure reglas de protección de ramas, aprobaciones de solicitudes de fusión y flujos de trabajo de revisión de código en la sección Settings → Repository de cada proyecto.
Configuración de copia de seguridad
Configure copias de seguridad automatizadas configurando lo siguiente en /etc/gitlab/gitlab.rb:
gitlab_rails['backup_path'] = "/var/opt/gitlab/backups"
gitlab_rails['backup_keep_time'] = 604800 # Keep backups for 7 daysEjecute una copia de seguridad manual en cualquier momento con:
sudo gitlab-backup createConfiguración del Firewall
Si tiene UFW (Uncomplicated Firewall) habilitado en su servidor Ubuntu, asegúrese de permitir el tráfico HTTP y HTTPS:
sudo ufw allow http
sudo ufw allow https
sudo ufw allow OpenSSH
sudo ufw enable
sudo ufw statusSolución de problemas comunes
| Problema | Solución |
|---|---|
| GitLab no accesible después de la instalación | Verificar reglas de firewall; verificar EXTERNAL_URL en /etc/gitlab/gitlab.rb |
| Error 502 Bad Gateway | Ejecutar sudo gitlab-ctl restart; verificar registros con sudo gitlab-ctl tail |
| Fallo de certificado Let's Encrypt | Asegurar que el puerto 80 esté abierto y que el DNS del dominio esté configurado correctamente |
| Alto uso de memoria | Reducir workers de Puma en gitlab.rb: puma['worker_processes'] = 2 |
| Notificaciones por correo electrónico no se envían | Verificar credenciales SMTP y ejecutar sudo gitlab-rails console para probar |
Conclusión
Instalar GitLab en Ubuntu es un proceso directo que proporciona una plataforma DevOps de nivel empresarial bajo su control completo. Siguiendo esta guía, ha configurado una instancia de GitLab completamente funcional con cifrado HTTPS, notificaciones por correo electrónico y gestión adecuada de servicios — lista para flujos de trabajo de desarrollo del mundo real.
Alojar GitLab por su cuenta le da a su equipo la libertad de personalizar flujos de trabajo, mantener la soberanía de datos e integrarse con su infraestructura existente sin costos recurrentes de suscripción SaaS. La clave para una experiencia fluida de GitLab es comenzar con un servidor confiable y de alto rendimiento.
Para equipos que necesitan una base sólida para GitLab, los Servidores Dedicados de AlexHost ofrecen máximo rendimiento e aislamiento, mientras que los planes de Alojamiento VPS proporcionan una alternativa rentable y escalable para equipos más pequeños y proyectos en crecimiento. Ambas opciones incluyen acceso root completo, almacenamiento SSD y soporte técnico 24/7 — todo lo que necesita para ejecutar GitLab con confianza.
en todos los servicios de hosting