Sometimes it's handy to have a additional domain configured for the Gitlab Omnibus bundled NGINX Server. Even though it is not encouraged doing so by Gitlab, it is still possible.
Edit /etc/gitlab/gitlab.rb
and add/change the following values
# Includes all *.conf files in this folder, requires gitlab-ctl reconfigure nginx['custom_nginx_config'] = "include /etc/nginx-gitlab/sites/*.conf;" # Letsencrypt is required to make SSL work with this setup letsencrypt['enable'] = true # Alternative names - add each domain/subdomain you want to # include in the SSL certificate to the "alt_name" array. # Does not support wildcard domains! letsencrypt['alt_names'] = ['example.com', 'www.example.com']
Create folder /etc/nginx-gitlab/sites
and add the following file:
server { listen 80 default_server; listen [::]:80 default_server; root /path/to/doc/root; index index.html index.htm; server_name example.com www.example.com; location / { try_files $uri $uri/ =404; } location /.well-known/acme-challenge/ { root /var/opt/gitlab/nginx/www/; } } server { listen 443 ssl; listen [::]:443 ssl; root /path/to/doc/root; index index.html index.htm; server_name example.com www.example.com; # Refer to Gitlabs letsencrypt cert here. ssl_certificate /etc/gitlab/ssl/gitlab.example.com.crt; ssl_certificate_key /etc/gitlab/ssl/gitlab.example.com.key; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers HIGH:!aNULL:!MD5; location / { try_files $uri $uri/ =404; } location /.well-known/acme-challenge/ { root /var/opt/gitlab/nginx/www/; } }
Run gitlab-ctl reconfigure
to apply the changes made to the configuration.