GitLab auf Ubuntu oder Debian installieren

GitLab auf Ubuntu oder Debian installieren

DevOps Let's Encrypt Ubuntu
tutorial - GitLab auf ubuntu installieren

GitHub wird schnell teuer – eine gute Alternative ist GitLab

Bei GitHub handelt es sich um eine Plattform, auf der du deinen Quellcode in sogenannten Repositories ablegen kannst. GitHub ist bei Entwicklern daher eine der wohl beliebtesten Plattformen. In dem kostenfreien Plan erfordert GitHub allerdings, dass du deinen Code öffentlich einsehbar machst. Möchtest du auch private Repositories verwenden, wird GitHub dann schnell sehr teuer.

Mit GitLab steht jedoch eine sehr gute und kostengünstige Alternative zu GitHub zur Verfügung. Du kannst bspw. auf die Community Edition setzen, die sich problemlos auf deinem eigenen Server installieren lässt. In diesem HowTo führe ich dich Schritt für Schritt durch die Installation von GitLab auf Grundlage eines Ubuntu Servers (16.04. LTS).

Vorbereitungen

Ein frisch installiertes Ubuntu 16.04 LTS dient dir als Grundlage. Wenn du noch keinen Server zur Verfügung hast, dann kannst du auf das gridscale-Template zurückgreifen.

Prüfe vor der Installation von GitLab die Aktualität deines Servers und spiele ggf. ausstehende Updates ein:

apt -y update && apt -y upgrade

Sofern auf dem Server eine Firewall eingerichtet ist, deaktiviere sie bitte bzw. erlaube mittels nachfolgender Kommandos die entsprechenden Services:

 
ufw allow ssh
ufw allow http
ufw allow https
ufw enable
ufw status

Die Ausgabe sollte anschließend so aussehen:

UFW Status

Es bietet sich an, einen nicht privilegierten Benutzer zu erstellen, unter dem du die Installation ausführst. Lege ihn an und gebe ihm mittels Sudo die Berechtigung, eine Installation auf Systemebene durchzuführen.

adduser username
usermod -aG sudo username
su username

Bei mir sieht das dann so aus:

User anlegen

Als nächstes benötigst du ein paar Systemdienste, die GitLab voraussetzt um bspw. E-Mails zu versenden. Die Installation erledigst du mit folgendem Kommando:

sudo apt -y install ca-certificates curl openssh-server postfix git

Die Installations-Dialoge sind selbsterklärend und führen dich bei Bedarf durch die Konfiguration von z.B. Postfix hindurch. Achte auf die richtige Konfiguration des Parameters ‘mydestination’ in der Postfix-Konfiguration, damit der Versand von E-Mails nicht fehlschlägt.

mydestination festlegen

GitLab installieren

Die Installation von GitLab besteht aus zwei Teilen. Erst wird ein Script ausgeführt, dass alle nötigen Keys und Reps auf deinem Server hinterlegt, anschließend kann über apt das eigentliche GitLab heruntergeladen werden. Führe zuerst folgende Befehle aus

cd /tmp
curl  -LO https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh

Mit dem Befehl “less” kannst du dir den Inhalt des Skriptes ansehen bevor du es installierst.

less /tmp/script.deb.sh

Bist du mit allem zufrieden, kannst du folgenden Befehl ausführen:

sudo bash /tmp/script.deb.sh

Ist alles fehlerfrei durchgelaufen, solltest du jetzt folgendes sehen:

Install Skript ausführen

Nun kannst du über apt GitLab installieren:

sudo apt -y  install gitlab-ce

Hat alles funktioniert, wird dir folgender Screen angezeigt:

GitLab fertig installiert

GitLab gibt dir vor dem Start die Gelegenheit alle Einstellungen zu kontrollieren und nötigenfalls zu überschreiben, bevor es gestartet wird. Um erst einmal die Standardeinstellungen zu übernehmen, gebe folgenden Befehl ein:

sudo service gitlab-ctl reconfigure

GitLab ist jetzt über deinen Browser erreichbar. Öffne einen Browser und gehe auf http://<deine_IP_oder_Domain>

Anschließend solltest du folgendes Fenster sehen

GitLab Webinterface first view

Nach dem du dein Passwort gesetzt hast, kannst du dich mit dem Benutzernamen “root” und dem soeben festgelegtem Passwort einloggen:

GitLab Webinterface SignIn

Nach erfolgreichem login sieht das Ganze dann so aus:

GitLab Dashboard

Um das Ganze jetzt noch etwas abzusichern, solltest du von http auf https wechseln.

Let’s Encrypt verwenden um GitLab abzusichern

Let’s Encrypt haben wir dir bereits in zahlreichen Artikeln vorgestellt. Die Plattform bietet dir kostenlose, von allen gängigen Browsern anerkannte Zertifikate mit deren Hilfe du mit wenig Arbeit deine Webseiten verschlüsseln kannst.

Da GitLab seine eigene NGINX Instanz mitbringt, ist die Installation hier etwas aufwändiger.

Installiere zunächst Let’s Encrypt:

sudo apt -y install letsencrypt

Erstelle anschließend einen Dummy Ordner für die ACME Challenge:

sudo mkdir -p /var/www/letsencrypt

Passe anschließend die Config von GitLab an um den Ordner .well-known auf den gerade erstellten Ordner zu verlinken:

sudo nano /etc/gitlab/gitlab.rb

Scrolle bis zu den NGINX-Einträgen herunter und füge folgende Zeile hinzu:

nginx['custom_gitlab_server_config'] = "location ^~ /.well-known { root /var/www/letsencrypt; }"

Anschließend beende Nano mit Strg+X und Bestätige das Speichern der Änderungen mit Y.

Starte GitLab anschließend neu:

sudo service gitlab-ctl reconfigure

Jetzt kannst du wie gewohnt Let’s Encrypt verwenden:

letsencrypt -d <deine-domain.tls> --webroot --webroot-path=/var/www/letsencrypt

Nach dem du deine E-Mail Adresse angegeben hast und den AGBs zugestimmt hast, wird dir zum neuen Zertifikat gratuliert. Jetzt muss nur noch der redirect von HTTP auf HTTPS eingerichtet werden und die gerade erstellten Zertifikate in GitLab hinterlegt werden.

Öffne zunächst mit Nano die Config von GitLab und scrolle wieder bis zu den NGINX-Einstellungen.

sudo nano /etc/gitlab/gitlab.rb

Entferne jetzt vor folgenden Zeilen die Raute und passe die Pfade an:

nginx[‘redirect_http_to_https’] = true
nginx[‘ssl_certificate’] = “/etc/letsencrypt/live/<deine-domain.tld>/fullchain.pem” 
nginx[‘ssl_certificate_key’] = “/etc/letsencrypt/live/<deine-domain.tld>/privkey.pem”

Bei mir sieht das so aus:

GitLab Config

Beende Nano und speichere deine Änderungen mit Strg+X und Y, anschließend kannst du GitLab neu starten:

service gitlab-ctl reconfigure

Wechsle wieder in deinen Browser. Du solltest nach einem Refresh jetzt auf HTTPS weitergeleitet werden. Das ist relativ einfach an einem Schloss-Symbol zu erkennen. In Chrome sieht das so aus:

Browser Adressleiste mit Schloss

Zertifikate von Let’s Encrypt sind 90 Tage gültig. Anschließend müssen sie erneuert werden. Um das zu automatisieren, trage folgende Zeile ins Crontab ein.

sudo crontab -e
15 3 * * * /usr/bin/letsencrypt renew --quiet --renew-hook "/usr/bin/gitlab-ctl restart nginx"

Verwendest du Crontab zum ersten Mal wirst du gebeten einen Editor zu wählen. Der Einfachheithalber empfehle ich hier nano (2) zu wählen.

Herzlichen Glückwunsch. Dein GitLab ist jetzt fertig eingerichtet, verschlüsselt und erreichbar.

Zusammenfassung

Nach der Installation von GitLab steht deinen Projekten jetzt nichts mehr entgegen. Auch wenn durch die komplexe Installation der Aufwand relativ hoch ist, lohnt es sich dennoch. Du kannst jetzt damit beginnen deine bestehenden Projekte aus GitHub heraus zu importieren und neue Projekte zu starten. Lege Nutzer für dein Team an und passe die Einstellungen von GitLab an.

Zurück zur Tutorial Übersicht Back to Tutorial Overview

GitHub wird schnell teuer – eine gute Alternative ist GitLab Bei GitHub handelt es sich um eine Plattform, auf der du deinen Quellcode in sogenannten Repositories ablegen kannst. GitHub ist bei Entwicklern daher eine der wohl beliebtesten Plattformen. In dem kostenfreien Plan erfordert GitHub allerdings, dass du deinen Code öffentlich einsehbar machst. Möchtest du auch […]

Schade, dass dir der Artikel nicht gefallen hat.
Was sollten wir deiner Meinung nach besser machen?

Vielen Dank für dein Feedback!
Wir melden uns bei dir, sobald der Artikel zu deinem Wunschthema fertig ist.

Übrigens: kennst du schon unser Tutorial zum Thema Jenkins auf Debian 9 installieren?