in files/gitlab-cookbooks/gitlab-pages/libraries/gitlab_pages.rb [34:65]
def parse_pages_external_url
return unless Gitlab['pages_external_url']
Gitlab['gitlab_rails']['pages_enabled'] = true if Gitlab['gitlab_rails']['pages_enabled'].nil?
Gitlab['gitlab_pages']['enable'] = true if Gitlab['gitlab_pages']['enable'].nil?
uri = URI(Gitlab['pages_external_url'].to_s)
raise "GitLab Pages external URL must include a schema and FQDN, e.g. http://pages.example.com/" unless uri.host
Gitlab['gitlab_rails']['pages_host'] = uri.host
Gitlab['gitlab_rails']['pages_port'] = uri.port
case uri.scheme
when "http"
Gitlab['gitlab_rails']['pages_https'] = false
Nginx.parse_proxy_headers('pages_nginx', false)
when "https"
Gitlab['gitlab_rails']['pages_https'] = true
Gitlab['pages_nginx']['ssl_certificate'] ||= "/etc/gitlab/ssl/#{uri.host}.crt"
Gitlab['pages_nginx']['ssl_certificate_key'] ||= "/etc/gitlab/ssl/#{uri.host}.key"
Nginx.parse_proxy_headers('pages_nginx', true)
else
raise "Unsupported GitLab Pages external URL scheme: #{uri.scheme}"
end
raise "Unsupported GitLab Pages external URL path: #{uri.path}" unless ["", "/"].include?(uri.path)
Gitlab['pages_nginx']['fqdn_regex'] = uri.host.gsub('.', '\.')
end