bolt Valebyte VPS desde $4/mes — NVMe, despliegue en 60s.

Obtener VPS arrow_forward
eco Principiante Tutorial/Cómo hacer

Instalación de GitLab autohosp

calendar_month Jun 28, 2026 schedule 17 min de lectura visibility 46 vistas
Установка self-hosted GitLab на VPS: SSL, бэкапы, обновления
info

¿Necesitas un servidor para esta guía? Ofrecemos servidores dedicados y VPS en más de 50 países con configuración instantánea.

¿Necesitas un VPS para esta guía?

Explore otras opciones de servidores dedicados en

Instalación de GitLab autoalojado en un VPS: SSL, copias de seguridad, actualizaciones

TL;DR

En esta guía detallada, configuraremos paso a paso una instancia de GitLab autoalojada en un servidor privado virtual (VPS), asegurando su funcionamiento seguro con SSL/TLS, copias de seguridad automáticas y su preparación para futuras actualizaciones. Aprenderá a elegir un VPS adecuado, preparar el sistema operativo Ubuntu 24.04 LTS, instalar GitLab Omnibus, configurar HTTPS con Let's Encrypt e implementar una estrategia de copias de seguridad para que su repositorio de código y sus pipelines de CI/CD estén siempre disponibles y protegidos.

  • Configuración de un GitLab autoalojado seguro y de alto rendimiento en Ubuntu 24.04 LTS.
  • Integración de HTTPS mediante Certbot y Let's Encrypt para cifrar el tráfico.
  • Implementación de copias de seguridad automáticas de datos de GitLab para minimizar riesgos.
  • Aplicación de las mejores prácticas para el mantenimiento y la actualización del sistema.
  • Elección de la configuración óptima de VPS o servidor dedicado para sus necesidades.

¿Qué configuramos y por qué?

Esquema: ¿Qué configuramos y por qué?
Esquema: ¿Qué configuramos y por qué?

En esta guía, nos ocuparemos de la instalación y configuración de GitLab, una potente plataforma para la gestión del ciclo de vida del desarrollo de software. GitLab ofrece un conjunto completo de herramientas, que incluyen gestión de repositorios Git, seguimiento de tareas, CI/CD (integración continua y entrega continua), monitoreo, seguridad y mucho más. Nuestro objetivo es desplegar una versión autoalojada de GitLab en un servidor privado virtual (VPS), lo que le dará control total sobre sus datos, seguridad y configuración.

Al final, obtendrá una instancia de GitLab completamente funcional, accesible por nombre de dominio a través de una conexión HTTPS segura. Estará listo para ser utilizado por su equipo para alojar código, gestionar proyectos y automatizar procesos de desarrollo. Es una solución ideal para desarrolladores, startups y equipos pequeños que requieren flexibilidad y privacidad no disponibles en soluciones de nube públicas.

Alternativas y elección de autoalojado:

  • Cloud-managed GitLab (GitLab.com): Es la forma más sencilla de empezar, ya que GitLab se encarga de toda la infraestructura, actualizaciones y copias de seguridad. Sin embargo, está limitado por los planes de precios, no tiene control total sobre los datos (se almacenan en los servidores de GitLab) y la personalización puede ser limitada. Para proyectos con altos requisitos de seguridad o regulaciones específicas, esto puede ser inaceptable.
  • Self-hosted GitLab en un VPS: Esta opción le brinda el máximo control. Usted mismo elige el servidor, el sistema operativo, configura todos los componentes y es responsable de la seguridad y el mantenimiento. Esto requiere conocimientos técnicos, pero le permite adaptar GitLab a cualquier necesidad, integrarlo con su infraestructura interna y garantizar la privacidad total de sus datos. Esto es especialmente relevante si trabaja con información sensible o desea tener control total sobre su cadena de suministro de software.

La elección de GitLab autoalojado en un VPS se debe al deseo de soberanía de los datos, la posibilidad de una profunda integración con otros servicios internos y la optimización de costes a largo plazo en comparación con los gastos crecientes de los servicios en la nube al escalar.

¿Qué configuración de VPS se necesita para esta tarea?

Esquema: ¿Qué configuración de VPS se necesita para esta tarea?
Esquema: ¿Qué configuración de VPS se necesita para esta tarea?

GitLab es una aplicación bastante intensiva en recursos, especialmente si planea usar CI/CD activamente y alojar muchos repositorios. La elección correcta de la configuración del VPS es crucial para garantizar un funcionamiento estable y rápido.

Requisitos mínimos para un usuario o un equipo pequeño (hasta 5 personas):

  • Procesador (CPU): 2 núcleos (vCPU) con una frecuencia de 2.5 GHz o superior.
  • Memoria RAM: 4 GB. GitLab es muy exigente con la memoria RAM, y 4 GB es el mínimo absoluto para que el sistema funcione sin intercambios constantes. Para un funcionamiento cómodo, se recomiendan 8 GB.
  • Disco: 50 GB SSD. Las unidades SSD aceleran significativamente las operaciones de entrada/salida, lo cual es crítico para las bases de datos y el trabajo con repositorios Git. Si se planean muchos repositorios o archivos grandes, se necesitará más espacio.
  • Red: Puerto de 100 Mbit/s o 1 Gbit/s con tráfico ilimitado o un volumen suficiente (a partir de 1 TB/mes).

Plan de VPS recomendado para un equipo de hasta 15-20 personas con CI/CD activo:

  • Procesador (CPU): 4 núcleos (vCPU) con una frecuencia de 2.8 GHz o superior.
  • Memoria RAM: 8 GB o 16 GB. Esto garantizará el funcionamiento estable de todos los componentes de GitLab, incluyendo PostgreSQL, Redis y Gitaly, y permitirá ejecutar múltiples pipelines de CI/CD simultáneamente.
  • Disco: 100-200 GB NVMe SSD. NVMe ofrece una velocidad de lectura/escritura aún mayor, lo que acelerará notablemente el trabajo con grandes repositorios y proyectos.
  • Red: Puerto de 1 Gbit/s con tráfico ilimitado.

Para alquilar un VPS con las características indicadas, por ejemplo, 4 vCPU, 8-16 GB RAM, 100-200 GB NVMe SSD, se pueden considerar las ofertas de los proveedores. Una opción adecuada se puede encontrar aquí: VPS con las características indicadas.

¿Cuándo se necesita un servidor dedicado y no un VPS?

Un servidor dedicado se vuelve necesario si:

  • Equipo grande (más de 50 usuarios): GitLab con un gran número de usuarios activos y tareas de CI/CD puede consumir recursos significativos.
  • Altos requisitos de rendimiento: Para pipelines de CI/CD muy activos, grandes monorepositorios o cargas de trabajo específicas.
  • Requisitos específicos de seguridad/aislamiento: Si necesita un aislamiento completo de otros clientes del proveedor, un servidor dedicado lo proporciona.
  • Necesidad de hardware personalizado: Para tareas específicas (por ejemplo, GPU para aprendizaje automático en CI/CD) puede requerirse el control directo del hardware.

Si se encuentra con tales necesidades, considere la posibilidad de adquirir un servidor dedicado.

Ubicación: ¿en qué influye?

La elección de la ubicación geográfica del servidor VPS influye en varios aspectos clave:

  • Latencia: Cuanto más cerca esté el servidor de su equipo y usuarios finales, menor será la latencia. Esto es crítico para un trabajo cómodo con Git, la carga rápida de la interfaz web y la ejecución de tareas de CI/CD.
  • Legislación: La ubicación del servidor determina la legislación de datos aplicable. Esto es importante para cumplir con normativas como GDPR, HIPAA o leyes locales de almacenamiento de datos.
  • Costo: Los precios de los VPS pueden variar según la región.

Se recomienda elegir una ubicación lo más cercana posible a la parte principal de su equipo de desarrolladores.

Preparación del servidor

Esquema: Preparación del servidor
Esquema: Preparación del servidor

Antes de proceder con la instalación de GitLab, es necesario realizar una configuración básica del sistema operativo. Utilizaremos Ubuntu Server 24.04 LTS, ya que es la versión de soporte a largo plazo actual, compatible hasta 2029.

1. Conexión por SSH y creación de un nuevo usuario

Después de obtener los datos de acceso al VPS (normalmente la dirección IP, el usuario root y la contraseña), conéctese al servidor:


ssh root@ВАШ_IP_АДРЕС

Cree un nuevo usuario con permisos sudo para el trabajo diario. Reemplace ваш_пользователь con el nombre deseado:


# Добавление нового пользователя
adduser ваш_пользователь

# Добавление пользователя в группу sudo
usermod -aG sudo ваш_пользователь

Ahora salga de la sesión root e inicie sesión con el nuevo usuario:


exit
ssh ваш_пользователь@ВАШ_IP_АДРЕС

2. Configuración de claves SSH (recomendado)

Para mejorar la seguridad, se recomienda usar claves SSH en lugar de contraseñas. Si aún no tiene claves, genérelas en su máquina local:


# На вашей локальной машине
ssh-keygen -t rsa -b 4096 -C "ваша_почта@example.com"

Luego, copie la clave pública al servidor:


# На вашей локальной машине
ssh-copy-id ваш_пользователь@ВАШ_IP_АДРЕС

Después de esto, puede deshabilitar la autenticación por contraseña para root en el archivo /etc/ssh/sshd_config. Busque las líneas:


# PermitRootLogin prohibit-password
# PasswordAuthentication yes

Y cámbielas a:


PermitRootLogin no
PasswordAuthentication no

Reinicie el servicio SSH:


# На сервере, под вашим_пользователем
sudo systemctl restart sshd

3. Actualización del sistema e instalación de utilidades básicas

Asegúrese de que el sistema esté actualizado y que los paquetes necesarios estén instalados:


# Обновление списка пакетов
sudo apt update

# Обновление всех установленных пакетов
sudo apt upgrade -y

# Установка необходимых утилит
sudo apt install -y curl wget gnupg2 ca-certificates apt-transport-https htop git unattended-upgrades

Unattended Upgrades: Este paquete instala automáticamente actualizaciones de seguridad críticas, lo cual es extremadamente importante para mantener el servidor actualizado y protegido.

4. Configuración del firewall (UFW)

Configuraremos un firewall UFW (Uncomplicated Firewall) básico para proteger el servidor. Por defecto, solo permitiremos SSH, HTTP, HTTPS:


# Разрешить SSH (по умолчанию порт 22)
sudo ufw allow ssh

# Разрешить HTTP (порт 80)
sudo ufw allow http

# Разрешить HTTPS (порт 443)
sudo ufw allow https

# Включить файрвол
sudo ufw enable

Confirme la activación del firewall presionando y. Puede verificar el estado con el comando sudo ufw status.

5. Instalación de Fail2ban (protección contra ataques de fuerza bruta)

Fail2ban escanea los registros y bloquea automáticamente las direcciones IP que muestran signos de actividad maliciosa (por ejemplo, múltiples intentos fallidos de inicio de sesión SSH).


# Установка Fail2ban
sudo apt install -y fail2ban

# Запуск и включение автозапуска Fail2ban
sudo systemctl enable fail2ban
sudo systemctl start fail2ban

Cree un archivo de configuración para Fail2ban para que no se sobrescriba durante las actualizaciones:


sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

Abra /etc/fail2ban/jail.local y configure, por ejemplo, bantime (tiempo de bloqueo) y findtime (período para detectar intentos) según sus necesidades. Asegúrese de que la sección [sshd] esté habilitada (enabled = true).


# Пример настройки в /etc/fail2ban/jail.local
[DEFAULT]
bantime = 1h
findtime = 10m
maxretry = 5

[sshd]
enabled = true
port = ssh
logpath = %(sshd_log)s
backend = %(sshd_backend)s

Reinicie Fail2ban para aplicar los cambios:


sudo systemctl restart fail2ban

Ahora su servidor está listo para la instalación de GitLab.

Instalación de software — paso a paso

Diagrama: Instalación de software — paso a paso
Diagrama: Instalación de software — paso a paso

Instalaremos GitLab Community Edition (CE) utilizando el paquete Omnibus, que incluye todos los componentes necesarios (NGINX, PostgreSQL, Redis, etc.) y simplifica significativamente el proceso de instalación y mantenimiento. Para el año 2026, nos enfocaremos en la versión 20.x de GitLab, que será la actual en ese momento.

Antes de la instalación, asegúrese de tener un nombre de dominio que apunte a la dirección IP de su VPS. Por ejemplo, gitlab.yourdomain.com.

1. Instalación de dependencias

Para añadir el repositorio de GitLab se requieren varios paquetes:


# Instalación de los paquetes necesarios para añadir el repositorio de GitLab
sudo apt update
sudo apt install -y apt-transport-https ca-certificates curl gnupg2

2. Adición del repositorio de GitLab

Importaremos la clave GPG de GitLab y añadiremos el repositorio oficial de paquetes Omnibus:


# Adición de la clave GPG de GitLab
curl https://packages.gitlab.com/gpg.key | sudo gpg --dearmor > /usr/share/keyrings/gitlab-archive-keyring.gpg

# Adición del repositorio de GitLab CE para Ubuntu 24.04 (Noble Numbat)
echo "deb [signed-by=/usr/share/keyrings/gitlab-archive-keyring.gpg] https://packages.gitlab.com/gitlab/gitlab-ce/ubuntu noble main" | sudo tee /etc/apt/sources.list.d/gitlab-ce.list

Actualice la lista de paquetes después de añadir el nuevo repositorio:


# Actualización de la lista de paquetes
sudo apt update

3. Instalación de GitLab Community Edition

Ahora podemos instalar GitLab. En el comando de instalación, especificaremos la URL externa que GitLab utilizará para generar enlaces y configurar NGINX. Reemplace gitlab.yourdomain.com con su dominio.


# Instalación de GitLab CE especificando la URL externa
sudo EXTERNAL_URL="https://gitlab.yourdomain.com" apt install gitlab-ce

Este comando instalará la última versión estable de GitLab CE disponible en el repositorio. El proceso puede tardar un tiempo, ya que se descargarán e instalarán muchos componentes.

4. Configuración inicial y reconfiguración

Después de la instalación, GitLab iniciará automáticamente el proceso de reconfiguración, que configurará todos los componentes. Si no especificó EXTERNAL_URL durante la instalación o desea cambiar alguna configuración, puede hacerlo en el archivo /etc/gitlab/gitlab.rb.

Si necesita reconfigurar GitLab manualmente (por ejemplo, después de modificar gitlab.rb):


# Inicio del proceso de reconfiguración de GitLab
sudo gitlab-ctl reconfigure

Este comando releerá el archivo gitlab.rb y aplicará todos los cambios, además de asegurarse de que todos los servicios de GitLab estén en ejecución y configurados correctamente.

5. Verificación del estado de los servicios de GitLab

Asegúrese de que todos los componentes de GitLab estén en ejecución y funcionando correctamente:


# Verificación del estado de todos los servicios de GitLab
sudo gitlab-ctl status

Debería ver una lista de servicios (nginx, postgresql, redis, unicorn, sidekiq, gitaly, etc.) con el estado run.

6. Establecimiento de la contraseña para el usuario root de GitLab

En la primera instalación, GitLab genera una contraseña temporal para el usuario root. Puede encontrarla en el archivo /etc/gitlab/initial_root_password, que existe solo durante 24 horas después de la instalación.


# Visualización de la contraseña temporal de root
sudo cat /etc/gitlab/initial_root_password

Se recomienda establecer inmediatamente una nueva contraseña segura a través de la interfaz web o la consola de Rails:


# Inicio de la consola de GitLab Rails
sudo gitlab-rails console

# Dentro de la consola de Rails
user = User.where(id: 1).first
user.password = 'SU_NUEVA_CONTRASEÑA_SEGURA'
user.password_confirmation = 'SU_NUEVA_CONTRASEÑA_SEGURA'
user.save!

# Salir de la consola
exit

Ahora puede acceder a la interfaz web de GitLab en https://gitlab.yourdomain.com, utilizando el login root y su nueva contraseña.

Configuración

Diagrama: Configuración
Diagrama: Configuración

El archivo de configuración principal para GitLab Omnibus es /etc/gitlab/gitlab.rb. Después de cualquier cambio en este archivo, es necesario ejecutar sudo gitlab-ctl reconfigure para aplicarlos.

1. Configuración básica de GitLab (/etc/gitlab/gitlab.rb)

Abra el archivo gitlab.rb para editarlo:


sudo nano /etc/gitlab/gitlab.rb

Encuentre y descomente/modifique las siguientes líneas:


# URL externa de su instancia de GitLab. Esto debería configurarse durante la instalación, pero verifique.
external_url 'https://gitlab.yourdomain.com'

# Desactivar NGINX integrado si usa un proxy externo (no es nuestro caso)
# nginx['enable'] = true # Habilitado por defecto

# Configuración de correo electrónico para notificaciones (obligatorio para funcionar)
# Reemplace con los datos de su servidor SMTP
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.your-email-provider.com"
gitlab_rails['smtp_port'] = 587
gitlab_rails['smtp_user_name'] = "[email protected]"
gitlab_rails['smtp_password'] = "SU_CONTRASEÑA_DE_CORREO"
gitlab_rails['smtp_domain'] = "yourdomain.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = false # Establezca en true si su proveedor requiere TLS

gitlab_rails['gitlab_email_from'] = '[email protected]'
gitlab_rails['gitlab_email_display_name'] = 'GitLab'

# Configuración de la copia de seguridad (se tratará con más detalle en la sección de copias de seguridad)
gitlab_rails['backup_path'] = "/var/opt/gitlab/backups"
gitlab_rails['backup_keep_time'] = 604800 # 7 días en segundos

Después de realizar los cambios, guarde el archivo y ejecute la reconfiguración:


sudo gitlab-ctl reconfigure

2. Configuración de TLS/HTTPS con Certbot (Let's Encrypt)

Para asegurar una conexión HTTPS, utilizaremos Certbot para obtener certificados SSL/TLS gratuitos de Let's Encrypt. GitLab Omnibus tiene soporte integrado para Let's Encrypt, lo que simplifica significativamente el proceso.

En el archivo /etc/gitlab/gitlab.rb, encuentre las siguientes líneas y asegúrese de que estén configuradas:


# Habilitar la gestión automática de certificados de Let's Encrypt
letsencrypt['enable'] = true
letsencrypt['contact_emails'] = ['[email protected]'] # Asegúrese de especificar su correo electrónico
letsencrypt['auto_renew_hour'] = 12 # Hora para el intento de renovación diaria
letsencrypt['auto_renew_minute'] = 30 # Minuto para el intento de renovación diaria
letsencrypt['auto_renew_day_of_month'] = "*/7" # Una vez cada 7 días

# Habilitar la redirección de HTTP a HTTPS (recomendado)
nginx['redirect_http_to_https'] = true

Guarde el archivo y ejecute la reconfiguración de nuevo:


sudo gitlab-ctl reconfigure

GitLab intentará automáticamente obtener e instalar el certificado. Si encuentra problemas, asegúrese de que:

  • Su dominio (gitlab.yourdomain.com) apunte correctamente a la dirección IP de su VPS.
  • Los puertos 80 (HTTP) y 443 (HTTPS) estén abiertos en su firewall (UFW).

3. Verificación de la operatividad

Después de la configuración y reconfiguración, asegúrese de que GitLab funciona correctamente:

  • Acceso a través de la interfaz web: Abra https://gitlab.yourdomain.com en su navegador. Debería ver la página de inicio de sesión de GitLab. Verifique que la conexión sea segura (el candado verde en la barra de direcciones).
  • Verificación de la redirección HTTP: Intente acceder a http://gitlab.yourdomain.com. Debería ser redirigido automáticamente a la versión HTTPS.
  • Verificación del estado de GitLab:
    
    # Verificación de los servicios principales de GitLab
    sudo gitlab-ctl status
    
    # Ejecución de la verificación de salud integrada de GitLab
    sudo gitlab-rake gitlab:check SANITIZE=true
                

    El comando gitlab-rake gitlab:check ejecutará una serie de verificaciones que mostrarán posibles problemas con la configuración, los permisos o la base de datos. Si hay errores, léalos atentamente y siga las recomendaciones.

  • Verificación de puertos:
    
    # Verificación de que NGINX escucha en los puertos 80 y 443
    sudo netstat -tulnp | grep -E ':(80|443)'
                

En este punto, su GitLab autoalojado debería estar completamente funcional y accesible a través de una conexión segura.

Copias de seguridad y mantenimiento

Esquema: Copias de seguridad y mantenimiento
Esquema: Copias de seguridad y mantenimiento

La copia de seguridad es una parte fundamental de cualquier sistema de producción. GitLab cuenta con mecanismos integrados para crear copias de seguridad que permiten guardar todos los datos: repositorios Git, bases de datos, archivos subidos, configuración y secretos.

1. Qué respaldar

GitLab Omnibus incluye todo lo necesario. El comando de copia de seguridad de GitLab guarda por defecto:

  • Base de datos PostgreSQL
  • Repositorios Git
  • Archivos subidos (avatares, adjuntos)
  • Archivos de configuración (no todos, pero los principales)
  • Secretos (claves de cifrado)

Importante: el archivo /etc/gitlab/gitlab.rb y el directorio /etc/gitlab/ssl/ (si utiliza certificados personalizados) no se incluyen en la copia de seguridad estándar de GitLab. Deben ser respaldados por separado.

2. Script sencillo de copia de seguridad automática

GitLab proporciona un comando conveniente para crear copias de seguridad. Puede configurar su ejecución a través de cron.

Paso 1: Creación manual de la copia de seguridad


# Creación de una copia de seguridad completa de GitLab
sudo gitlab-rake gitlab:backup:create

Las copias de seguridad se guardan por defecto en /var/opt/gitlab/backups/. Los archivos tienen el formato [TIMESTAMP]_gitlab_backup.tar.

Paso 2: Configuración de la copia de seguridad automática con Cron

Abra la tabla cron para editarla:


sudo crontab -e

Añada la siguiente línea para que GitLab cree una copia de seguridad todos los días a las 02:00 de la madrugada:


# Copia de seguridad diaria de GitLab a las 02:00
0 2 * * * sudo gitlab-rake gitlab:backup:create CRON=1

La opción CRON=1 suprime las solicitudes interactivas y hace que la salida sea más concisa, lo que es útil para tareas automatizadas.

Paso 3: Copia de seguridad de los archivos de configuración

Cree un script separado para la copia de seguridad de gitlab.rb y otros archivos importantes:


sudo mkdir -p /var/opt/gitlab/config_backups
sudo nano /usr/local/bin/gitlab_config_backup.sh

Añada el siguiente contenido al archivo:


#!/bin/bash
TIMESTAMP=$(date +%F_%H-%M-%S)
BACKUP_DIR="/var/opt/gitlab/config_backups"
CONFIG_FILES="/etc/gitlab/gitlab.rb /etc/gitlab/gitlab-secrets.json /etc/gitlab/ssl" # Añada otros archivos/carpetas importantes

# Creación de un archivo con los ficheros de configuración
sudo tar -czf "$BACKUP_DIR/${TIMESTAMP}_gitlab_config.tar.gz" $CONFIG_FILES

# Eliminación de copias de seguridad antiguas (por ejemplo, de más de 7 días)
find "$BACKUP_DIR" -type f -name "*.tar.gz" -mtime +7 -delete

echo "Copia de seguridad de la configuración de GitLab creada: $BACKUP_DIR/${TIMESTAMP}_gitlab_config.tar.gz"

Haga el script ejecutable:


sudo chmod +x /usr/local/bin/gitlab_config_backup.sh

Añádalo a crontab (por ejemplo, a las 02:30):


# Copia de seguridad diaria de la configuración de GitLab a las 02:30
30 2 * * * sudo /usr/local/bin/gitlab_config_backup.sh

3. Dónde almacenar las copias de seguridad

Almacenar las copias de seguridad en el mismo servidor que la instancia principal de GitLab es extremadamente arriesgado. Si pierde el servidor, también perderá las copias de seguridad. Se recomienda utilizar un almacenamiento externo:

  • Almacenamiento en la nube compatible con S3: AWS S3, DigitalOcean Spaces, Backblaze B2. GitLab Omnibus soporta la carga directa de copias de seguridad a S3. Para ello, edite /etc/gitlab/gitlab.rb:
    
    # Habilitar la carga de copias de seguridad a S3
    gitlab_rails['backup_upload_connection'] = {
      'provider' => 'AWS',
      'region' => 'us-east-1', # Reemplace con su región S3
      'aws_access_key_id' => 'ВАШ_AWS_ACCESS_KEY_ID',
      'aws_secret_access_key' => 'ВАШ_AWS_SECRET_ACCESS_KEY'
    }
    gitlab_rails['backup_upload_remote_directory'] = 'gitlab-backups' # Nombre de su bucket S3
                

    Después de los cambios, ejecute sudo gitlab-ctl reconfigure.

  • VPS separado: Puede configurar un segundo VPS pequeño y usar rsync o scp para transferir regularmente las copias de seguridad del servidor principal a este.
  • NAS/servidor local: Si tiene su propio hardware, puede configurar un almacenamiento en red.

Importante: utilice credenciales separadas (usuario IAM) para S3 con permisos mínimos (solo escritura en el bucket especificado).

4. Actualizaciones: rolling vs maintenance window

Las actualizaciones regulares de GitLab son críticas para la seguridad y para obtener nuevas funciones. GitLab lanza nuevas versiones mensualmente (major.minor.patch).

  • Rolling updates (no recomendado para GitLab): Este es un enfoque en el que las actualizaciones se aplican inmediatamente a medida que se lanzan. Para GitLab, esto es peligroso, ya que cada actualización puede contener cambios en la base de datos o la configuración que requieren atención.
  • Maintenance window: Enfoque recomendado. Planifique una ventana de mantenimiento regular (por ejemplo, una vez al mes) para actualizar GitLab. Esto le permite prepararse, hacer una copia de seguridad y, en caso de problemas, revertir rápidamente.
    
    # Detener GitLab antes de la actualización
    sudo gitlab-ctl stop
    
    # Actualizar el sistema y GitLab
    sudo apt update
    sudo apt upgrade -y gitlab-ce
    
    # Iniciar GitLab después de la actualización
    sudo gitlab-ctl start
    
    # Reconfiguración (a veces necesaria después de actualizaciones mayores)
    sudo gitlab-ctl reconfigure
    
    # Comprobar el estado
    sudo gitlab-ctl status
    sudo gitlab-rake gitlab:check
                

Lea siempre las instrucciones oficiales de actualización de GitLab para su versión específica, ya que puede haber pasos específicos entre versiones mayores.

Solución de problemas + Preguntas frecuentes

¿Qué hacer si GitLab no se inicia después de un reinicio?

Primero, revise los registros. Los registros principales de GitLab se encuentran en /var/log/gitlab/. Empiece por gitlab-rails/production.log, nginx/gitlab_access.log, nginx/gitlab_error.log y gitlab-shell/gitlab-shell.log. También ejecute sudo gitlab-ctl status para ver qué servicios no están iniciados. A menudo, el problema está relacionado con la falta de memoria o una configuración incorrecta en /etc/gitlab/gitlab.rb. Intente ejecutar sudo gitlab-ctl reconfigure y sudo gitlab-ctl restart.

No se puede obtener un certificado SSL de Let's Encrypt. ¿Cuál es el problema?

Las causas más comunes: 1) El registro DNS de su dominio está configurado incorrectamente — asegúrese de que el registro A apunte a la dirección IP de su VPS. 2) El puerto 80 o 443 está bloqueado por el firewall (UFW o el firewall del proveedor del VPS). Asegúrese de que sudo ufw status muestre allow 80/tcp y allow 443/tcp. 3) Otro proceso ya está escuchando en el puerto 80 o 443. Compruebe sudo netstat -tulnp | grep -E ':(80|443)'. 4) Errores en /etc/gitlab/gitlab.rb, por ejemplo, un external_url incorrecto o la falta de contact_emails para Let's Encrypt.

¿Qué configuración mínima de VPS es adecuada?

Para un solo usuario o un equipo muy pequeño (hasta 3-5 personas) con un mínimo de actividad y sin CI/CD intensivo, un VPS mínimamente aceptable debe tener 2 núcleos de CPU, 4 GB de RAM y 50 GB de SSD. Sin embargo, para un funcionamiento más cómodo y estable, especialmente si se planea usar CI/CD, se recomienda encarecidamente 4 núcleos de CPU, 8 GB de RAM y 100 GB de NVMe SSD. Parámetros menores provocarán ralentizaciones y fallos constantes debido a la falta de recursos.

¿Qué elegir — VPS o dedicado para esta tarea?

La elección entre un VPS y un servidor dedicado depende de la escala de su equipo y la intensidad del uso de GitLab. Para la mayoría de los equipos pequeños y medianos (hasta 50-70 personas) con CI/CD moderado, un VPS bien configurado (por ejemplo, 8-16 GB de RAM, 8 vCPU, 200+ GB NVMe SSD) será más que suficiente y económicamente ventajoso. Un servidor dedicado es preferible para equipos muy grandes (cientos de usuarios), pipelines de CI/CD de alta carga, requisitos específicos de rendimiento de E/S o aislamiento físico completo de los recursos. En cualquier caso, empiece con un VPS y escale a un dedicado si surgen problemas de rendimiento.

¿Cómo cambiar el tamaño máximo de archivo para subir?

El tamaño máximo de archivo para subir en GitLab está limitado por defecto. Para cambiarlo, edite /etc/gitlab/gitlab.rb. Busque o añada las siguientes líneas:


# Aumentar el límite de subida de NGINX a 2048MB (2GB)
nginx['client_max_body_size'] = '2048m'

# Aumentar el límite de Git (para archivos LFS grandes)
gitlab_rails['gitlab_shell_git_max_size'] = 2048000 # En KB, 2GB

Después de guardar el archivo, ejecute sudo gitlab-ctl reconfigure.

¿Cómo actualizar GitLab a una nueva versión?

El proceso de actualización incluye varios pasos. Primero, realice una copia de seguridad completa de GitLab. Luego, detenga los servicios de GitLab: sudo gitlab-ctl stop. Actualice los paquetes del sistema y GitLab: sudo apt update && sudo apt upgrade -y gitlab-ce. Después de la actualización, inicie GitLab: sudo gitlab-ctl start y realice la reconfiguración: sudo gitlab-ctl reconfigure. Siempre consulte la documentación oficial de GitLab sobre actualizaciones para su versión específica, ya que puede haber pasos adicionales entre versiones mayores.

Conclusiones y próximos pasos

Esquema: Conclusiones y próximos pasos
Esquema: Conclusiones y próximos pasos

¡Felicidades! Ha instalado y configurado con éxito GitLab autoalojado en su VPS, asegurándolo con SSL/TLS e implementando una estrategia de copia de seguridad. Ahora tiene una plataforma potente y flexible para gestionar sus proyectos de desarrollo, control de versiones y automatización de procesos CI/CD, completamente bajo su control.

Aquí hay algunos pasos a seguir:

  • Configuración de GitLab CI/CD: Explore las capacidades de GitLab CI/CD para automatizar la compilación, prueba y despliegue de sus aplicaciones. Configure GitLab Runner en un servidor separado o en un contenedor Docker para el aislamiento y la escalabilidad de las tareas de CI/CD.
  • Integración con servicios externos: Conecte GitLab a sus herramientas existentes, como sistemas de seguimiento de tareas (Jira), almacenamientos de artefactos externos o sistemas de monitoreo.
  • Monitoreo del rendimiento: Implemente herramientas de monitoreo (por ejemplo, Prometheus y Grafana) para rastrear la salud y el rendimiento de su instancia de GitLab, a fin de responder a tiempo a posibles problemas y planificar la escalabilidad.

¿Te fue útil esta guía?

instalación GitLab autoalojado en VPS: SSL, copias de seguridad, actualizaciones
support_agent
Valebyte Support
Usually replies within minutes
Hi there!
Send us a message and we'll reply as soon as possible.