Cómo instalar GitLab en Debian 11
GitLab es una plataforma DevOps gratuita y de código abierto que permite a los equipos iterar más rápido e innovar juntos. Es una herramienta web desarrollada por GitLab Inc. Es muy similar a GitHub y proporciona un gestor de repositorios Git con wiki, seguimiento de incidencias e integración y despliegue continuos. La edición comunitaria de GitLab está disponible de forma totalmente gratuita para entornos de desarrollo y producción.
En este tutorial, te mostraré cómo instalar GitLab con Nginx y Let’s Encrypt SSL en Debian 11.
Requisitos previos
- Un servidor que ejecute Debian 11 con un mínimo de 8 GB de RAM.
- Un nombre de dominio válido apuntado con la IP del servidor.
- Una contraseña de root configurada en el servidor.
Cómo empezar
Antes de empezar, se recomienda actualizar la caché de paquetes a la última versión. Puedes hacerlo con el siguiente comando:
apt-get update -y
Una vez que hayas terminado, instala otras dependencias necesarias con el siguiente comando:
apt-get install curl ca-certificates apt-transport-https gnupg2 -y
Una vez instaladas todas las dependencias necesarias, puedes pasar al siguiente paso.
Añadir el repositorio de GitLab
Por defecto, el paquete GitLab no está disponible en el repositorio por defecto de Debian. Así que tendrás que añadir el repositorio de GitLab a APT.
Puedes añadirlo ejecutando el siguiente script:
curl -s https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | bash
Esto añadirá el repositorio de GitLab al archivo de la lista de fuentes de APT.
En el momento de escribir este artículo, el paquete GitLab no está disponible para Debian 11. Así que tendrás que editar el archivo fuente de GitLab y sustituir el nombre del código de Debian 11 por el de Debian 10:
nano /etc/apt/sources.list.d/gitlab_gitlab-ce.list
Busca las siguientes 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
Sustitúyelas por las siguientes líneas:
deb https://packages.gitlab.com/gitlab/gitlab-ce/debian/ buster main deb-src https://packages.gitlab.com/gitlab/gitlab-ce/debian/ buster main
Guarda y cierra el archivo y luego actualiza el repositorio con el siguiente comando:
apt-get update -y
Instalar GitLab CE
Ahora puedes instalar GitLab CE ejecutando el siguiente comando:
apt-get install gitlab-ce -y
Una vez instalado GitLab, deberías obtener la siguiente salida:
It looks like GitLab has not been configured yet; skipping the upgrade script. *. *. *** *** ***** ***** .****** ******* ******** ******** ,,,,,,,,,***********,,,,,,,,, ,,,,,,,,,,,*********,,,,,,,,,,, .,,,,,,,,,,,*******,,,,,,,,,,,, ,,,,,,,,,*****,,,,,,,,,. ,,,,,,,****,,,,,, .,,,***,,,, ,*,. _______ __ __ __ / ____(_) /_/ / ____ _/ /_ / / __/ / __/ / / __ `/ __ \ / /_/ / / /_/ /___/ /_/ / /_/ / \____/_/\__/_____/\__,_/_.___/ Thank you for installing GitLab! GitLab was unable to detect a valid hostname for your instance. Please configure a URL for your GitLab instance by setting `external_url` configuration in /etc/gitlab/gitlab.rb file. Then, you can start your GitLab instance by running the following command: sudo gitlab-ctl reconfigure For a comprehensive list of configuration options please see the Omnibus GitLab readme https://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/README.md Help us improve the installation experience, let us know how we did with a 1 minute survey: https://gitlab.fra1.qualtrics.com/jfe/form/SV_6kVqZANThUQ1bZb?installation=omnibus&release=14-3
Configurar GitLab
En este punto, GitLab está instalado en tu sistema, pero aún no está configurado. Puedes configurarlo editando el siguiente archivo:
nano /etc/gitlab/gitlab.rb
Cambia la siguiente línea por tu nombre de dominio:
external_url 'https://gitlab.linuxbuz.com'
A continuación, cambia las siguientes líneas para activar el SSL Let’s Encrypt:
# Enable the Let's encrypt SSL letsencrypt['enable'] = true # This is optional to get SSL related alerts letsencrypt['contact_emails'] = ['[email protected]'] # This example renews every 7th day at 02:00 AM letsencrypt['auto_renew_hour'] = "2" letsencrypt['auto_renew_minute'] = "0" letsencrypt['auto_renew_day_of_month'] = "*/7"
Guarda y cierra el archivo y luego reconfigura GitLab utilizando el siguiente comando:
gitlab-ctl reconfigure
Una vez reconfigurado GitLab, deberías obtener la siguiente salida con la contraseña de acceso a GitLab:
Notes: Default admin account has been configured with following details: Username: root Password: You didn't opt-in to print initial root password to STDOUT. Password stored to /etc/gitlab/initial_root_password. This file will be cleaned up in first reconfigure run after 24 hours. NOTE: Because these credentials might be present in your log files in plain text, it is highly recommended to reset the password following https://docs.gitlab.com/ee/security/reset_user_password.html#reset-your-root-password. gitlab Reconfigured!
A continuación, recupera la contraseña de acceso a GitLab utilizando el siguiente comando:
cat /etc/gitlab/initial_root_password
Deberías ver la siguiente salida:
# 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 first time (usually, the first reconfigure run). # 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: WBgnk2SH4xK5FeJndhshzefaFdsIeyE5LSTGWm3EjDVEkw= # NOTE: This file will be automatically deleted in the first reconfigure run after 24 hours.
Acceder a GitLab
Ahora puedes acceder al panel de control de GitLab utilizando la URL https://gitlab.linuxbuz.com. Se te redirigirá a la página de acceso a GitLab:
Introduce tu nombre de usuario, contraseña y haz clic en el botón Iniciar sesión. Deberías ver el panel de control de GitLab en la siguiente pantalla:
Configurar la copia de seguridad de GitLab
Tras la instalación, se recomienda hacer una copia de seguridad completa de GitLab. Puedes hacerlo con el siguiente comando:
gitlab-rake gitlab:backup:create
También puedes programar la copia de seguridad editando el archivo /etc/crontab:
nano /etc/crontab
Añade la siguiente línea:
0 22 * * * root gitlab-rake gitlab:backup:create
Guarda y cierra el archivo cuando hayas terminado.
Conclusión
Enhorabuena! has instalado con éxito GitLab con Nginx y Let’s Encrypt SSL en Debian 11. Ahora puedes implementar GitLab en el entorno de desarrollo para agilizar el proceso de desarrollo de software. No dudes en preguntarme si tienes alguna duda.