in files/gitlab-cookbooks/gitlab/libraries/gitlab_rails.rb [118:153]
def parse_external_url
return unless Gitlab['external_url']
uri = URI(Gitlab['external_url'].to_s)
raise "GitLab external URL must include a schema and FQDN, e.g. http://gitlab.example.com/" unless uri.host
Gitlab['gitlab_rails']['gitlab_url'] = uri.to_s.chomp("/")
Gitlab['user']['git_user_email'] ||= "gitlab@#{uri.host}"
Gitlab['gitlab_rails']['gitlab_host'] = uri.host
Gitlab['gitlab_rails']['gitlab_email_from'] ||= "gitlab@#{uri.host}"
case uri.scheme
when "http"
Gitlab['gitlab_rails']['gitlab_https'] = false
Nginx.parse_proxy_headers('nginx', false)
when "https"
Gitlab['gitlab_rails']['gitlab_https'] = true
Gitlab['nginx']['ssl_certificate'] ||= "/etc/gitlab/ssl/#{uri.host}.crt"
Gitlab['nginx']['ssl_certificate_key'] ||= "/etc/gitlab/ssl/#{uri.host}.key"
Nginx.parse_proxy_headers('nginx', true)
else
raise "Unsupported external URL scheme: #{uri.scheme}"
end
unless ["", "/"].include?(uri.path)
relative_url = uri.path.chomp("/")
Gitlab['gitlab_rails']['gitlab_relative_url'] ||= relative_url
Gitlab[WebServerHelper.service_name]['relative_url'] ||= relative_url
Gitlab['gitlab_workhorse']['relative_url'] ||= relative_url
end
Gitlab['gitlab_rails']['gitlab_port'] = uri.port
end