Introducción
GitLab es una aplicación de código abierto que se utiliza principalmente para alojar repositorios Git con funciones adicionales para el desarrollo, como el seguimiento de incidencias. Está diseñada para alojarse en su propia infraestructura, lo que ofrece la flexibilidad de implementarse como un repositorio interno para el equipo de desarrollo, una forma pública de comunicarse con los usuarios o un medio para que los colaboradores alojen sus propios proyectos.
El proyecto GitLab te permite crear al menos una instancia de GitLab en tu hardware mediante un mecanismo de instalación. Esta guía te enseñará a instalar y configurar GitLab Community Edition en un servidor Ubuntu.
Requisitos previos
- Un servidor que ejecuta Ubuntu, con un usuario sin privilegios de administrador
sudoY un cortafuegos activo. - 4 núcleos para tu CPU
- 4 GB de RAM para memoria
- Un nombre de dominio que apunta a su servidor
Paso 1 – Instalar dependencias
Antes de instalar GitLab, es importante instalar el software que se utilizará durante la instalación y de forma continua. El software necesario se puede instalar desde los repositorios de paquetes predeterminados de Ubuntu.
Primero, actualice la lista de paquetes locales:
sudo apt updateLuego instale las dependencias ingresando este comando:
sudo apt install ca-certificates curl openssh-server postfix tzdata perlProbablemente ya tenga instalado parte de este software. Para instalar Postfix, seleccione Sitio de Internet cuando se le solicite. En la página siguiente, introduzca el nombre de dominio de su servidor para configurar cómo envía el correo el sistema.
Ahora que ha instalado las dependencias, está listo para instalar GitLab.
Paso 2: Instalar GitLab
A pesar de las dependencias, puedes instalar GitLab. Este proceso utiliza un script de instalación para configurar tu sistema con los repositorios de GitLab.
Primero, ingrese a la carpeta /tmp:
cd /tmpLuego descargue el script de instalación:
curl -LO https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.shNo dudes en revisar el script descargado para asegurarte de que te sientes cómodo con su funcionamiento. También puedes encontrar una versión alojada del script en las instrucciones de instalación de GitLab:
less /tmp/script.deb.shUna vez que esté satisfecho de que el script es seguro, ejecute el instalador:
sudo bash /tmp/script.deb.shEl script configurará tu servidor para usar los repositorios de GitLab. Esto te permitirá administrar GitLab con las mismas herramientas de gestión de paquetes que usas para otros paquetes en tu sistema. Una vez completado, puedes instalar la aplicación de GitLab con apt:
sudo apt install gitlab-ceEsto instalará los componentes necesarios en su sistema y puede tardar algún tiempo en completarse.
Paso 3: Configurar las reglas del firewall
Antes de configurar GitLab, asegúrese de que las reglas de su firewall sean lo suficientemente permisivas como para permitir el tráfico web. Si siguió la guía incluida en los prerrequisitos, ya tendrá habilitado el firewall ufw.
Vea el estado actual de su firewall activo ejecutando lo siguiente:
sudo ufw statusOutput
Status: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)Las reglas actuales permiten el tráfico SSH, pero el acceso a otros servicios está restringido. Dado que GitLab es una aplicación web, debes permitir el acceso HTTP. Dado que usarás la función de GitLab para solicitar y activar un certificado TLS/SSL gratuito de Let's Encrypt, también debes permitir el acceso HTTPS.
El protocolo de mapeo de puertos para HTTP y HTTPS está disponible en el archivo /etc/services, por lo que puede permitir ese tráfico por nombre. Si aún no ha habilitado el tráfico OpenSSH, debe permitirlo:
sudo ufw allow http
sudo ufw allow https
sudo ufw allow OpenSSHPuede verificar nuevamente el estado de UFW para asegurarse de tener acceso al menos a estos dos servicios:
sudo ufw statusOutput
Status: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
80/tcp ALLOW Anywhere
443/tcp ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
80/tcp (v6) ALLOW Anywhere (v6)
443/tcp (v6) ALLOW Anywhere (v6)
Esta salida muestra que la interfaz web de GitLab ahora es accesible después de configurar la aplicación.
Paso 4: Editar el archivo de configuración de GitLab
Antes de poder usar la aplicación, debe actualizar el archivo de configuración y ejecutar un comando de reconfiguración. Primero, abra el archivo de configuración de GitLab con su editor de texto favorito. Este ejemplo usa nano:
sudo nano /etc/gitlab/gitlab.rbBusque la línea de configuración external_url. Actualícela para que coincida con su dominio y asegúrese de cambiar de http a https para redirigir automáticamente a los usuarios al sitio protegido por el certificado Let's Encrypt.
...
## GitLab URL
##! URL on which GitLab will be reachable.
##! For more details on configuring external_url see:
##! https://docs.gitlab.com/omnibus/settings/configuration.html#configuring-the-external-url-for-gitlab
##!
##! Note: During installation/upgrades, the value of the environment variable
##! EXTERNAL_URL will be used to populate/replace this value.
##! On AWS EC2 instances, we also attempt to fetch the public hostname/IP
##! address from AWS. For more details, see:
##! https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instancedata-data-retrieval.html
external_url 'https://your_domain'
...A continuación, busque la configuración letsencrypt['contact_emails']. Si usa nano, puede habilitar la consulta de búsqueda presionando CTRL+W. Escriba letsencrypt['contact_emails'] en la línea de comandos y presione ENTER. Esta configuración define una lista de direcciones de correo electrónico que el proyecto Let's Encrypt puede usar para contactarlo si hay algún problema con su dominio. Se recomienda descomentar y completar esta opción para recibir notificaciones sobre cualquier problema que pueda ocurrir:
letsencrypt['contact_emails'] = ['[email protected]']
Después de realizar los cambios, guarde y cierre el archivo. Si usa nano, puede hacerlo presionando CTRL+X, entonces Y Y luego INGRESAR Hazlo.
Ejecute el siguiente comando para reconfigurar GitLab:
sudo gitlab-ctl reconfigureEsto inicializará GitLab usando la información que encuentre sobre tu servidor. Es un proceso completamente automatizado, por lo que no tendrás que responder a ninguna solicitud. Este proceso también configurará un certificado Let's Encrypt para tu dominio.
Paso 5 – Realizar la configuración inicial a través de la interfaz web
Con GitLab en ejecución, puedes realizar una configuración inicial de la aplicación a través de la interfaz web.
Iniciar sesión por primera vez
Visita el nombre de dominio de tu servidor GitLab en tu navegador web:
https://your_domainEn su primera visita, se le presentará una página de inicio de sesión:
GitLab generará una contraseña inicial segura. Esta se guardará en una carpeta a la que podrás acceder como usuario administrador sudo:
sudo nano /etc/gitlab/initial_root_password# WARNING: This value is valid only in the following conditions
# 1. If provided manually (either via `GITLAB_ROOT_PASSWORD` environment variable or via `gitlab_rails['initial_root_password']` setting in `gitlab.rb`, it was provided before database was seeded for the firs$
# 2. Password hasn't been changed manually, either via UI or via command line.
#
# If the password shown here doesn't work, you must reset the admin password following https://docs.gitlab.com/ee/security/reset_user_password.html#reset-your-root-password.
Password: YOUR_PASSWORD
# NOTE: This file will be automatically deleted in the first reconfigure run after 24 hours.En la página de inicio de sesión, ingrese lo siguiente:
- Nombre de usuario: root
- Contraseña: [contraseña que aparece en /etc/gitlab/initial_root_password]
Introduce estos valores en los campos y haz clic en el botón Iniciar sesión. Iniciarás sesión en la aplicación y serás redirigido a una página que te pedirá que empieces a añadir proyectos:
Ahora puedes ajustar tu instancia de GitLab.
Actualiza tu contraseña
Una de las primeras cosas que debes hacer después de iniciar sesión es cambiar tu contraseña. Para ello, haz clic en el icono en la esquina superior derecha de la barra de navegación y selecciona "Editar perfil".
Accederás a la página de Configuración de usuario. En la barra de navegación izquierda, selecciona Contraseña para cambiar la contraseña de GitLab generada por una segura. Una vez completada la actualización, haz clic en el botón Guardar contraseña.
Volverás a la página de inicio de sesión con una notificación de que tu contraseña ha sido cambiada. Introduce tu nueva contraseña para volver a iniciar sesión en tu instancia de GitLab:

Ajusta la configuración de tu perfil
GitLab elige algunos valores predeterminados razonables, pero estos no suelen ser adecuados una vez que empiezas a usar el software. Para realizar los cambios necesarios, haz clic en el icono de usuario en la esquina superior derecha de la barra de navegación y selecciona "Editar perfil".
Puedes configurar el nombre y la dirección de correo electrónico de "Administrador" y "[email protected]" con valores más específicos. El nombre que elijas se mostrará a los demás usuarios, mientras que el correo electrónico se usará para identificar el avatar predeterminado, las notificaciones, las acciones de Git a través de la interfaz y más.
Una vez completadas las actualizaciones, haz clic en el botón "Actualizar configuración de perfil" en la parte inferior. Se te pedirá que ingreses tu contraseña para confirmar los cambios. Recibirás un correo electrónico de confirmación en la dirección que proporcionaste. Sigue las instrucciones del correo electrónico para verificar tu cuenta y poder usarla con GitLab.
Cambiar el nombre de la cuenta
Luego, seleccione Cuenta en la barra de navegación izquierda:
Aquí puede habilitar la autenticación de dos factores y cambiar su nombre de usuario. Por defecto, la primera cuenta administrativa se llama root. Dado que este nombre de cuenta es conocido, es más seguro cambiarlo. Seguirá teniendo privilegios administrativos. Lo único que cambia es el nombre. Reemplace root con el nombre de usuario que desee:
Haz clic en el botón "Actualizar nombre de usuario" para realizar el cambio. Se te pedirá que lo confirmes. La próxima vez que inicies sesión en GitLab, recuerda usar tu nuevo nombre de usuario.
Cómo agregar una clave SSH a su cuenta
Puedes habilitar claves SSH con Git para interactuar con proyectos de GitLab. Para ello, debes agregar tu clave pública SSH a tu cuenta de GitLab.
En la barra de navegación izquierda, seleccione claves SSH:
Si ya ha creado un par de claves SSH en su computadora local, puede ver la clave pública escribiendo lo siguiente:
cat ~/.ssh/id_rsa.pubOutput
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDMuyMtMl6aWwqBCvQx7YXvZd7bCFVDsyln3yh5/8Pu23LW88VXfJgsBvhZZ9W0rPBGYyzE/TDzwwITvVQcKrwQrvQlYxTVbqZQDlmsC41HnwDfGFXg+QouZemQ2YgMeHfBzy+w26/gg480nC2PPNd0OG79+e7gFVrTL79JA/MyePBugvYqOAbl30h7M1a7EHP3IV5DQUQg4YUq49v4d3AvM0aia4EUowJs0P/j83nsZt8yiE2JEYR03kDgT/qziPK7LnVFqpFDSPC3MR3b8B354E9Af4C/JHgvglv2tsxOyvKupyZonbyr68CqSorO2rAwY/jWFEiArIaVuDiR9YM5 sammy@mydesktopCopia este texto e introdúcelo en el cuadro de texto "Clave" dentro de tu instancia de GitLab. Si recibes otro mensaje, aún no has configurado un par de claves SSH en tu equipo:
Output
cat: /home/sammy/.ssh/id_rsa.pub: No such file or directorySi es así, puede generar un par de claves SSH ingresando el siguiente comando:
[environment local]
ssh-keygenAcepte los valores predeterminados y, opcionalmente, proporcione una contraseña para proteger la clave localmente:
Output
[environment local]
Generating public/private rsa key pair.
Enter file in which to save the key (/home/sammy/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/sammy/.ssh/id_rsa.
Your public key has been saved in /home/sammy/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:I8v5/M5xOicZRZq/XRcSBNxTQV2BZszjlWaIHi5chc0 [email protected]
The key's randomart image is:
+---[RSA 2048]----+
| ..%o==B|
| *.E =.|
| . ++= B |
| ooo.o . |
| . S .o . .|
| . + .. . o|
| + .o.o ..|
| o .++o . |
| oo=+ |
+----[SHA256]-----+Una vez que tengas esto, puedes mostrar tu clave pública como en el ejemplo anterior ingresando este comando:
cat ~/.ssh/id_rsa.pubOutput
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDMuyMtMl6aWwqBCvQx7YXvZd7bCFVDsyln3yh5/8Pu23LW88VXfJgsBvhZZ9W0rPBGYyzE/TDzwwITvVQcKrwQrvQlYxTVbqZQDlmsC41HnwDfGFXg+QouZemQ2YgMeHfBzy+w26/gg480nC2PPNd0OG79+e7gFVrTL79JA/MyePBugvYqOAbl30h7M1a7EHP3IV5DQUQg4YUq49v4d3AvM0aia4EUowJs0P/j83nsZt8yiE2JEYR03kDgT/qziPK7LnVFqpFDSPC3MR3b8B354E9Af4C/JHgvglv2tsxOyvKupyZonbyr68CqSorO2rAwY/jWFEiArIaVuDiR9YM5 sammy@mydesktopToma este bloque de texto y pégalo en el cuadro de texto "Clave" de tu instancia de GitLab. Asígnale un título descriptivo y haz clic en el botón "Añadir clave".
Ahora puedes administrar tus proyectos y repositorios de GitLab desde tu máquina local sin tener que proporcionar las credenciales de tu cuenta de GitLab.
Paso 6 – Restringir o deshabilitar registros públicos
Con tu configuración actual, cualquiera puede crear una cuenta al visitar tu página de ejemplo de GitLab. Si buscas alojar un proyecto público, esto podría ser lo que buscas. Sin embargo, a menudo es preferible una configuración más limitada.
Para comenzar, vaya a la sección de administración haciendo clic en el menú de hamburguesas en la barra de navegación superior y seleccione Administrador en el menú desplegable:
Seleccione Configuración en la barra de navegación izquierda:
Accederás a la configuración global de la instancia de GitLab. Aquí podrás configurar varios ajustes que afectan al registro de nuevos usuarios y a sus niveles de acceso.
Deshabilitar registros
Si desea deshabilitar los registros por completo, vaya a la sección Restricciones de registro y presione Expandir para ver las opciones.
Luego desmarca la opción Registro habilitado:
Recuerda hacer clic en el botón "Guardar cambios" después de realizar los cambios. La sección de registro ya no está disponible en la página de inicio de GitLab.
Restringir el registro por dominio
Si usas GitLab como parte de una organización que proporciona direcciones de correo electrónico asociadas a un dominio, puedes restringir los registros por dominio en lugar de deshabilitarlo por completo. En la sección "Restricciones de registro", selecciona la casilla "Enviar correo electrónico de confirmación al registrarse", que permite a los usuarios iniciar sesión solo después de verificar su correo electrónico.
A continuación, añada su dominio o dominios a la lista blanca de dominios para registro, un dominio por línea. Puede usar el asterisco "*" para especificar dominios comodín:
Cuando termines, haz clic en el botón "Guardar cambios". La sección de registro ya no está en la página de inicio de GitLab.
Restringir la creación de proyectos
De forma predeterminada, los nuevos usuarios pueden crear hasta 10 proyectos. Si desea permitir que nuevos usuarios externos vean y contribuyan, pero desea limitar su acceso a la creación de nuevos proyectos, puede hacerlo en la sección Configuración y restricciones de la cuenta.
En el interior, puedes cambiar el límite de proyecto predeterminado a 0 para deshabilitar por completo que nuevos usuarios creen proyectos:
Aún se pueden agregar nuevos usuarios a los proyectos manualmente y acceder a proyectos internos o públicos creados por otros usuarios. Después de actualizar, recuerde hacer clic en el botón "Guardar cambios". Los nuevos usuarios ahora pueden crear cuentas, pero no podrán crear proyectos.
Renovación de certificados Let's Encrypt
De forma predeterminada, GitLab tiene una tarea programada configurada para renovar los certificados de Let's Encrypt después de la medianoche cada cuatro días, a la hora exacta indicada en tu external_url. Puedes cambiar esta configuración en el archivo /etc/gitlab/gitlab.rb.
Por ejemplo, si desea renovar cada siete días a las 12:30, puede configurarlo para que así sea. Primero, vaya al archivo de configuración:
sudo nano /etc/gitlab/gitlab.rbLuego busque las siguientes líneas en el archivo y elimine # y actualice con lo siguiente:
...
################################################################################
# Let's Encrypt integration
################################################################################
# letsencrypt['enable'] = nil
letsencrypt['contact_emails'] = ['sammy@digitalocean'] # This should be an array of email addresses to add as contacts
# letsencrypt['group'] = 'root'
# letsencrypt['key_size'] = 2048
# letsencrypt['owner'] = 'root'
# letsencrypt['wwwroot'] = '/var/opt/gitlab/nginx/www'
# See http://docs.gitlab.com/omnibus/settings/ssl.html#automatic-renewal for more on these settings
letsencrypt['auto_renew'] = true
letsencrypt['auto_renew_hour'] = "12"
letsencrypt['auto_renew_minute'] = "30"
letsencrypt['auto_renew_day_of_month'] = "*/7"
...También puedes desactivar la renovación automática configurando letsencrypt['auto_renew'] en falso:
...
letsencrypt['auto_renew'] = false
...Con la renovación automática, no tendrás que preocuparte por la interrupción del servicio.
Resultado
Ya tienes una instancia de GitLab alojada en tu servidor. Puedes empezar a importar o crear nuevos proyectos y a configurar los niveles de acceso adecuados para un equipo. GitLab añade constantemente funciones y actualizaciones a su plataforma, así que asegúrate de consultar la página principal del proyecto para estar al tanto de cualquier novedad o anuncio importante.























