# Cómo instalar GitLab en Debian 11 / 12

- Link: https://binariocero.com/linux/como-instalar-gitlab-en-debian-11-12
- Published: 2024-05-02T11:05:30+02:00
- Author: Juan José Fernández Durán

![Loading](https://binariocero.com/wp-content/plugins/page-views-count/ajax-loader-
2x.gif)

Requisitos previos

Debian 11 / 12.

Al menos 4 GB de RAM.

Además, se recomienda tener al menos 2 GB de memoria SWAP, incluso si tiene suficiente
RAM disponible.

Paso 1. Sistema de actualización

En primer lugar, debemos iniciar sesión a través de SSH:

A continuación, asegurémonos de que estamos en Debian 11 o 12. Puede hacerlo así:

    ```wp-block-code
    lsb_release -a
    ```

Debería obtener esto como salida:

Para Debian 11:

    ```wp-block-code
    ID de distribuidor: Debian
    Descripción: Debian GNU/Linux 11 (bulleseye)
    Versión: 11
    Nombre en clave: bullseye
    ```

Para Debian 12:

    ```wp-block-code
    ID de distribuidor: Debian
    Descripción: Debian GNU/Linux 12 (bookworm)
    Versión: 12
    Nombre en clave: bookworm
    ```

Luego, ejecute el siguiente comando para asegurarse de que todos los paquetes instalados
en el servidor estén actualizados a sus últimas versiones disponibles:

    ```wp-block-code
    sudo apt update && apt upgrade -y
    ```

Paso 2. Agregar repositorio

Hay dos formas de instalar GitLab en Debian; podemos instalarlo usando el repositorio
o el paquete deb. En este tutorial, usaremos el repositorio para instalar GitLab
en Debian.

    ```wp-block-code
    curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | bash sudo
    ```

El comando anterior descargará el repositorio de GitLab al archivo de la lista de
fuentes de APT en `/etc/apt/sources.list.d/gitlab_gitlab-ce.list`

Dado que el archivo fuente del paquete de GitLab es para Debian 10, necesitamos 
modificar estas líneas.

    ```wp-block-code
    deb https://packages.gitlab.com/gitlab/gitlab-ce/debian/ bullseye main
    deb-src https://packages.gitlab.com/gitlab/gitlab-ce/debian/ bullseye main
    ```

Reemplace 'bullseye' con 'buster' ejecutando este comando.

Para Debian 11:

    ```wp-block-code
    sudo sed -i 's/bullseye/buster/g' /etc/apt/sources.list.d/gitlab_gitlab-ce.list
    ```

Para Debian 12:

    ```wp-block-code
    sudo sed -i 's/bookworm/buster/g' /etc/apt/sources.list.d/gitlab_gitlab-ce.list
    ```

Ahora, necesitamos actualizar el repositorio.

    ```wp-block-code
    sudo apt update -y
    ```

Paso 3. Instalar GitLab

Después de agregar el repositorio, podemos instalar GitLab Community Edition ejecutando
este comando:

    ```wp-block-code
    sudo apt install gitlab-ce -y
    ```

Una vez finalizada la instalación podemos ejecutar este comando para reconfigurarlo
y ejecutar GitLab

    ```wp-block-code
    sudo gitlab-ctl reconfigure
    ```

En este punto, debería poder acceder a GitLab http://YOUR_SERVER_IP_ADDRESS/ e iniciar
sesión como root usando la contraseña en /etc/gitlab/initial_root_password

Tenga en cuenta que la contraseña en /etc/gitlab/initial_root_password es válida
solo durante 24 horas. Puede iniciar sesión y cambiar su contraseña inmediatamente
o restablecerla usando este comando a continuación

    ```wp-block-code
    sudo gitlab-rake "gitlab:password:reset[root]"
    ```

Paso 4. Configurar GitLab

GitLab se ha instalado correctamente y es hora de configurarlo.

Asegure el servidor GitLab con el certificado Let's Encrypt SSL

De forma predeterminada, al instalar GitLab sin pasar un entorno para el valor EXTERNAL_URL.
La instalación establecerá `http://gitlab.example.com` como la URL externa. Si queremos
acceder a nuestra instalación de GitLab a través de un nombre de dominio o subdominio
e instalar un certificado SSL para ello, podemos editar el archivo de configuración`/
etc/gitlab/gitlab.rb`

Abra `/etc/gitlab/gitlab.rb` y busque la línea external_url

Para dominio rutable:

    ```wp-block-code
    external_url 'http://gitlab.example.com'
    ```

reemplazarlo con

    ```wp-block-code
    external_url 'https://gitlab.tudominio.com'
    ```

Asegúrese de que el registro DNS de su dominio o subdominio apunte a su servidor
GitLab.

Para dominio no rutable:

    ```wp-block-code
    external_url 'http://gitlab.example.com'
    ```

reemplazarlo con

    ```wp-block-code
    external_url 'https://gitlab.tudominio.local'
    ```

Paso 5. Habilitar LetsEncrypt (Para dominio rutable)

Luego, aún en el mismo archivo, asegúrese de que no estén comentados y modificados
de la siguiente manera.

    ```wp-block-code
    letsencrypt['enable'] = true
    letsencrypt['contact_emails'] = ['you@yourdomain.com']
    letsencrypt['auto_renew'] = true
    ```

Guarde el archivo y luego salga.

Ahora, necesitamos reconfigurar Omnibus GitLab, y debemos hacer esto cada vez que
editamos el archivo `/etc/gitlab/gitlab.rb`.

    ```wp-block-code
    sudo gitlab-ctl reconfigure
    ```

Ejecute el comando anterior y espere, una vez completado, el certificado SSL de 
Let's Encrypt debería estar instalado y debería poder acceder a su GitLab en `https://
YOUR_DOMAIN_NAME`

Paso 6. Configuración de correo electrónico

De forma predeterminada, GitLab debería poder enviar su correo electrónico mediante
sendmail o postfix. Sin embargo, para una mejor capacidad de entrega de correo electrónico,
debe considerar usar un servidor SMTP para este propósito. Con las credenciales 
de SMTP, podemos configurar GitLab para que use SMTP para enviar su correo electrónico.

Abra `/etc/gitlab/gitlab.rb`

    ```wp-block-code
    sudo nano /etc/gitlab/gitlab.rb
    ```

Luego, encuentre lo siguiente

    ```wp-block-code
    gitlab_rails['smtp_enable'] = true
    gitlab_rails['smtp_address'] = "smtp.server"
    gitlab_rails['smtp_port'] = 465
    gitlab_rails['smtp_user_name'] = "smtp user"
    gitlab_rails['smtp_password'] = "smtp password"
    gitlab_rails['smtp_domain'] = "example.com"
    gitlab_rails['smtp_authentication'] = "login"
    gitlab_rails['smtp_enable_starttls_auto'] = true
    gitlab_rails['smtp_tls'] = true
    gitlab_rails['smtp_pool'] = false
    gitlab_rails['smtp_openssl_verify_mode'] = 'none'
    gitlab_rails['smtp_ca_path'] = "/etc/ssl/certs"
    gitlab_rails['smtp_ca_file'] = "/etc/ssl/certs/ca-certificates.crt"
    ```

Debe descomentar las líneas y usar sus credenciales SMTP para que funcione. Además,
asegúrese de que su contraseña SMTP no contenga ningún delimitador de cadena utilizado
en un archivo YAML; de lo contrario, no funcionará. Guarde sus cambios y luego salga
del archivo.

Como se mencionó anteriormente, debemos reconfigurar Omnibus GitLab después de editar
el archivo `gitlab.rb`.

    ```wp-block-code
    sudo gitlab-ctl reconfigure
    ```

Y eso es. A partir de ahora, GitLab enviará correos electrónicos a través de SMTP,
lo que dará como resultado una mejor capacidad de entrega de correos electrónicos
en comparación con el uso de sendmail. Puede iniciar sesión en su sitio web de GitLab
en `https://yourdomain.com` y comenzar a usarlo.
