Add missing steps of Pages source installation
[ci skip]
This commit is contained in:
parent
b0905366b0
commit
77d93d3382
1 changed files with 62 additions and 20 deletions
|
@ -1,5 +1,9 @@
|
||||||
# GitLab Pages administration for source installations
|
# GitLab Pages administration for source installations
|
||||||
|
|
||||||
|
>**Note:**
|
||||||
|
Before attempting to enable GitLab Pages, first make sure you have
|
||||||
|
[installed GitLab](../../install/installation.md) successfully.
|
||||||
|
|
||||||
This is the documentation for configuring a GitLab Pages when you have installed
|
This is the documentation for configuring a GitLab Pages when you have installed
|
||||||
GitLab from source and not using the Omnibus packages.
|
GitLab from source and not using the Omnibus packages.
|
||||||
|
|
||||||
|
@ -13,7 +17,33 @@ Pages to the latest supported version.
|
||||||
|
|
||||||
## Overview
|
## Overview
|
||||||
|
|
||||||
[Read the Omnibus overview section.](index.md#overview)
|
GitLab Pages makes use of the [GitLab Pages daemon], a simple HTTP server
|
||||||
|
written in Go that can listen on an external IP address and provide support for
|
||||||
|
custom domains and custom certificates. It supports dynamic certificates through
|
||||||
|
SNI and exposes pages using HTTP2 by default.
|
||||||
|
You are encouraged to read its [README][pages-readme] to fully understand how
|
||||||
|
it works.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
In the case of [custom domains](#custom-domains) (but not
|
||||||
|
[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
|
||||||
|
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 a separate server. In that case, the
|
||||||
|
[Pages path](#change-storage-path) must also be present in the server that
|
||||||
|
the Pages daemon is installed, so you will have to share it via network.
|
||||||
|
1. Run the Pages daemon in the same server as GitLab, listening on the same IP
|
||||||
|
but on different ports. In that case, you will have to proxy the traffic with
|
||||||
|
a loadbalancer. If you choose that route note that you should use TCP load
|
||||||
|
balancing for HTTPS. If you use TLS-termination (HTTPS-load balancing) the
|
||||||
|
pages will not be able to be served with user provided certificates. For
|
||||||
|
HTTP it's OK to use HTTP or TCP load balancing.
|
||||||
|
|
||||||
|
In this document, we will proceed assuming the first option. If you are not
|
||||||
|
supporting custom domains a secondary IP is not needed.
|
||||||
|
|
||||||
## Prerequisites
|
## Prerequisites
|
||||||
|
|
||||||
|
@ -75,7 +105,7 @@ The Pages daemon doesn't listen to the outside world.
|
||||||
cd /home/git
|
cd /home/git
|
||||||
sudo -u git -H git clone https://gitlab.com/gitlab-org/gitlab-pages.git
|
sudo -u git -H git clone https://gitlab.com/gitlab-org/gitlab-pages.git
|
||||||
cd gitlab-pages
|
cd gitlab-pages
|
||||||
sudo -u git -H git checkout v0.2.4
|
sudo -u git -H git checkout v0.3.2
|
||||||
sudo -u git -H make
|
sudo -u git -H make
|
||||||
```
|
```
|
||||||
|
|
||||||
|
@ -100,14 +130,21 @@ The Pages daemon doesn't listen to the outside world.
|
||||||
https: false
|
https: false
|
||||||
```
|
```
|
||||||
|
|
||||||
1. Copy the `gitlab-pages-ssl` Nginx configuration file:
|
1. Edit `/etc/default/gitlab` and set `gitlab_pages_enabled` to `true` in
|
||||||
|
order to enable the pages daemon. In `gitlab_pages_options` the
|
||||||
|
`-pages-domain` must match the `host` setting that you set above.
|
||||||
|
|
||||||
```bash
|
```
|
||||||
sudo cp lib/support/nginx/gitlab-pages-ssl /etc/nginx/sites-available/gitlab-pages-ssl.conf
|
gitlab_pages_enabled=true
|
||||||
sudo ln -sf /etc/nginx/sites-{available,enabled}/gitlab-pages-ssl.conf
|
gitlab_pages_options="-pages-domain example.io -pages-root $app_root/shared/pages -listen-proxy 127.0.0.1:8090
|
||||||
```
|
```
|
||||||
|
|
||||||
Replace `gitlab-pages-ssl` with `gitlab-pages` if you are not using SSL.
|
1. Copy the `gitlab-pages` Nginx configuration file:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo cp lib/support/nginx/gitlab-pages /etc/nginx/sites-available/gitlab-pages.conf
|
||||||
|
sudo ln -sf /etc/nginx/sites-{available,enabled}/gitlab-pages.conf
|
||||||
|
```
|
||||||
|
|
||||||
1. Restart NGINX
|
1. Restart NGINX
|
||||||
1. [Restart GitLab][restart]
|
1. [Restart GitLab][restart]
|
||||||
|
@ -131,7 +168,7 @@ outside world.
|
||||||
cd /home/git
|
cd /home/git
|
||||||
sudo -u git -H git clone https://gitlab.com/gitlab-org/gitlab-pages.git
|
sudo -u git -H git clone https://gitlab.com/gitlab-org/gitlab-pages.git
|
||||||
cd gitlab-pages
|
cd gitlab-pages
|
||||||
sudo -u git -H git checkout v0.2.4
|
sudo -u git -H git checkout v0.3.2
|
||||||
sudo -u git -H make
|
sudo -u git -H make
|
||||||
```
|
```
|
||||||
|
|
||||||
|
@ -149,6 +186,17 @@ outside world.
|
||||||
https: true
|
https: true
|
||||||
```
|
```
|
||||||
|
|
||||||
|
1. Edit `/etc/default/gitlab` and set `gitlab_pages_enabled` to `true` in
|
||||||
|
order to enable the pages daemon. In `gitlab_pages_options` the
|
||||||
|
`-pages-domain` must match the `host` setting that you set above.
|
||||||
|
The `-root-cert` and `-root-key` settings are the wildcard TLS certificates
|
||||||
|
of the `example.io` domain:
|
||||||
|
|
||||||
|
```
|
||||||
|
gitlab_pages_enabled=true
|
||||||
|
gitlab_pages_options="-pages-domain example.io -pages-root $app_root/shared/pages -listen-proxy 127.0.0.1:8090 -root-cert /path/to/example.io.crt -root-key /path/to/example.io.key
|
||||||
|
```
|
||||||
|
|
||||||
1. Copy the `gitlab-pages-ssl` Nginx configuration file:
|
1. Copy the `gitlab-pages-ssl` Nginx configuration file:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
|
@ -156,12 +204,9 @@ outside world.
|
||||||
sudo ln -sf /etc/nginx/sites-{available,enabled}/gitlab-pages-ssl.conf
|
sudo ln -sf /etc/nginx/sites-{available,enabled}/gitlab-pages-ssl.conf
|
||||||
```
|
```
|
||||||
|
|
||||||
Replace `gitlab-pages-ssl` with `gitlab-pages` if you are not using SSL.
|
|
||||||
|
|
||||||
1. Restart NGINX
|
1. Restart NGINX
|
||||||
1. [Restart GitLab][restart]
|
1. [Restart GitLab][restart]
|
||||||
|
|
||||||
|
|
||||||
## Advanced configuration
|
## Advanced configuration
|
||||||
|
|
||||||
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
|
||||||
|
@ -189,7 +234,7 @@ world. Custom domains are supported, but no TLS.
|
||||||
cd /home/git
|
cd /home/git
|
||||||
sudo -u git -H git clone https://gitlab.com/gitlab-org/gitlab-pages.git
|
sudo -u git -H git clone https://gitlab.com/gitlab-org/gitlab-pages.git
|
||||||
cd gitlab-pages
|
cd gitlab-pages
|
||||||
sudo -u git -H git checkout v0.2.4
|
sudo -u git -H git checkout v0.3.2
|
||||||
sudo -u git -H make
|
sudo -u git -H make
|
||||||
```
|
```
|
||||||
|
|
||||||
|
@ -224,12 +269,10 @@ world. Custom domains are supported, but no TLS.
|
||||||
1. Copy the `gitlab-pages-ssl` Nginx configuration file:
|
1. Copy the `gitlab-pages-ssl` Nginx configuration file:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
sudo cp lib/support/nginx/gitlab-pages-ssl /etc/nginx/sites-available/gitlab-pages-ssl.conf
|
sudo cp lib/support/nginx/gitlab-pages /etc/nginx/sites-available/gitlab-pages.conf
|
||||||
sudo ln -sf /etc/nginx/sites-{available,enabled}/gitlab-pages-ssl.conf
|
sudo ln -sf /etc/nginx/sites-{available,enabled}/gitlab-pages.conf
|
||||||
```
|
```
|
||||||
|
|
||||||
Replace `gitlab-pages-ssl` with `gitlab-pages` if you are not using SSL.
|
|
||||||
|
|
||||||
1. Edit all GitLab related configs in `/etc/nginx/site-available/` and replace
|
1. Edit all GitLab related configs in `/etc/nginx/site-available/` and replace
|
||||||
`0.0.0.0` with `1.1.1.1`, where `1.1.1.1` the primary IP where GitLab
|
`0.0.0.0` with `1.1.1.1`, where `1.1.1.1` the primary IP where GitLab
|
||||||
listens to.
|
listens to.
|
||||||
|
@ -257,7 +300,7 @@ world. Custom domains and TLS are supported.
|
||||||
cd /home/git
|
cd /home/git
|
||||||
sudo -u git -H git clone https://gitlab.com/gitlab-org/gitlab-pages.git
|
sudo -u git -H git clone https://gitlab.com/gitlab-org/gitlab-pages.git
|
||||||
cd gitlab-pages
|
cd gitlab-pages
|
||||||
sudo -u git -H git checkout v0.2.4
|
sudo -u git -H git checkout v0.3.2
|
||||||
sudo -u git -H make
|
sudo -u git -H make
|
||||||
```
|
```
|
||||||
|
|
||||||
|
@ -300,8 +343,6 @@ world. Custom domains and TLS are supported.
|
||||||
sudo ln -sf /etc/nginx/sites-{available,enabled}/gitlab-pages-ssl.conf
|
sudo ln -sf /etc/nginx/sites-{available,enabled}/gitlab-pages-ssl.conf
|
||||||
```
|
```
|
||||||
|
|
||||||
Replace `gitlab-pages-ssl` with `gitlab-pages` if you are not using SSL.
|
|
||||||
|
|
||||||
1. Edit all GitLab related configs in `/etc/nginx/site-available/` and replace
|
1. Edit all GitLab related configs in `/etc/nginx/site-available/` and replace
|
||||||
`0.0.0.0` with `1.1.1.1`, where `1.1.1.1` the primary IP where GitLab
|
`0.0.0.0` with `1.1.1.1`, where `1.1.1.1` the primary IP where GitLab
|
||||||
listens to.
|
listens to.
|
||||||
|
@ -392,5 +433,6 @@ than GitLab to prevent XSS attacks.
|
||||||
[pages-userguide]: ../../user/project/pages/index.md
|
[pages-userguide]: ../../user/project/pages/index.md
|
||||||
[reconfigure]: ../restart_gitlab.md#omnibus-gitlab-reconfigure
|
[reconfigure]: ../restart_gitlab.md#omnibus-gitlab-reconfigure
|
||||||
[restart]: ../restart_gitlab.md#installations-from-source
|
[restart]: ../restart_gitlab.md#installations-from-source
|
||||||
[gitlab-pages]: https://gitlab.com/gitlab-org/gitlab-pages/tree/v0.2.4
|
[gitlab-pages]: https://gitlab.com/gitlab-org/gitlab-pages/tree/v0.3.2
|
||||||
|
[gl-example]: https://gitlab.com/gitlab-org/gitlab-ce/blob/master/lib/support/init.d/gitlab.default.example
|
||||||
[shared runners]: ../../ci/runners/README.md
|
[shared runners]: ../../ci/runners/README.md
|
||||||
|
|
Loading…
Reference in a new issue