Zum Hauptinhalt springen

VPS: GitLab auf Linux installieren

Diese Anleitung wurde mit den folgenden Produkten erstellt:

(Details können je nach Produkten verschiedener Anbieter variieren, aber die Hauptkonzepte bleiben gleich)

Einführung

GitLab ist eine umfassende DevOps-Plattform, die Teams ermöglicht, gemeinsam am Code zu arbeiten, Workflows zu automatisieren und den gesamten Softwareentwicklungszyklus effizient zu verwalten. In dieser Anleitung wird erklärt, wie du GitLab auf einem Linux-Server installierst.

Vorbereitung

Die folgenden Anforderungen werden vom offiziellen GitLab Team empfohlen. Es ist sehr ratsam, diese Voraussetzungen einzuhalten, um spätere Probleme und Unannehmlichkeiten zu vermeiden.

Hardware

KomponentenMinimumEmpfohlen
CPU2x 2 GHz4x 2,6+ GHz
RAM4 GB8 GB
Speicher10 GB50+ GB
Bandbreite100 Mbit/s (Up & Down)100 Mbit/s (Up & Down)

Software

PlattformOptionen
BetriebssystemUbuntu (20.04, 22.04, 24.04), Debian (10, 11, 12), OpenSUSE (15.5)
DatenbankPostgreSQL 14.9+
WebserverNGINX (mit GitLab gebündelt), Puma 6.4.2+
SonstigesRedis 7.x+, Sidekiq 7.3.2+, Prometheus 2.54.1+
Info

Für die genauesten und aktuellsten Spezifikationen schaue bitte in die offizielle Hardware Requirements Dokumentation von GitLab.

Um GitLab auf deinem Linux-Server zu installieren, musst du dich über einen SSH-Client verbinden. Schau dir dazu unsere Erstzugriff (SSH) Anleitung an, um mehr zu erfahren.

Sobald die Verbindung steht, kannst du die notwendigen Pakete installieren, die für die eigentliche GitLab-Installation benötigt werden.

Schritt 1: Abhängigkeiten installieren

Zuerst musst du einige Abhängigkeiten installieren, damit der GitLab-Installer läuft. Nutze die folgenden Befehle, um die erforderlichen Pakete auf deinem Linux-Server zu installieren.

Aktualisiere die Paketliste auf die neueste Version und installiere das OpenSSH-Server-Paket sowie die benötigten Voraussetzungen mit folgendem Befehl. So wird dein Webinterface für GitLab gehostet.

sudo apt update
sudo apt-get install -y curl openssh-server ca-certificates tzdata perl

Optional kannst du Postfix (SMTP-Server) installieren, wenn du E-Mail-Benachrichtigungen über GitLab versenden möchtest.

Falls du E-Mail-Benachrichtigungen nutzen willst, installiere Postfix mit:

sudo apt-get install -y postfix
Info

Während der Postfix-Installation kann eine Konfiguration erscheinen. Wähle hier 'Internet Site' und bestätige mit Enter. Gib als 'mail name' die externe DNS deines Linux-Servers ein und bestätige mit Enter. Falls weitere Bildschirme erscheinen, bestätige jeweils mit Enter, um die Standardwerte zu übernehmen.

Wenn du eine andere Lösung für den E-Mail-Versand nutzen möchtest, überspringe diesen Schritt und konfiguriere einen externen SMTP-Server nach der GitLab-Installation anhand der offiziellen Anleitung.

Schritt 2: GitLab installieren

Nachdem alle Abhängigkeiten installiert sind, kannst du GitLab installieren.

In dieser Anleitung installieren wir GitLab direkt aus den offiziellen Paket-Repositories.

Das folgende Skript fügt die GitLab-Repositories zum apt-Paketmanager hinzu:

curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ee/script.deb.sh | sudo bash

Danach kannst du das Paket gitlab-ee installieren:

sudo apt-get install -y gitlab-ee

Nach Abschluss dieses Prozesses sollte GitLab auf deinem Linux-Server einsatzbereit sein. Im nächsten Abschnitt konfigurierst du wichtige Einstellungen, damit der Server voll funktionsfähig ist.

Schritt 3: GitLab konfigurieren

Damit alles funktioniert, musst du einige Änderungen an der Konfigurationsdatei vornehmen. Öffne die GitLab-Konfigurationsdatei mit deinem bevorzugten Texteditor. Wir nutzen hier als Beispiel den vorinstallierten nano Editor.

sudo nano /etc/gitlab/gitlab.rb

Suche die Zeile external_url und trage entweder deine Domain oder die IP-Adresse deines Linux-Servers ein, falls du keine Domain für GitLab hast.

## GitLab URL
##! URL, unter der GitLab erreichbar sein wird.
##! Für mehr Details zur Konfiguration von external_url siehe:
##! https://docs.gitlab.com/omnibus/settings/configuration.html#configuring-the-external-url-for-gitlab
##!
##! Hinweis: Während Installation/Updates wird der Wert der Umgebungsvariable
##! EXTERNAL_URL verwendet, um diesen Wert zu setzen/ersetzen.
##! Bei AWS EC2 Instanzen wird versucht, den öffentlichen Hostnamen/IP
##! von AWS abzurufen. Mehr Infos:
##! https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instancedata-data-retrieval.html
external_url 'http`s`://`Deine Domain / IPv4-Adresse deines Linux Servers`'

Wir empfehlen außerdem, deine E-Mail in der Zeile letsencrypt['contact_emails'] einzutragen. So kann Let's Encrypt dich über automatische und kostenlose SSL-Zertifikate informieren und kontaktieren.

Hinweis

Für ein kostenloses SSL-Zertifikat von Let's Encrypt benötigst du eine Domain. Ein Zertifikat kann nicht direkt für eine IP-Adresse ausgestellt werden.

################################################################################
# Let's Encrypt Integration
################################################################################
# letsencrypt['enable'] = nil
# letsencrypt['contact_emails'] = [`Deine E-Mail hier`] # Das sollte ein Array mit E-Mail-Adressen sein
# letsencrypt['group'] = 'root'
# letsencrypt['key_size'] = 2048
# letsencrypt['owner'] = 'root'
# letsencrypt['wwwroot'] = '/var/opt/gitlab/nginx/www'
# Siehe https://docs.gitlab.com/omnibus/settings/ssl/index.html#renew-the-certificates-automatically für mehr Infos zu diesen Einstellungen
# letsencrypt['auto_renew'] = true
# letsencrypt['auto_renew_hour'] = 0
# letsencrypt['auto_renew_minute'] = nil # Sollte eine Zahl oder Cron-Ausdruck sein, falls angegeben.
# letsencrypt['auto_renew_day_of_month'] = "*/4"
# letsencrypt['auto_renew_log_directory'] = '/var/log/gitlab/lets-encrypt'
# letsencrypt['alt_names'] = []
Tipp

Du kannst CTRL+W drücken, um nach letsencrypt['contact_emails'] zu suchen und Enter drücken, damit du nicht die ganze Datei manuell durchsuchen musst.

Wenn du fertig bist, drücke CTRL+X, dann Y und Enter, um die Änderungen zu speichern.

Führe abschließend folgenden Befehl aus, um GitLab mit den neuen Einstellungen neu zu konfigurieren:

sudo gitlab-ctl reconfigure

Dieser Vorgang kann einige Zeit dauern, da GitLab mit den aktualisierten Konfigurationsdaten initialisiert wird. Falls eine Domain verwendet wurde, werden auch die SSL-Zertifikate automatisch ausgestellt.

Schritt 4: Zugriff auf das Webinterface

Nach der Initialisierung sollte der Server nun über einen Webbrowser erreichbar sein. Rufe deine Seite auf, indem du deine Domain oder IP-Adresse eingibst:

https://[deine_domain] ODER http://[deine_ip_adresse]

Beim ersten Aufruf des Webinterfaces wirst du mit einer Login-Seite begrüßt.

Für den ersten Login benötigst du Admin-Zugang. Melde dich als root Benutzer an.

Das Passwort findest du in einer Datei auf deinem Linux-Server. Öffne die Datei mit folgendem Befehl und suche das Feld Password:

sudo nano /etc/gitlab/initial_root_password
# WARNUNG: Dieser Wert ist nur gültig unter folgenden Bedingungen

# 1. Wenn er manuell gesetzt wurde (entweder über die Umgebungsvariable `GITLAB_ROOT_PASSWORD` oder über die Einstellung `gitlab_rails['initial_root_password']` in `gitlab.rb` vor der ersten Datenbankbefüllung).

# 2. Das Passwort wurde nicht manuell geändert, weder über UI noch Kommandozeile.

#

# Falls das hier angezeigte Passwort nicht funktioniert, musst du das Admin-Passwort zurücksetzen: https://docs.gitlab.com/ee/security/reset_user_password.html#reset-your-root-password.

Password: `[DEIN_PASSWORT_HIER]`

# HINWEIS: Diese Datei wird beim ersten Reconfigure-Lauf nach 24 Stunden automatisch gelöscht.

Gib Benutzername und Passwort auf der Login-Seite ein, um dein GitLab-Dashboard zum ersten Mal zu betreten. Du solltest jetzt Zugriff auf dein GitLab-Panel auf deinem eigenen Linux-Server haben.

Wir empfehlen dringend, einen neuen Benutzer anzulegen und/oder das Passwort für den root Benutzer zu ändern. Das kannst du über Admin unten links und dann Übersicht -> Benutzer machen. Dort kannst du alle Nutzer deiner GitLab-Instanz verwalten.

Optional: Firewall mit ufw einrichten

Diesen Schritt kannst du überspringen, wenn du keine Firewall konfigurieren möchtest oder z.B. bereits firewalld auf OpenSUSE nutzt. Stelle sicher, dass die Ports 80/443 und 22 freigegeben sind.

ufw installieren

Falls ufw bereits installiert ist, kannst du diesen Schritt überspringen.

sudo apt-get install -y ufw

Benötigte Ports freigeben

sudo ufw allow http
sudo ufw allow https
sudo ufw allow OpenSSH

Firewall aktivieren

Warnung

Standardmäßig blockiert ufw dann alle anderen Ports außer den freigegebenen. Stelle sicher, dass deine Whitelist korrekt eingerichtet ist, bevor du diesen Befehl ausführst.

Aktiviere die Firewall mit:

sudo ufw enable

Fazit

Glückwunsch, du hast GitLab erfolgreich installiert! Falls du weitere Fragen oder Probleme hast, steht dir unser Support-Team täglich zur Verfügung und hilft dir gerne weiter!

Wenn du weitere Einstellungen vornehmen möchtest, empfehlen wir dir, die offizielle GitLab-Dokumentation für die nächsten Schritte zu lesen.