Como instalar GitLAB en Ubuntu

1. Instalar y configurar las dependencias

Primero debe actualizar el sistema y añadir las siguientes dependencias.

$ sudo apt-get update
$ sudo apt-get install -y curl openssh-server ca-certificates tzdata

1b. (OPCIONAL) Instalar Postfix para notificaciones de e-mail.

Si desea habilitar notificaciones de e-mail puede instalar postfix y configurar su Relé de SMTP interno, pero eso no será explicado en este documento.

$ sudo apt-get install -y postfix

2. Añadir el repositorio de GitLAB e instalar GitLAB CE

Añada el repositorio ejecutando un curl en su consola shell.

$ curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash 

3. Instalar GitLAB CE

Introduzca el siguiente comando en la consola:

$ sudo EXTERNAL_URL="https://gitlab.yourdomain.com" apt-get install gitlab-ce

Habilitar SSL y Utilizar un certificado propio

Para habilitar SSL con un certificado propio tendrá que deshabilitar Letsencrypt en el archivo de configuración y reconfigurar GitLAB.

Ahora genere su certificado con OpenSSL (o quizás compró uno, utilice el que quiera!)

Para crear un certificado básico puede hacer lo siguiente:

$ openssl req -x509 -sha256 -nodes -days 3650 -newkey rsa:4096 -keyout /etc/gitlab/ssl/gitlab-br.key -out /etc/gitlab/ssl/gitlab-br.crt

Modifique la configuración de NGINX en /etc/gitlab/gitlab.rb y añada sucertificado y clave a los parámetros

################################################################################
## GitLab NGINX
##! Docs: https://docs.gitlab.com/omnibus/settings/nginx.html
################################################################################

    nginx['enable'] = true
    nginx['client_max_body_size'] = '250m'
    nginx['redirect_http_to_https'] = false
    nginx['redirect_http_to_https_port'] = 80

##! Most root CA's are included by default
# nginx['ssl_client_certificate'] = "/etc/gitlab/ssl/ca.crt"

##! enable/disable 2-way SSL client authentication
# nginx['ssl_verify_client'] = "off"

##! if ssl_verify_client on, verification depth in the client certificates chain
    nginx['ssl_verify_depth'] = "1"

    nginx['ssl_certificate'] = "/etc/gitlab/ssl/gitlab-br.crt"
    nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/gitlab-br.key"
    nginx['ssl_ciphers'] = "ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256"
    nginx['ssl_prefer_server_ciphers'] = "on"

##! **Recommended by: https://raymii.org/s/tutorials/Strong_SSL_Security_On_nginx.html
##!                   https://cipherli.st/**
    nginx['ssl_protocols'] = "TLSv1.2 TLSv1.3"

##! **Recommended in: https://nginx.org/en/docs/http/ngx_http_ssl_module.html**
    nginx['ssl_session_cache'] = "builtin:1000  shared:SSL:10m"

##! **Default according to https://nginx.org/en/docs/http/ngx_http_ssl_module.html**
    nginx['ssl_session_timeout'] = "5m"

##! nginx['ssl_dhparam'] = nil # Path to dhparams.pem, eg. /etc/gitlab/ssl/dhparams.pem
##! nginx['listen_addresses'] = ['*', '[::]']

Change the following Letsencrypt parameter

################################################################################
# Let's Encrypt integration
################################################################################
letsencrypt['enable'] = false
[...]

Debería poder acceder a su servidor yendo a la URL que configuró o la Dirección IP directamente.

https://gitlabserverip

O

https://gitlab.yourdomain.com