GitLab Pages

Mithilfe von GitLab Pages können Sie statische Internetseite für Ihre bestehenden Git-Repositories hosten. Eine vollständige Liste aller Funktionen finden Sie auch in der offiziellen GitLab-Dokumentation unter: https://docs.gitlab.com/ee/administration/pages/



Voraussetzungen

  • GitLab 15 CE oder EE
  • Dedizierte GitLab Pages Domain (z.B: pages.company.com)
  • Wildcard SSL-Zertifikat für die GitLab Pages Domain
  • SSH-Root-Rechte für die GitLab Server Instanz



GitLab Pages aktivieren

Für die Konfiguration und initale Einrichtung von GitLab Pages sind folgende Schritte erforderlich:


Wildcard DNS-Eintrag

Für die Nutzung der GitLab Pages Integration muss ein Wildcard DNS-Eintrag für das GitLab Pages Modul angelegt werden. Der DNS-Eintrag darf keine Subdomain von der bestehenden Instanz sein.

RR-Typ Host Wert
A pages IPv4-Adresse GitLab Server
AAAA pages IPv6-Adresse GitLab Server
A *.pages IPv4-Adresse GitLab Server
AAAA *.pages IPv6-Adresse GitLab Server


Für die GitLab Pages Integration wird eine dedizierte Domain benötigt. Die Domain darf keine Subdomain der bestehenden GitLab-Instanz sein. Sofern Ihre GitLab Instanz unter git.company.com erreichbar ist, wäre die Domain pages.company.com möglich. Der Einsatz auf der Subdomain pages.git.company.com ist nicht zulässig.


Wildcard SSL-Zertifikat in der GitLab Server Instanz platzieren

Nutzen Sie für das Wildcard SSL-Zertifikat beispielsweise unser Sectigo Essential SSL-Zertifikat. Alternativ können Sie auch ein kostenloses Wildcard SSL-Zertifikat von Let’s Encrypt über unser Kundencenter ausstellen. Beachten Sie hierbei, dass die kostenlosen Zertifikat nur 3 Monate gültig sind und vor Ablauf manuell verlängert werden müssen.

Siehe auch: https://www.creoline.com/de/certificates


GitLab Konfiguration anpassen

Nachdem die notwendigen DNS-Einträge hinterlegt wurden und das erforderliche SSL-Zertifikat ausgestellt wurde, können Sie mit der Konfiguration in GitLab beginnen.


Melden Sie sich hierzu via SSH an dem primären GitLab Server an und passen Sie die Datei /etc/gitlab/gitlab.rb wie folgt an:

# /etc/gitlab/gitlab.rb

# GitLab Pages Domain
pages_external_url "https://pages.company.com/"

# GitLab Pages Modul aktivieren
gitlab_pages['enable'] = true

# GitLab Pages Modul via nginx bereitstellen
pages_nginx['enable'] = true

# GitLab Pages Modul automatisch zu https:// weiterleiten
pages_nginx['redirect_http_to_https'] = true 

# Abweichendes SSL-Zertifikat (optional)
# pages_nginx['ssl_certificate'] = "/etc/gitlab/ssl/pages-nginx.crt"
# pages_nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/pages-nginx.key"


Die Konfiguration von pages_nginx[‘ssl_certificate‘] sowie pages_nginx[‘ssl_certificate‘] ist nur erforderlich, wenn Sie von der Namenskonvention abweichen. GitLab erwatet, dass das notwendigen Zertifikat nach folgendem Schema bereitgestellt wird:

Typ Pfad Beispiel
Server-Zertifikat (inkl. Chain) /etc/gitlab/ssl/[WILDCARD_DOMAIN].crt /etc/gitlab/ssl/pages.company.com.crt
Privater-Schlüssel /etc/gitlab/ssl/[WILDCARD_DOMAIN].key /etc/gitlab/ssl/pages.company.com.key


Hinterlegen Sie anschließend die beiden Zertifikats-Komponenten in dem Verzeichnis /etc/gitlab/ssl wie zuvor beschrieben.

Um die neue Konfiguration anzuwenden, führen Sie den Befehl gitlabctl reconfigure via SSH aus. Nachdem GitLab neugestartet wurde, können Sie über das Webinterface von GitLab die allgemeinen Einstellungen der GitLab Pages Integration erreichen.


Navigieren Sie hierzu zu dem Menüpunkt: Admin → Settings → Preferences → Pages

GitLab Pages - Einstellungen

GitLab Pages - Einstellungen




GitLab Pages Integration für ein bestehendes Repository aktivieren

Navigieren Sie zu dem gewünschten Repository und rufen Sie den Menüpunkt Settings → Pages auf. Von hier aus können Sie die Pipeline-Konfiguration über die gitlab-ci.yml anpassen, um die GitLab Page zu aktivieren.




GitLab Pages Custom Domains

Neben dem grundlegenden GitLab Pages Modul, können Sie zusätzlich benutzerdefinierte Domains für Repositories verwenden, die von der zuvor angelegten GitLab Pages Domain abweichen. Für die Integration von Custom Domains, ist eine zusätzliche IPv4- sowie IPv6-Adresse erforderlich.


Zusätzliche IPv4-Adressen können direkt über unseren Live-Chat oder über unser Ticketsystem gebucht werden. Aktuelle Preise für zusätzliche IP-Adressen finden Sie in dem Artikel Preisliste für Zusatzleistungen und Sonderleistungen.


Nachdem die zusätzlichen IP-Adressen am GitLab Server hinterlegt wurden, muss jede gewünschte Custom Domain für die Nutzung konfiguriert werden.


DNS-Einstellungen für GitLab Pages Custom Domains:

RR-Typ Host Wert
A custom-domain.com Zusätzliche IPv4-Adresse
AAAA custom-domain.com Zusätzliche IPv6-Adresse


Für die Custom Domains gibt es keine technischen Voraussetzungen für den Host-Anteil. Sie können die primäre Domain als auch jede beliebige Subdomain verwenden. Nachdem Sie die erforderlichen DNS-Einträge angelegt haben, kann die Custom Domain in den Repository-Einstellungen vorgenommen werden. GitLab versucht automatisch ein Let’s Encrypt Zertifikat für die Domain zu beantragen, sodass eine zusätzliche Ausstellung von Zertifikaten entfällt.