190 0 0

GitLab auf Ubuntu installieren

vom gridscale Team Git Let's Encrypt Ubuntu
gitlap install

GitLab als Alternative zu GitHub

GitHub ist eine Plattform, auf der Projekte von mehreren Usern bearbeitet werden können und dabei jede Version erhalten bleibt. Deswegen ist sie bei Programmierern sehr beliebt. Will man seine Projekte aber nicht öffentlich für jeden lesbar lagern, sondern nur mit seinem Team teilen, wird GitHub leider schnell teuer. Daher wird oft nach einer Alternative gesucht.

Diese wird mit GitLab geboten. GitLab bietet eine CE (Community Edition) an, die man auf seiner eigenen Infrastruktur hosten kann. In diesem Artikel zeige ich dir Schritt-Für-Schritt, wie du GitLab CE auf einem Ubuntu Server 16.04 LTS installieren kannst.

Vorbereitungen

Wichtig! Ich gehe davon aus, dass du ein frisch installiertes Ubuntu 16.04 LTS System nutzt. GitLab wird viele Einstellungen festlegen und überschreiben. Es liefert auch sein eigenes NGINX mit. Bestehende System werden also unter Umständen unbrauchbar.

Wie vor jeder Installation sollte dein Ubuntu auf den aktuellsten Stand gebracht werden. Mit folgendem Befehl startest du den Update Vorgang:

apt -y update && apt -y upgrade

Bevor du loslegst und Programme installierst, passe deine Firewall Einstellungen an, um sicher zugehen, dass die Programme nur Verbindungen aufbauen, die du auch aufbauen möchtest. In diesem Artikel beschreibe ich einige Tools mit denen du IP Tables anpassen kannst. Der Einfachheit halber nehme ich in diesem Artikel UFW. Führe folgende Befehle in dieser exakten Reihenfolge aus um sicherzustellen, dass du nicht selbst ausgesperrt wirst.

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

Die Ausgabe sollte anschließend so aussehen:

UFW Status

Lege nun noch einen Nutzer an und gebe ihm Sudo Rechte, bevor du mit der Installation fortfährst. Führe dazu folgende Befehle aus:

adduser username
usermod -aG sudo username
su username

Nach dem ersten Befehl wirst du nach einigen Infos sowie nach dem Passwort des neuen Nutzers gefragt. Gebe alles ein. Das Ergebnis sollte dann so aussehen:

User anlegen

Nun müssen einige Programme, die GitLab voraussetzt, installiert werden – benutze dazu folgenden Befehl. Es ist nicht schlimm, wenn einige von diesen bereits installiert sind – APT ignoriert in diesem Fall einfach die Installation.

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

Bei der Installation von Postfix wirst du gefragt, welche Art von Server du betreibst. Wähle hier “Internet Site” aus und bestätige. Im nächsten Schritt legst du entweder die IP oder die Domain fest, von der Postfix E-Mails versenden soll.

Passe anschließend die Config Datei von Postfix an und lege fest von welchen Domains E-Mails gesendet werden sollen. Achte darauf, dass alle hier festgelegten Domains pingbar sein müssen und die IP korrekt aufgelöst wird. Wie du einen Hostnamen festlegst oder einen FGDN festlegst, zeige ich dir in diesem Artikel.

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.

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 Magento SSL verschlüsseln mit Let's Encrypt auf Ubuntu?

×

Entwickler?

Dann einfach hier für unsere Tutorial-Updates anmelden.
Keine Sorge: Wir spammen dich nicht zu :)