Einführung
GitLab ist eine Open-Source-Anwendung, die primär zum Hosten von Git-Repositories mit zusätzlichen Entwicklungsfunktionen wie Issue-Tracking dient. Sie ist für den Betrieb mit eigener Infrastruktur konzipiert und bietet somit die Flexibilität, sie als internes Repository für Ihr Entwicklungsteam, als öffentliche Kommunikationsplattform für Benutzer oder als Plattform für Mitwirkende zum Hosten ihrer eigenen Projekte einzusetzen.
Das GitLab-Projekt ermöglicht es Ihnen, mithilfe eines Installationsmechanismus mindestens eine GitLab-Instanz auf Ihrer Hardware zu erstellen. Diese Anleitung zeigt Ihnen, wie Sie die GitLab Community Edition auf einem Ubuntu-Server installieren und konfigurieren.
Voraussetzungen
- Ein Server, auf dem Ubuntu läuft, mit einem Nicht-Root-Benutzer mit entsprechenden Berechtigungen.
sudoUnd eine aktive Firewall. - 4 Kerne für Ihre CPU
- 4 GB RAM für den Arbeitsspeicher
- Ein Domainname, der auf Ihren Server verweist
Schritt 1 – Abhängigkeiten installieren
Vor der Installation von GitLab ist es wichtig, die Software zu installieren, die während der Installation und im laufenden Betrieb benötigt wird. Die erforderliche Software kann aus den Standard-Paketquellen von Ubuntu installiert werden.
Aktualisieren Sie zunächst die lokale Paketliste:
sudo apt updateInstallieren Sie anschließend die Abhängigkeiten mit folgendem Befehl:
sudo apt install ca-certificates curl openssh-server postfix tzdata perlSie haben wahrscheinlich bereits einen Teil dieser Software installiert. Um Postfix zu installieren, wählen Sie bei Aufforderung „Internet-Site“ aus. Geben Sie auf der nächsten Seite den Domänennamen Ihres Servers ein, um die E-Mail-Kommunikation des Systems zu konfigurieren.
Nachdem Sie die Abhängigkeiten installiert haben, können Sie GitLab installieren.
Schritt 2 – GitLab installieren
Trotz der Abhängigkeiten können Sie GitLab installieren. Dieser Prozess verwendet ein Installationsskript, um Ihr System mit den GitLab-Repositories zu konfigurieren.
Zuerst wechseln Sie in den Ordner /tmp:
cd /tmpLaden Sie anschließend das Installationsskript herunter:
curl -LO https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.shSie können das heruntergeladene Skript gerne durchsehen, um sicherzustellen, dass Sie mit seiner Funktionsweise vertraut sind. Eine gehostete Version des Skripts finden Sie auch in der GitLab-Installationsanleitung:
less /tmp/script.deb.shSobald Sie sich vergewissert haben, dass das Skript sicher ist, führen Sie das Installationsprogramm aus:
sudo bash /tmp/script.deb.shDas Skript konfiguriert Ihren Server für die Verwendung der von GitLab verwalteten Repositories. Dadurch können Sie GitLab mit denselben Paketverwaltungstools verwalten, die Sie auch für andere Pakete auf Ihrem System verwenden. Nach Abschluss der Konfiguration können Sie die eigentliche GitLab-Anwendung mit apt installieren.
sudo apt install gitlab-ceDadurch werden die notwendigen Komponenten auf Ihrem System installiert, was einige Zeit in Anspruch nehmen kann.
Schritt 3 – Firewall-Regeln einrichten
Bevor Sie GitLab konfigurieren, müssen Sie sicherstellen, dass Ihre Firewall-Regeln ausreichend freigegeben sind, um Webverkehr zuzulassen. Wenn Sie der in den Voraussetzungen verlinkten Anleitung gefolgt sind, ist die ufw-Firewall bereits aktiviert.
Den aktuellen Status Ihrer aktiven Firewall können Sie mit folgendem Befehl anzeigen:
sudo ufw statusOutput
Status: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)Die aktuellen Regeln erlauben SSH-Verkehr, der Zugriff auf andere Dienste ist jedoch eingeschränkt. Da GitLab eine Webanwendung ist, müssen Sie HTTP-Zugriff zulassen. Da Sie die Möglichkeit von GitLab nutzen werden, ein kostenloses TLS/SSL-Zertifikat von Let's Encrypt anzufordern und zu aktivieren, erlauben Sie bitte auch HTTPS-Zugriff.
Das Port-Mapping-Protokoll für HTTP und HTTPS ist in der Datei `/etc/services` verfügbar, sodass Sie den entsprechenden Datenverkehr anhand seines Namens zulassen können. Falls Sie OpenSSH-Datenverkehr noch nicht aktiviert haben, müssen Sie dies nun tun.
sudo ufw allow http
sudo ufw allow https
sudo ufw allow OpenSSHSie können den ufw-Status erneut überprüfen, um sicherzustellen, dass Sie Zugriff auf mindestens diese beiden Dienste haben:
sudo ufw statusOutput
Status: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
80/tcp ALLOW Anywhere
443/tcp ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
80/tcp (v6) ALLOW Anywhere (v6)
443/tcp (v6) ALLOW Anywhere (v6)
Diese Ausgabe zeigt, dass die GitLab-Weboberfläche nach der Konfiguration der Anwendung nun zugänglich ist.
Schritt 4 – Bearbeiten Sie die GitLab-Konfigurationsdatei
Bevor Sie die Anwendung verwenden können, müssen Sie die Konfigurationsdatei aktualisieren und einen Rekonfigurationsbefehl ausführen. Öffnen Sie zunächst die GitLab-Konfigurationsdatei mit Ihrem bevorzugten Texteditor. In diesem Beispiel wird nano verwendet:
sudo nano /etc/gitlab/gitlab.rbSuchen Sie die Konfigurationszeile external_url. Aktualisieren Sie diese, sodass sie Ihrer Domain entspricht, und ändern Sie unbedingt http in https, um Benutzer automatisch auf die durch das Let's Encrypt-Zertifikat geschützte Website weiterzuleiten.
...
## GitLab URL
##! URL on which GitLab will be reachable.
##! For more details on configuring external_url see:
##! https://docs.gitlab.com/omnibus/settings/configuration.html#configuring-the-external-url-for-gitlab
##!
##! Note: During installation/upgrades, the value of the environment variable
##! EXTERNAL_URL will be used to populate/replace this value.
##! On AWS EC2 instances, we also attempt to fetch the public hostname/IP
##! address from AWS. For more details, see:
##! https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instancedata-data-retrieval.html
external_url 'https://your_domain'
...Suchen Sie als Nächstes die Einstellung `letsencrypt['contact_emails']`. Wenn Sie Nano verwenden, können Sie die Suchabfrage mit Strg+W aktivieren. Geben Sie `letsencrypt['contact_emails']` in die Befehlszeile ein und drücken Sie die Eingabetaste. Diese Einstellung definiert eine Liste von E-Mail-Adressen, die das Let's Encrypt-Projekt verwenden kann, um Sie bei Problemen mit Ihrer Domain zu kontaktieren. Es wird empfohlen, die Kommentarzeichen zu entfernen und die Adressen einzutragen, um über eventuell auftretende Probleme benachrichtigt zu werden.
letsencrypt['contact_emails'] = ['[email protected]']
Nachdem Sie Ihre Änderungen vorgenommen haben, speichern und schließen Sie die Datei. Wenn Sie nano verwenden, können Sie dies durch Drücken der entsprechenden Taste tun. STRG+X, Dann Y Und dann EINGEBEN Mach es.
Führen Sie folgenden Befehl aus, um GitLab neu zu konfigurieren:
sudo gitlab-ctl reconfigureDadurch wird GitLab mithilfe der verfügbaren Serverinformationen initialisiert. Dieser Vorgang ist vollautomatisch, sodass Sie keine Anfragen beantworten müssen. Im Rahmen dieses Prozesses wird außerdem ein Let's Encrypt-Zertifikat für Ihre Domain konfiguriert.
Schritt 5 – Führen Sie die Erstkonfiguration über die Weboberfläche durch.
Wenn GitLab läuft, können Sie über die Weboberfläche eine erste Konfiguration der Anwendung vornehmen.
Melden Sie sich zum ersten Mal an
Rufen Sie die Domain Ihres GitLab-Servers in Ihrem Webbrowser auf:
https://your_domainBei Ihrem ersten Besuch wird Ihnen eine Anmeldeseite angezeigt:
GitLab generiert für Sie ein sicheres Anfangspasswort. Dieses wird in einem Ordner gespeichert, auf den Sie als administrativer sudo-Benutzer zugreifen können:
sudo nano /etc/gitlab/initial_root_password# WARNING: This value is valid only in the following conditions
# 1. If provided manually (either via `GITLAB_ROOT_PASSWORD` environment variable or via `gitlab_rails['initial_root_password']` setting in `gitlab.rb`, it was provided before database was seeded for the firs$
# 2. Password hasn't been changed manually, either via UI or via command line.
#
# If the password shown here doesn't work, you must reset the admin password following https://docs.gitlab.com/ee/security/reset_user_password.html#reset-your-root-password.
Password: YOUR_PASSWORD
# NOTE: This file will be automatically deleted in the first reconfigure run after 24 hours.Geben Sie auf der Anmeldeseite Folgendes ein:
- Benutzername: root
- Passwort: [Passwort in /etc/gitlab/initial_root_password aufgeführt]
Geben Sie diese Werte in die Felder ein und klicken Sie auf die Schaltfläche „Anmelden“. Sie werden in der App angemeldet und auf eine Landingpage weitergeleitet, auf der Sie aufgefordert werden, Projekte hinzuzufügen:
Jetzt können Sie Ihre GitLab-Instanz feinabstimmen.
Aktualisieren Sie Ihr Passwort
Eines der ersten Dinge, die Sie nach dem Einloggen tun sollten, ist Ihr Passwort zu ändern. Klicken Sie dazu auf das Symbol in der oberen rechten Ecke der Navigationsleiste und wählen Sie „Profil bearbeiten“.
Anschließend gelangen Sie zur Seite „Benutzereinstellungen“. Wählen Sie in der linken Navigationsleiste „Passwort“ aus, um Ihr generiertes GitLab-Passwort in ein sicheres Passwort zu ändern. Klicken Sie dann auf die Schaltfläche „Passwort speichern“, sobald die Aktualisierung abgeschlossen ist.
Sie werden zur Anmeldeseite zurückgeleitet und erhalten eine Benachrichtigung, dass Ihr Passwort geändert wurde. Geben Sie Ihr neues Passwort ein, um sich wieder bei Ihrer GitLab-Instanz anzumelden:

Passen Sie Ihre Profileinstellungen an
GitLab wählt einige sinnvolle Standardeinstellungen, die jedoch in der Regel nicht optimal sind, sobald man die Software verwendet. Um die erforderlichen Änderungen vorzunehmen, klicken Sie auf das Benutzersymbol in der oberen rechten Ecke der Navigationsleiste und wählen Sie „Profil bearbeiten“.
Sie können den Namen und die E-Mail-Adresse von «Administrator» und «[email protected]» durch spezifischere Angaben ersetzen. Der von Ihnen gewählte Name wird anderen Benutzern angezeigt, während die E-Mail-Adresse für das Standard-Avatar, Benachrichtigungen, Git-Aktionen in der Benutzeroberfläche und mehr verwendet wird.
Sobald die Aktualisierungen abgeschlossen sind, klicken Sie unten auf die Schaltfläche „Profileinstellungen aktualisieren“. Sie werden aufgefordert, Ihr Passwort einzugeben, um die Änderungen zu bestätigen. Eine Bestätigungs-E-Mail wird an die von Ihnen angegebene Adresse gesendet. Folgen Sie den Anweisungen in der E-Mail, um Ihr Konto zu verifizieren und es mit GitLab nutzen zu können.
Kontonamen ändern
Wählen Sie anschließend in der linken Navigationsleiste „Konto“ aus:
Hier können Sie die Zwei-Faktor-Authentifizierung aktivieren und Ihren Benutzernamen ändern. Standardmäßig heißt das erste Administratorkonto „root“. Da dies ein bekannter Kontoname ist, empfiehlt es sich, ihn zu ändern. Ihre Administratorrechte bleiben erhalten. Es ändert sich lediglich der Name. Ersetzen Sie „root“ durch Ihren gewünschten Benutzernamen:
Klicken Sie auf die Schaltfläche „Benutzernamen aktualisieren“, um die Änderung vorzunehmen. Anschließend werden Sie aufgefordert, die Änderung zu bestätigen. Denken Sie daran, beim nächsten Anmelden bei GitLab Ihren neuen Benutzernamen zu verwenden.
Hinzufügen eines SSH-Schlüssels zu Ihrem Konto
Sie können SSH-Schlüssel mit Git aktivieren, um mit GitLab-Projekten zu interagieren. Dazu müssen Sie Ihren öffentlichen SSH-Schlüssel zu Ihrem GitLab-Konto hinzufügen.
Wählen Sie in der linken Navigationsleiste „SSH-Schlüssel“ aus:
Wenn Sie bereits ein SSH-Schlüsselpaar auf Ihrem lokalen Computer erstellt haben, können Sie den öffentlichen Schlüssel anzeigen, indem Sie Folgendes eingeben:
cat ~/.ssh/id_rsa.pubOutput
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDMuyMtMl6aWwqBCvQx7YXvZd7bCFVDsyln3yh5/8Pu23LW88VXfJgsBvhZZ9W0rPBGYyzE/TDzwwITvVQcKrwQrvQlYxTVbqZQDlmsC41HnwDfGFXg+QouZemQ2YgMeHfBzy+w26/gg480nC2PPNd0OG79+e7gFVrTL79JA/MyePBugvYqOAbl30h7M1a7EHP3IV5DQUQg4YUq49v4d3AvM0aia4EUowJs0P/j83nsZt8yiE2JEYR03kDgT/qziPK7LnVFqpFDSPC3MR3b8B354E9Af4C/JHgvglv2tsxOyvKupyZonbyr68CqSorO2rAwY/jWFEiArIaVuDiR9YM5 sammy@mydesktopKopieren Sie diesen Text und fügen Sie ihn in das Textfeld „Schlüssel“ in Ihrer GitLab-Instanz ein. Sollten Sie stattdessen eine andere Meldung erhalten, haben Sie noch kein SSH-Schlüsselpaar auf Ihrem Rechner konfiguriert:
Output
cat: /home/sammy/.ssh/id_rsa.pub: No such file or directoryIn diesem Fall können Sie ein SSH-Schlüsselpaar generieren, indem Sie folgenden Befehl eingeben:
[environment local]
ssh-keygenÜbernehmen Sie die Standardeinstellungen und geben Sie optional ein Passwort an, um den Schlüssel lokal zu schützen:
Output
[environment local]
Generating public/private rsa key pair.
Enter file in which to save the key (/home/sammy/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/sammy/.ssh/id_rsa.
Your public key has been saved in /home/sammy/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:I8v5/M5xOicZRZq/XRcSBNxTQV2BZszjlWaIHi5chc0 [email protected]
The key's randomart image is:
+---[RSA 2048]----+
| ..%o==B|
| *.E =.|
| . ++= B |
| ooo.o . |
| . S .o . .|
| . + .. . o|
| + .o.o ..|
| o .++o . |
| oo=+ |
+----[SHA256]-----+Sobald Sie diesen haben, können Sie Ihren öffentlichen Schlüssel wie im vorherigen Beispiel anzeigen lassen, indem Sie folgenden Befehl eingeben:
cat ~/.ssh/id_rsa.pubOutput
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDMuyMtMl6aWwqBCvQx7YXvZd7bCFVDsyln3yh5/8Pu23LW88VXfJgsBvhZZ9W0rPBGYyzE/TDzwwITvVQcKrwQrvQlYxTVbqZQDlmsC41HnwDfGFXg+QouZemQ2YgMeHfBzy+w26/gg480nC2PPNd0OG79+e7gFVrTL79JA/MyePBugvYqOAbl30h7M1a7EHP3IV5DQUQg4YUq49v4d3AvM0aia4EUowJs0P/j83nsZt8yiE2JEYR03kDgT/qziPK7LnVFqpFDSPC3MR3b8B354E9Af4C/JHgvglv2tsxOyvKupyZonbyr68CqSorO2rAwY/jWFEiArIaVuDiR9YM5 sammy@mydesktopKopieren Sie diesen Textblock und fügen Sie ihn in das Textfeld „Schlüssel“ Ihrer GitLab-Instanz ein. Geben Sie ihm einen aussagekräftigen Titel und klicken Sie auf die Schaltfläche „Schlüssel hinzufügen“.
Sie können Ihre GitLab-Projekte und -Repositories jetzt von Ihrem lokalen Rechner aus verwalten, ohne Ihre GitLab-Kontodaten angeben zu müssen.
Schritt 6 – Öffentliche Registrierungen einschränken oder deaktivieren
Mit Ihrer aktuellen Konfiguration kann sich jeder, der Ihre GitLab-Beispielseite besucht, ein Konto erstellen. Wenn Sie ein öffentliches Projekt hosten möchten, ist dies möglicherweise das Richtige für Sie. Oftmals ist jedoch eine eingeschränktere Konfiguration wünschenswert.
Um zu beginnen, gehen Sie zum Admin-Bereich, indem Sie auf das Hamburger-Menü in der oberen Navigationsleiste klicken und im Dropdown-Menü „Admin“ auswählen:
Wählen Sie in der linken Navigationsleiste „Einstellungen“ aus:
Sie werden zu den globalen Einstellungen der GitLab-Instanz weitergeleitet. Hier können Sie verschiedene Einstellungen konfigurieren, die sich auf die Registrierung neuer Benutzer und deren Zugriffsrechte auswirken.
Registrierungen deaktivieren
Wenn Sie Registrierungen vollständig deaktivieren möchten, gehen Sie zum Abschnitt Registrierungsbeschränkungen und klicken Sie auf Erweitern, um die Optionen anzuzeigen.
Deaktivieren Sie anschließend die Option „Registrierung aktiviert“:
Vergessen Sie nicht, nach Ihren Änderungen auf „Änderungen speichern“ zu klicken. Der Anmeldebereich wurde von der GitLab-Startseite entfernt.
Registrierung nach Domäne einschränken
Wenn Sie GitLab im Rahmen einer Organisation nutzen, die E-Mail-Adressen mit einer Domain verknüpft, können Sie Anmeldungen nach Domain einschränken, anstatt sie komplett zu deaktivieren. Aktivieren Sie im Abschnitt „Anmeldebeschränkungen“ das Kontrollkästchen „Bestätigungs-E-Mail nach Anmeldung senden“. Dadurch können sich Benutzer erst anmelden, nachdem sie ihre E-Mail-Adresse bestätigt haben.
Fügen Sie als Nächstes Ihre Domain(s) zur Whitelist der zu registrierenden Domains hinzu, eine Domain pro Zeile. Sie können das Sternchen “*” verwenden, um Platzhalterdomains anzugeben:
Klicken Sie anschließend auf die Schaltfläche „Änderungen speichern“. Der Anmeldebereich wurde von der GitLab-Startseite entfernt.
Projekterstellung einschränken
Standardmäßig können neue Benutzer bis zu 10 Projekte erstellen. Wenn Sie neuen Benutzern von außerhalb erlauben möchten, Projekte anzusehen und mitzuwirken, aber deren Zugriff auf die Erstellung neuer Projekte einschränken möchten, können Sie dies im Bereich „Kontoeinstellungen und -beschränkungen“ festlegen.
Intern können Sie das Standardprojektlimit auf 0 ändern, um zu verhindern, dass neue Benutzer Projekte erstellen:
Neue Benutzer können weiterhin manuell zu Projekten hinzugefügt werden und auf interne oder öffentliche Projekte anderer Benutzer zugreifen. Nach dem Update nicht vergessen, auf „Änderungen speichern“ zu klicken. Neue Benutzer können nun Konten erstellen, aber keine Projekte anlegen.
Erneuerung von Let's Encrypt-Zertifikaten
Standardmäßig erneuert GitLab die Let's Encrypt-Zertifikate alle vier Tage nach Mitternacht, und zwar minutengenau basierend auf Ihrer externen URL. Diese Einstellung können Sie in der Datei `/etc/gitlab/gitlab.rb` ändern.
Wenn Sie beispielsweise möchten, dass die Lizenz alle sieben Tage um 12:30 Uhr verlängert wird, können Sie dies entsprechend konfigurieren. Öffnen Sie dazu zunächst die Konfigurationsdatei:
sudo nano /etc/gitlab/gitlab.rbSuchen Sie anschließend die folgenden Zeilen in der Datei, löschen Sie # und ersetzen Sie sie durch Folgendes:
...
################################################################################
# Let's Encrypt integration
################################################################################
# letsencrypt['enable'] = nil
letsencrypt['contact_emails'] = ['sammy@digitalocean'] # This should be an array of email addresses to add as contacts
# letsencrypt['group'] = 'root'
# letsencrypt['key_size'] = 2048
# letsencrypt['owner'] = 'root'
# letsencrypt['wwwroot'] = '/var/opt/gitlab/nginx/www'
# See http://docs.gitlab.com/omnibus/settings/ssl.html#automatic-renewal for more on these settings
letsencrypt['auto_renew'] = true
letsencrypt['auto_renew_hour'] = "12"
letsencrypt['auto_renew_minute'] = "30"
letsencrypt['auto_renew_day_of_month'] = "*/7"
...Sie können die automatische Verlängerung auch deaktivieren, indem Sie letsencrypt['auto_renew'] auf false setzen:
...
letsencrypt['auto_renew'] = false
...Dank der automatischen Verlängerung müssen Sie sich keine Sorgen um Serviceunterbrechungen machen.
Ergebnis
Sie haben nun eine GitLab-Instanz auf Ihrem Server gehostet. Sie können jetzt Projekte importieren oder neue erstellen und die passenden Zugriffsrechte für Ihr Team konfigurieren. GitLab erweitert seine Plattform ständig um neue Funktionen und Updates. Besuchen Sie daher regelmäßig die Projekt-Homepage, um über wichtige Entwicklungen und Ankündigungen informiert zu bleiben.























