GitLab es un administrador de repositorios GIT de código abierto basado en Rails y desarrollado por GitLab Inc. Es un administrador de repositorios GIT basado en la web que le permite a su equipo trabajar en código, rastrear errores y solicitudes de funciones y probar e implementar aplicaciones. GitLab proporciona funciones como un wiki, seguimiento de problemas, revisiones de código, fuentes de actividades y gestión de fusiones. Es capaz de albergar múltiples proyectos.
GitLab está disponible en cuatro ediciones:
- Gitlab CE (Community Edition):autohospedado, gratuito y con soporte del foro de la comunidad.
- Gitlab EE (Enterprise Edition):aplicación de pago autohospedada que incluye funciones adicionales.
- GitLab.com - SaaS, gratis.
- GitLab.io:instancia privada de GitLab administrada por GitLab Inc.
En este tutorial, le mostraré paso a paso cómo instalar GitLab CE (Community Edition) en su propio servidor Ubuntu 16.04 Xenial Xerus. En este tutorial, usaré el paquete 'ómnibus' provisto por GitLab para una fácil instalación.
Qué haremos:
- Instalar paquetes
- Instalar GitLab
- Configurar URL de GitLab
- Generar SSL Let's encrypt y Certificado DHPARAM
- Habilitar Nginx HTTPS para GitLab
- Configurar el cortafuegos UFW
- Realizar la instalación de GitLab
- Pruebas
Requisitos previos
- Servidor Ubuntu 16.04:64 bits
- RAM mínima 2GB
- Privilegios de raíz
Paso 1:instalar los paquetes de Ubuntu necesarios
El primer paso es instalar los paquetes necesarios para la instalación de GitLab. Inicie sesión en el servidor como usuario raíz y actualice el repositorio de Ubuntu.
ssh [email protected]
apt-get update
Ahora instale los paquetes que incluyen curl para descargar el repositorio de GitLab, certificados CA y postfix para la configuración de SMTP.
Instale todos los paquetes con el comando apt a continuación.
sudo apt install curl openssh-server ca-certificates postfix
Durante la instalación de Postfix, se le preguntará acerca de la configuración, seleccione 'Sitio de Internet'.
y luego ingrese el nombre de dominio del servidor que se usará para enviar un correo electrónico.
Paso 2:instalar Gitlab
En este paso, instalaremos GitLab utilizando los paquetes omnibus. Omnibus instalará todos los paquetes, servicios y herramientas necesarios para ejecutar GitLab en su servidor.
Agregue el repositorio de GitLab con el comando curl.
curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash
Y luego instale GitLab CE Community Edition con el comando apt.
sudo apt install gitlab-ce
Espere a que el servidor descargue e instale el paquete gitlab. Cuando se complete la instalación, verá los resultados a continuación.
Paso 3:configurar la URL principal de Gitlab
Ahora debemos configurar la URL que se usará para acceder a nuestro servidor GitLab. Usaré el nombre de dominio 'gitlab.hakase-labs.co' para la URL de GitLab aquí (elija su propio nombre de dominio) y usaré HTTPS para la seguridad de acceso de los usuarios.
La configuración principal de GitLab se encuentra en el directorio '/etc/gitlab'. Vaya a ese directorio y edite el archivo de configuración 'gitlab.rb' con vim.
cd /etc/gitlab
vim gitlab.rb
En la configuración de GitLab, vaya a la línea 9 'external_url' y cambie la URL a su URL 'gitlab.hakase-labs.co'.
external_url 'http://gitlab.hakase-labs.co'
Guarde el archivo y salga del editor. En el siguiente paso habilitaremos HTTPS para GitLab.
Paso 4:generar SSL Let's encrypt y certificado DHPARAM
En este paso, habilitaremos el protocolo HTTPS para GitLab. Usaré certificados SSL gratuitos proporcionados por let's encrypt para el nombre de dominio de gitlab.
Instale la herramienta de línea de comandos de letsencrypt con el comando apt.
sudo apt install letsencrypt -y
Cuando se complete la instalación, genere un nuevo certificado para el nombre de dominio de gitlab con el siguiente comando.
letsencrypt certonly -d gitlab.hakase-labs.co
Ingrese su dirección de correo electrónico para recibir la notificación de renovación del certificado SSL.
Elija 'Acepto' para los Términos de servicio de Let's Encrypt y espere.
Cuando haya terminado, verá el resultado a continuación.
Se han generado nuevos archivos de certificados Let's encrypt para GitLab. Puede encontrar los archivos de certificado en el directorio '/etc/letsencrypt/live'.
A continuación, cree un nuevo directorio llamado 'ssl' en el directorio de configuración de GitLab.
mkdir -p /etc/gitlab/ssl/
Y genere archivos pem dhparam en el directorio ssl con el comando openssl.
sudo openssl dhparam -out /etc/gitlab/ssl/dhparams.pem 2048
Ahora cambie los permisos de los archivos de certificado a 600.
chmod 600 /etc/gitlab/ssl/*
Se ha generado el certificado SSL Let's encrypt para GitLab y el certificado DHPARAM.
Paso 5:habilite Nginx HTTPS para GitLab
En esta etapa, tenemos los archivos de certificado de Letsencrypt en el directorio '/etc/letsencrypt/live' y el certificado DHPARAM en el directorio '/etc/gitlab/ssl'.
En este paso, configuraremos un GitLab para usar nuestros archivos de certificado. Vaya al directorio '/etc/gitlab', luego edite la configuración 'gitlab.rb' con vim.
cd /etc/gitlab/
vim gitlab.rb
Cambie la URL externa para usar 'https' en lugar de 'http'.
external_url 'https://gitlab.hakase-labs.co'
Luego agregue la nueva configuración SSL para gitlab como se muestra a continuación.
nginx['redirect_http_to_https'] = true
nginx['ssl_certificate'] = "/etc/letsencrypt/live/gitlab.hakase-labs.co/fullchain.pem"
nginx['ssl_certificate_key'] = "/etc/letsencrypt/live/gitlab.hakase-labs.co/privkey.pem"
nginx['ssl_dhparam'] = "/etc/gitlab/ssl/dhparams.pem"
Habilitaremos la redirección de HTTP a HTTPS en gitlab.
Guarde el archivo y salga de vim.
Ahora necesitamos ejecutar el siguiente comando como root para aplicar la nueva configuración de gitlab.
sudo gitlab-ctl reconfigure
Verá los resultados a continuación.
Se ha completado la configuración de HTTPS para GitLab.
Paso 6:configurar el cortafuegos UFW
En este paso, habilitaremos el firewall UFW. Ya está instalado en el sistema, solo necesitamos iniciar el servicio. Ejecutaremos GitLab detrás del firewall UFW, por lo que debemos abrir los puertos HTTP y HTTPS.
Habilite el firewall UFW con el siguiente comando.
ufw enable
El comando ejecutará el servicio ufw y lo agregará para que se inicie automáticamente en el momento del arranque.
A continuación, abra nuevos puertos ssh, HTTP y HTTPS.
ufw allow ssh
ufw allow http
ufw allow https
Ahora verifique el estado del firewall y asegúrese de que los puertos ssh, http y https estén en la lista.
ufw status
Los puertos HTTP y HTTPS están configurados.
Paso 7:instalación posterior de Gitlab
GitLab se instaló en el sistema y se está ejecutando detrás del firewall UFW. En este paso, haremos algunas configuraciones rápidas como cambiar la contraseña, el nombre de usuario y la configuración del perfil.
Abra su navegador web y escriba la URL de gitlab, la mía es 'gitlab.hakase-labs.co'. Será redirigido a la conexión HTTPS.
Restablecer la contraseña raíz de GitLab
Ahora inicie sesión en GitLab con el usuario 'root' y con su contraseña.
Cambiar nombre de usuario y perfil
En la esquina superior derecha, haz clic en tu perfil y elige 'Configuración de perfil'.
En la pestaña de perfil, intercambie el nombre predeterminado con su nombre y el correo electrónico con su dirección de correo electrónico. Ahora haga clic en 'Actualizar perfil'.
Haga clic en la pestaña 'Cuenta', cambie el nombre de usuario con su propio nombre de usuario. Luego haga clic en 'Actualizar nombre de usuario'.
Añadir clave SSH
Asegúrese de que ya tiene una clave, si no tiene una clave SSH, puede generarla con el siguiente comando.
ssh-keygen
Y obtendrá dos claves, 'id_rsa' su clave privada y 'id_rsa.pub' su clave pública.
A continuación, haga clic en la pestaña 'Clave SSH', copie el contenido del archivo 'id_rsa.pub' y péguelo en el cuadro de clave, y haga clic en 'Agregar clave'.
Se ha agregado una nueva clave SSH.
Restricciones de registro y configuración de límites
Haga clic en el ícono del 'área de administración', luego haga clic en el ícono de ajustes y elija 'Configuración'.
En 'Configuración de cuenta y límite':puede configurar proyectos máximos por usuario y 'Restricciones de registro', puede agregar el nombre de dominio de su correo electrónico al cuadro de lista blanca.
Y si todo está completo, desplácese hasta la parte inferior y haga clic en 'Guardar'.
Se completó la configuración básica de GitLab.
Paso 8 - Prueba
Finalmente, haremos algunas pruebas para asegurarnos de que nuestro sistema GitLab funcione correctamente.
Crear nuevo proyecto
Haga clic en el ícono más en la parte superior para crear un nuevo repositorio de proyectos. Escriba el nombre de su proyecto, la descripción y configure los ajustes de visibilidad de su proyecto. Luego haga clic en el botón 'Crear proyecto'.
El nuevo proyecto ha sido creado.
Probar primero, confirmar y enviar
Después de que se haya creado el proyecto 'howtoforge', será redirigido a la página del proyecto. Ahora comience a agregar contenido nuevo al repositorio. Asegúrese de que Git esté instalado en su computadora y configure el nombre de usuario global y el correo electrónico para git con el siguiente comando.
git config --global user.name "hakase"
git config --global user.email "[email protected]"
Clone el Repositorio y agregue un archivo README.md.
git clone https://[email protected]/hakase/howtoforge.git
cd howtoforge/
vim README.md
Se le pedirá la contraseña de usuario 'hakase'. Escriba la misma contraseña que utilizó cuando accedimos a GitLab por primera vez.
Confirme un nuevo archivo en el repositorio de howtoforge.
git add .
git commit -m 'Add README.md file by hakase-labs'
A continuación, envíe el cambio al repositorio en el servidor de GitLab.
git push origin master
Escriba su contraseña y presione Entrar para continuar. Verá el resultado como se muestra a continuación.
Ahora abra el proyecto howtoforge desde su navegador web y verá que el nuevo archivo README.md se ha agregado al repositorio.
Gitlab se ha instalado en un servidor Ubuntu 16.04 Xenial Xerus.
Preferencias
- https://about.gitlab.com/downloads/#ubuntu1604
- https://docs.gitlab.com/ce/