Requisitos previos
Debian 11 / 12 en contenedor LxC de Proxmox
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í:
lsb_release -a
Debería obtener esto como salida:
Para Debian 11:
ID de distribuidor: Debian
Descripción: Debian GNU/Linux 11 (bulleseye)
Versión: 11
Nombre en clave: bullseye
Para Debian 12:
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:
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.
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.
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:
sudo sed -i 's/bullseye/buster/g' /etc/apt/sources.list.d/gitlab_gitlab-ce.list
Para Debian 12:
sudo sed -i 's/bookworm/buster/g' /etc/apt/sources.list.d/gitlab_gitlab-ce.list
Ahora, necesitamos actualizar el repositorio.
sudo apt update -y
Paso 3. Instalar GitLab
Después de agregar el repositorio, podemos instalar GitLab Community Edition ejecutando este comando:
sudo apt install gitlab-ce -y
Para evitar el error de fallo de modificación de los ficheros kernel.shmmax añadiremos al final del archivo /etc/gitlab/gitlab.rb.
package['modify_kernel_parameters'] = false
Una vez finalizada la instalación y la modificación del archivo /etc/gitlab/gitlab.rb podemos ejecutar este comando para reconfigurarlo y ejecutar GitLab
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
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:
external_url 'http://gitlab.example.com'
reemplazarlo con
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:
external_url 'http://gitlab.example.com'
reemplazarlo con
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.
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.
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
sudo nano /etc/gitlab/gitlab.rb
Luego, encuentre lo siguiente
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.
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.