Instalación de GitLab en Debian 9 (SSH) con un proxy inverso NGINX

Procédure

¿Necesitas Gitlab para gestionar tus proyectos? Crea tu propia instancia de GitLab en tu VPS siguiendo este tutorial.

Git es bueno. Gitlab es mejor. Gitlab es un gestor de repositorios Git de código abierto. Desarrollado por GitLab Inc, ofrece una interfaz gráfica intuitiva para la gestión de sus diversos proyectos, manteniendo la compatibilidad con Git. Puedes crear peticiones de funcionalidades, realizar el seguimiento de errores, etc. en equipo y a través de un navegador web.

Gitlab está disponible en varias versiones, tanto de pago como gratuitas. En el siguiente tutorial, instalaremos GitLab Community Edition (Gitlab CE), la versión gratuita y de código abierto de Gitlab.

Requisitos previos

Para utilizar GitLab, necesitas al menos :

  • 2 vCores
  • 4 GB de RAM

El VPSM de la gama LWS Starter será ideal para unos pocos proyectos Gitlab, pero si tiene varios colaboradores y/o varios proyectos que realizar, le recomendamos el VPS L o uno de los VPS de la gama Pro.

Para este tutorial, vamos a considerar un sistema operativo completamente en blanco a partir de la imagen de sistema Debian 9 + SSH ofrecida en LWS Panel. Aquí están los enlaces a otros tutoriales para otros sistemas operativos:

Si desea cambiar el sistema operativo en su VPS, aquí hay un enlace a la documentación de ayuda: ¿Cómo puedo cambiar el sistema operativo en mi VPS?

Tenga en cuenta que este tutorial se basa en una instalación VIRGEN de Debian 9. Si ya ha instalado algo en él, no podemos garantizar que el tutorial será eficaz y / o que todos sus otros servicios estarán disponibles después de la instalación.

No olvide habilitar el puerto SSH en el firewall de su VPS para que pueda conectarse como root a la consola SSH.

Resumen del tutorial

Estos son los pasos que se cubrirán en este tutorial:

  1. Actualización del sistema operativo
  2. Instalación de Gitlab CE
  3. Configuración de un proxy inverso NGINX delante de Gitlab
  4. Instalación de un certificado SSL Let's Encrypt en el proxy inverso NGINX

Paso 1: actualización del sistema operativo

Antes de instalar nada, te recomendamos que actualices la lista de paquetes y los propios paquetes.

En tu consola SSH, escribe los siguientes comandos:



apt-get update apt-get upgrade -y apt-get dist-upgrade -y

Paso 2: Instalación de Gitlab CE

En primer lugar, vamos a instalar las dependencias necesarias:

apt-get install -y curl openssh-server ca-certificates

A continuación, añade el repositorio de Gitlab a tu VPS:

curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ee/script.deb.sh | bash

Ahora vamos a instalar Gitlab:

EXTERNAL_URL="http://vpsXXXXX.lws-hosting.com" apt-get install gitlab-ee

La instalación tarda varios minutos, así que puedes tomarte un café mientras esperas.

Consejo: si tienes una conexión a Internet inestable, puedes utilizar screen para volver a conectarte a la consola desmontable en caso de desconexión inesperada. Documentación sobre cómo utilizar screen.

Una vez finalizada la instalación, vaya a http://vpsXXXXX.lws-hosting.com para configurar Gitlab.

Consejo: si obtiene un error 502, intente reiniciar Gitlab con el comando gitlab-ctl restart y espere 5 minutos antes de volver a intentarlo(Ctrl+F5).

Si todo va según lo previsto, serás redirigido a una página para crear tu contraseña de Gitlab.

Instalación de GitLab en Debian 9 (SSH) con un proxy inverso NGINX

Especifica una contraseña relativamente compleja. También puedes generar una contraseña aleatoria.

Una vez hecho esto, podrás conectarte a Gitlab con el usuario root y la contraseña que hayas especificado.

Instalación del proxy inverso NGINX

Ahora vamos a configurar un proxy inverso con NGINX. Esto le permitirá alojar otros sitios y aplicaciones en el futuro, especialmente si ha optado por un servidor Cloud Pro S VPS o superior.

El primer paso es mover Gitlab a un puerto no utilizado. Para este tutorial, usaremos el puerto 6080 (tomado al azar).

Consejo: puedes encontrar la lista de puertos ya en uso con el comando netstat -tunap | grep LISTEN

Para ello, edita el archivo /etc/gitlab/gitlab.rb con nano (o vim, u otro editor):

nano /etc/gitlab/gitlab.rb

Y edita el valor de external_url para incluir el puerto:







[##! URL de GitLab ##! URL en la que GitLab será accesible. ##! Para más detalles sobre la configuración de external_url ver: ##! https://docs.gitlab.com/omnibus/settings/configuration.html#configuring-the-external-url-for-gitlab external_url'http://vpsXXXXX.lws-hosting.com:6080'[...]

Ctrl+X, Y luego Enter para guardar el archivo y cerrar nano(Esc luego :wq para vim).

Para aplicar esta configuración, ejecute el siguiente comando:

gitlab-ctl reconfigure

Esto llevará uno o dos minutos mientras Gitlab sincroniza su configuración con las aplicaciones que Gitlab utiliza por defecto (NGINX, omnibus, etc.).

Gitlab está ahora en 6080. Ahora tenemos que instalar NGINX. La instalación de NGINX se resume en las siguientes líneas de comando:





apt-get install -y curl gnupg2 ca-certificates lsb-release echo "deb http://nginx.org/packages/debian `lsb_release -cs` nginx" | tee /etc/apt/sources.list.d/nginx.list curl -fsSL https://nginx.org/keys/nginx_signing.key | apt-key add - apt-get update apt-get install -y nginx

Ahora es el momento de crear un archivo de configuración de NGINX para GitLab. Lo llamaremos /etc/nginx/conf.d/000-gitlab.conf. Usa nano para crear este archivo:

nano /etc/nginx/conf.d/000-gitlab.conf

A continuación, tenemos que crear un nuevo bloque server{} y crear el proxy inverso. Aquí hay un contenido sugerido :



server { listen 80; server_name gitlab.example.


com; location / { proxy_pass http://localhost:



6080; proxy_redirect off; proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;




proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Forwarded-Protocol $scheme; proxy_set_header X-Url-Scheme $scheme; } }

Consejo: El prefijo "000- " es necesario para que el archivo se cargue antes que default.conf. De lo contrario, el archivo default . conf sobrescribirá nuestra configuración.

Activar NGINX al inicio:

systemctl enable nginx

Luego reinicia nginx con el siguiente comando:

systemctl restart nginx

A continuación, debe apuntar gitlab.example.com a su VPS añadiendo un registro A a su zona DNS. Si tu DNS está gestionado en el espacio cliente de LWS, aquí tienes cómo hacerlo:

Instalación de GitLab en Debian 9 (SSH) con un proxy inverso NGINX

A continuación, vamos a configurar Gitlab de nuevo para aceptar el encabezado X-Forwarded-For para encontrar las direcciones IP reales de los visitantes. Esto se hace editando el archivo /etc/gitlab/gitlab.rb:




[...] nginx['real_ip_header'] = 'X-Forwarded-For' nginx['real_ip_recursive'] = 'on' [...]

A continuación, vuelva a sincronizar las configuraciones de Gitlab y sus servicios integrados:

gitlab-ctl reconfigure

En este punto, deberías poder conectarte a http://gitlab.exemple.com.

Instalación de un certificado SSL Let's Encrypt en NGINX

Ahora vamos a asegurar nuestro acceso con un certificado Let's Encrypt SSL. Primero, vamos a instalar certbot :

apt-get install certbot -y

A continuación, vamos a configurar un webroot para la autenticación Let's Encrypt. Para ello, edita el archivo /etc/nginx/conf.d/000-gitlab.conf y añade estas líneas después del bloque location /:










[...] location / { proxy_pass http://localhost:6080; [...] }location ^~ /.well-known/acme-challenge/ { root /var/www/letsencrypt; } }

Cree la carpeta :

mkdir -p /var/www/letsencrypt

Y reinicie NGINX :

systemctl restart nginx

Ahora vamos a crear un certificado SSL para gitlab.example.com:

certbot certonly --webroot -w /var/www/letsencrypt/ -d gitlab.ejemplo.com

Sigue las instrucciones que aparecen en pantalla:

  • Introduzca su dirección de correo electrónico
  • Lea y acepte las condiciones de uso
  • Suscríbete (o no) al boletín de EFF

A continuación, vamos a editar /etc/nginx/conf.d/000-gitlab.conf de nuevo para añadir un nuevo servidor en HTTPS/443. Tenemos que añadir las siguientes líneas al final del archivo:







[...] server { listen 443 ssl; server_name gitlab.example.com; ssl_certificate /etc/letsencrypt/live/gitlab.example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/gitlab.example.com/privkey.


pem; location / { proxy_pass http://localhost:



6080; proxy_redirect off; proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;




proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Forwarded-Protocol $scheme; proxy_set_header X-Url-Scheme $scheme; } }

Y reinicie su servidor NGINX :

systemctl restart nginx

Ahora tienes un servidor Gitlab listo para usar en https://gitlab.exemple.com.

Valora este artículo :

Este artículo le ha sido útil ?

Article utile

Article non utileNo

Vous souhaitez nous laisser un commentaire concernant cet article ?

Si cela concerne une erreur dans la documentation ou un manque d'informations, n'hésitez pas à nous en faire part depuis le formulaire.

Pour toute question non liée à cette documentation ou problème technique sur l'un de vos services, contactez le support commercial ou le support technique

MerciMerci ! N'hésitez pas à poser des questions sur nos documentations si vous souhaitez plus d'informations et nous aider à les améliorer.


Vous avez noté 0 étoile(s)

Artículos similares


Formule una pregunta al equipo de LWS y a su comunidad