From acf7ae5ed80ec39d26dbd37c09bc0f3eb78e1628 Mon Sep 17 00:00:00 2001
From: Achilleas Pipinellis <axilleas@axilleas.me>
Date: Sun, 21 Feb 2016 20:52:15 +0200
Subject: [PATCH] Add info about the pages daemon

---
 doc/pages/administration.md | 49 ++++++++++++++++++++++++++++++++++---
 1 file changed, 45 insertions(+), 4 deletions(-)

diff --git a/doc/pages/administration.md b/doc/pages/administration.md
index fc858cd20e7..3f3d6cac9b2 100644
--- a/doc/pages/administration.md
+++ b/doc/pages/administration.md
@@ -37,11 +37,52 @@ probably want to read the [user documentation](README.md).
 
 <!-- END doctoc generated TOC please keep comment here to allow auto update -->
 
-## Architecture
+## The GitLab Pages daemon
 
-GitLab uses a separate tool ([gitlab-pages]), a simple HTTP server written in
-Go that serves GitLab Pages with CNAMEs and SNI using HTTP/HTTP2. You are
-encouraged to read its [README][pages-readme] to fully understand how it works.
+Starting from GitLab EE 8.5, Pages make use of a separate tool ([gitlab-pages]),
+a simple HTTP server written in Go that serves GitLab Pages with CNAMEs and SNI
+using HTTP/HTTP2. You are encouraged to read its [README][pages-readme] to fully
+understand how it works.
+
+What is supported when using the pages daemon:
+
+- Multiple domains per-project
+- One TLS certificate per-domain
+  - Validation of certificate
+  - Validation of certificate chain
+  - Validation of private key against certificate
+
+---
+
+In the case of custom 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, so you basically have three choices:
+
+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 the same IP
+   but on different ports. In that case, you will have to proxy the traffic with
+   a loadbalancer.
+1. Run the pages daemon in a separate server. In that case, the Pages [`path`]
+   must also be present in the server that the pages daemon is installed, so
+   you will have to share it via network.
+
+[`path`]: https://gitlab.com/gitlab-org/gitlab-ee/blob/8-5-stable-ee/config/gitlab.yml.example#L155
+
+### Install the Pages daemon
+
+**Install the Pages daemon on a source installation**
+
+```
+cd /home/git
+sudo -u git -H git clone https://gitlab.com/gitlab-org/gitlab-pages.git
+cd gitlab-pages
+sudo -u git -H git checkout 0.2.0
+sudo -u git -H make
+```
+
+**Install the Pages daemon on Omnibus**
+
+The `gitlab-pages` daemon is included in the Omnibus package.
 
 [pages-readme]: https://gitlab.com/gitlab-org/gitlab-pages/blob/master/README.md
 
-- 
2.30.9