The GitLab Pages external-http and external-https arguments can be specified multiple times
This commit is contained in:
parent
d34300e310
commit
75e78f108f
5 changed files with 25 additions and 20 deletions
|
@ -157,8 +157,8 @@ production: &base
|
||||||
host: example.com
|
host: example.com
|
||||||
port: 80 # Set to 443 if you serve the pages with HTTPS
|
port: 80 # Set to 443 if you serve the pages with HTTPS
|
||||||
https: false # Set to true if you serve the pages with HTTPS
|
https: false # Set to true if you serve the pages with HTTPS
|
||||||
# external_http: "1.1.1.1:80" # If defined, enables custom domain support in GitLab Pages
|
# external_http: ["1.1.1.1:80", "[2001::1]:80"] # If defined, enables custom domain support in GitLab Pages
|
||||||
# external_https: "1.1.1.1:443" # If defined, enables custom domain and certificate support in GitLab Pages
|
# external_https: ["1.1.1.1:443", "[2001::1]:443"] # If defined, enables custom domain and certificate support in GitLab Pages
|
||||||
|
|
||||||
## Mattermost
|
## Mattermost
|
||||||
## For enabling Add to Mattermost button
|
## For enabling Add to Mattermost button
|
||||||
|
|
|
@ -278,8 +278,8 @@ Settings.pages['host'] ||= "example.com"
|
||||||
Settings.pages['port'] ||= Settings.pages.https ? 443 : 80
|
Settings.pages['port'] ||= Settings.pages.https ? 443 : 80
|
||||||
Settings.pages['protocol'] ||= Settings.pages.https ? "https" : "http"
|
Settings.pages['protocol'] ||= Settings.pages.https ? "https" : "http"
|
||||||
Settings.pages['url'] ||= Settings.send(:build_pages_url)
|
Settings.pages['url'] ||= Settings.send(:build_pages_url)
|
||||||
Settings.pages['external_http'] ||= false if Settings.pages['external_http'].nil?
|
Settings.pages['external_http'] ||= false unless Settings.pages['external_http'].present?
|
||||||
Settings.pages['external_https'] ||= false if Settings.pages['external_https'].nil?
|
Settings.pages['external_https'] ||= false unless Settings.pages['external_https'].present?
|
||||||
|
|
||||||
#
|
#
|
||||||
# Git LFS
|
# Git LFS
|
||||||
|
|
|
@ -26,9 +26,9 @@ it works.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
In the case of [custom domains](#custom-domains) (but not
|
In the case of [custom domains](#custom-domains) (but not
|
||||||
[wildcard domains](#wildcard-domains)), the Pages daemon needs to listen on
|
[wildcard domains](#wildcard-domains)), the Pages daemon needs to listen on
|
||||||
ports `80` and/or `443`. For that reason, there is some flexibility in the way
|
ports `80` and/or `443`. For that reason, there is some flexibility in the way
|
||||||
which you can set it up:
|
which you can set it up:
|
||||||
|
|
||||||
1. Run the Pages daemon in the same server as GitLab, listening on a secondary IP.
|
1. Run the Pages daemon in the same server as GitLab, listening on a secondary IP.
|
||||||
|
@ -65,11 +65,13 @@ you need to add a [wildcard DNS A record][wiki-wildcard-dns] pointing to the
|
||||||
host that GitLab runs. For example, an entry would look like this:
|
host that GitLab runs. For example, an entry would look like this:
|
||||||
|
|
||||||
```
|
```
|
||||||
*.example.io. 1800 IN A 1.1.1.1
|
*.example.io. 1800 IN A 1.1.1.1
|
||||||
|
*.example.io. 1800 IN AAAA 2001::1
|
||||||
```
|
```
|
||||||
|
|
||||||
where `example.io` is the domain under which GitLab Pages will be served
|
where `example.io` is the domain under which GitLab Pages will be served
|
||||||
and `1.1.1.1` is the IP address of your GitLab instance.
|
and `1.1.1.1` is the IPv4 address of your GitLab instance and `2001::1` is the
|
||||||
|
IPv6 address. If you don't have IPv6, you can omit the AAAA record.
|
||||||
|
|
||||||
> **Note:**
|
> **Note:**
|
||||||
You should not use the GitLab domain to serve user pages. For more information
|
You should not use the GitLab domain to serve user pages. For more information
|
||||||
|
@ -141,7 +143,8 @@ outside world.
|
||||||
In addition to the wildcard domains, you can also have the option to configure
|
In addition to the wildcard domains, you can also have the option to configure
|
||||||
GitLab Pages to work with custom domains. Again, there are two options here:
|
GitLab Pages to work with custom domains. Again, there are two options here:
|
||||||
support custom domains with and without TLS certificates. The easiest setup is
|
support custom domains with and without TLS certificates. The easiest setup is
|
||||||
that without TLS certificates.
|
that without TLS certificates. In either case, you'll need a secondary IP. If
|
||||||
|
you have IPv6 as well as IPv4 addresses, you can use them both.
|
||||||
|
|
||||||
### Custom domains
|
### Custom domains
|
||||||
|
|
||||||
|
@ -163,11 +166,12 @@ world. Custom domains are supported, but no TLS.
|
||||||
pages_external_url "http://example.io"
|
pages_external_url "http://example.io"
|
||||||
nginx['listen_addresses'] = ['1.1.1.1']
|
nginx['listen_addresses'] = ['1.1.1.1']
|
||||||
pages_nginx['enable'] = false
|
pages_nginx['enable'] = false
|
||||||
gitlab_pages['external_http'] = '1.1.1.2:80'
|
gitlab_pages['external_http'] = ['1.1.1.2:80', '[2001::2]:80']
|
||||||
```
|
```
|
||||||
|
|
||||||
where `1.1.1.1` is the primary IP address that GitLab is listening to and
|
where `1.1.1.1` is the primary IP address that GitLab is listening to and
|
||||||
`1.1.1.2` the secondary IP where the GitLab Pages daemon listens to.
|
`1.1.1.2` and `2001::2` are the secondary IPs the GitLab Pages daemon
|
||||||
|
listens on. If you don't have IPv6, you can omit the IPv6 address.
|
||||||
|
|
||||||
1. [Reconfigure GitLab][reconfigure]
|
1. [Reconfigure GitLab][reconfigure]
|
||||||
|
|
||||||
|
@ -194,12 +198,13 @@ world. Custom domains and TLS are supported.
|
||||||
pages_nginx['enable'] = false
|
pages_nginx['enable'] = false
|
||||||
gitlab_pages['cert'] = "/etc/gitlab/ssl/example.io.crt"
|
gitlab_pages['cert'] = "/etc/gitlab/ssl/example.io.crt"
|
||||||
gitlab_pages['cert_key'] = "/etc/gitlab/ssl/example.io.key"
|
gitlab_pages['cert_key'] = "/etc/gitlab/ssl/example.io.key"
|
||||||
gitlab_pages['external_http'] = '1.1.1.2:80'
|
gitlab_pages['external_http'] = ['1.1.1.2:80', '[2001::2]:80']
|
||||||
gitlab_pages['external_https'] = '1.1.1.2:443'
|
gitlab_pages['external_https'] = ['1.1.1.2:443', '[2001::2]:443']
|
||||||
```
|
```
|
||||||
|
|
||||||
where `1.1.1.1` is the primary IP address that GitLab is listening to and
|
where `1.1.1.1` is the primary IP address that GitLab is listening to and
|
||||||
`1.1.1.2` the secondary IP where the GitLab Pages daemon listens to.
|
`1.1.1.2` and `2001::2` are the secondary IPs where the GitLab Pages daemon
|
||||||
|
listens on. If you don't have IPv6, you can omit the IPv6 address.
|
||||||
|
|
||||||
1. [Reconfigure GitLab][reconfigure]
|
1. [Reconfigure GitLab][reconfigure]
|
||||||
|
|
||||||
|
|
|
@ -53,13 +53,13 @@ class Spinach::Features::ProjectPages < Spinach::FeatureSteps
|
||||||
end
|
end
|
||||||
|
|
||||||
step 'pages are exposed on external HTTP address' do
|
step 'pages are exposed on external HTTP address' do
|
||||||
allow(Gitlab.config.pages).to receive(:external_http).and_return('1.1.1.1:80')
|
allow(Gitlab.config.pages).to receive(:external_http).and_return(['1.1.1.1:80'])
|
||||||
allow(Gitlab.config.pages).to receive(:external_https).and_return(nil)
|
allow(Gitlab.config.pages).to receive(:external_https).and_return(nil)
|
||||||
end
|
end
|
||||||
|
|
||||||
step 'pages are exposed on external HTTPS address' do
|
step 'pages are exposed on external HTTPS address' do
|
||||||
allow(Gitlab.config.pages).to receive(:external_http).and_return('1.1.1.1:80')
|
allow(Gitlab.config.pages).to receive(:external_http).and_return(['1.1.1.1:80'])
|
||||||
allow(Gitlab.config.pages).to receive(:external_https).and_return('1.1.1.1:443')
|
allow(Gitlab.config.pages).to receive(:external_https).and_return(['1.1.1.1:443'])
|
||||||
end
|
end
|
||||||
|
|
||||||
step 'I should be able to add a New Domain' do
|
step 'I should be able to add a New Domain' do
|
||||||
|
|
|
@ -56,14 +56,14 @@ gitlab_workhorse_log="$app_root/log/gitlab-workhorse.log"
|
||||||
# The value of -listen-http must be set to `gitlab.yml > pages > external_http`
|
# The value of -listen-http must be set to `gitlab.yml > pages > external_http`
|
||||||
# as well. For example:
|
# as well. For example:
|
||||||
#
|
#
|
||||||
# -listen-http 1.1.1.1:80
|
# -listen-http 1.1.1.1:80 -listen-http [2001::1]:80
|
||||||
#
|
#
|
||||||
# To enable HTTPS support for custom domains add the `-listen-https`,
|
# To enable HTTPS support for custom domains add the `-listen-https`,
|
||||||
# `-root-cert` and `-root-key` directives in `gitlab_pages_options` below.
|
# `-root-cert` and `-root-key` directives in `gitlab_pages_options` below.
|
||||||
# The value of -listen-https must be set to `gitlab.yml > pages > external_https`
|
# The value of -listen-https must be set to `gitlab.yml > pages > external_https`
|
||||||
# as well. For example:
|
# as well. For example:
|
||||||
#
|
#
|
||||||
# -listen-https 1.1.1.1:443 -root-cert /path/to/example.com.crt -root-key /path/to/example.com.key
|
# -listen-https 1.1.1.1:443 -listen-http [2001::1]:443 -root-cert /path/to/example.com.crt -root-key /path/to/example.com.key
|
||||||
#
|
#
|
||||||
# The -pages-domain must be specified the same as in `gitlab.yml > pages > host`.
|
# The -pages-domain must be specified the same as in `gitlab.yml > pages > host`.
|
||||||
# Set `gitlab_pages_enabled=true` if you want to enable the Pages feature.
|
# Set `gitlab_pages_enabled=true` if you want to enable the Pages feature.
|
||||||
|
|
Loading…
Reference in a new issue