Technologieführer

GitLab CE auf Ubuntu 16.04 installieren — Schritt für Schritt

7 min read Systemadministration Aktualisiert 17 Oct 2025
GitLab CE auf Ubuntu 16.04 installieren
GitLab CE auf Ubuntu 16.04 installieren

In dieser Anleitung installieren Sie GitLab Community Edition (CE) auf einem Ubuntu 16.04 Server mit dem Omnibus-Paket. Sie erfahren, wie man benötigte Pakete installiert, HTTPS mit Let’s Encrypt konfiguriert, UFW einrichtet, die Grundkonfiguration vornimmt und typische Post-Installationsschritte durchführt.

Überblick

GitLab ist ein webbasiertes, quelloffenes Git-Repository-Management basierend auf Ruby on Rails, entwickelt von GitLab Inc. Es ermöglicht Teamarbeit am Code, Tracking von Issues, Code-Reviews, CI/CD-Pipelines und Projektverwaltung. GitLab kann mehrere Projekte hosten und ist in mehreren Editionen verfügbar:

  • GitLab CE (Community Edition) – selbst gehostet, kostenlos, Community-Support.
  • GitLab EE (Enterprise Edition) – selbst gehostet, kostenpflichtig, zusätzliche Funktionen.
  • GitLab.com – gehosteter SaaS-Dienst, Basisfunktionen kostenlos.
  • GitLab.io – private Instanzen, verwaltet von GitLab Inc.

Diese Anleitung zeigt die Installation von GitLab CE auf Ubuntu 16.04 Xenial Xerus mit dem offiziellen Omnibus-Paket.

Wesentliche Schritte dieser Anleitung:

  1. Pakete installieren
  2. GitLab installieren
  3. Haupt-URL konfigurieren
  4. SSL-Zertifikat mit Let’s Encrypt sowie DHPARAM erstellen
  5. Nginx für HTTPS konfigurieren
  6. UFW-Firewall konfigurieren
  7. Post-Installation konfigurieren
  8. Tests und Erstbereitstellung

Wichtige Voraussetzungen

  • Ubuntu 16.04 Server – 64 Bit
  • Mindestens 2 GB RAM
  • Root-Berechtigungen

Schritt 1 – Benötigte Ubuntu-Pakete installieren

Als erstes installieren Sie die Pakete, die für die GitLab-Installation benötigt werden. Melden Sie sich als Root am Server an und aktualisieren Sie die Paketquellen.

ssh root@GitLabServer
apt-get update

Jetzt installieren Sie curl (für das Hinzufügen des GitLab-Repositories), openssh-server, ca-certificates und postfix für E-Mail/SMTP.

sudo apt install curl openssh-server ca-certificates postfix

Während der Postfix-Installation werden Sie nach einer Konfiguration gefragt. Wählen Sie “Internet Site” und geben Sie anschließend den Domain-Namen des Servers ein, der beim Versand von E-Mails verwendet werden soll.

Postfix-Konfiguration während Installation

Postfix Hostname-Eingabe während Installation

Hinweis: Postfix ist eine gängige Wahl; in Umgebungen mit eigenem Mail-Relay können Sie auch “No configuration” wählen und später einen externen SMTP-Server konfigurieren.

Schritt 2 – GitLab installieren

Omnibus-Pakete installieren alle nötigen Komponenten (Nginx, PostgreSQL, Redis, GitLab Rails-App u. a.) automatisch.

Fügen Sie zuerst das offizielle GitLab-Repository hinzu und führen Sie das Setup-Skript aus:

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

Hinzufügen des GitLab-Repositories

Installieren Sie anschließend GitLab CE:

sudo apt install gitlab-ce

Warten Sie, bis das Paket heruntergeladen und installiert wurde. Die Installation kann mehrere Minuten dauern.

Installation des GitLab-Pakets abgeschlossen

Schritt 3 – Haupt-URL konfigurieren

Legen Sie die URL fest, unter der GitLab erreichbar sein soll. Öffnen Sie die GitLab-Konfigurationsdatei im Verzeichnis /etc/gitlab.

cd /etc/gitlab
vim gitlab.rb

Suchen Sie die Zeile mit external_url und passen Sie die Domain an. Beispiel in der Ursprungsanleitung:

external_url 'http://gitlab.hakase-labs.co'

Ändern Sie http auf https, sobald Sie das SSL-Zertifikat eingerichtet haben. Speichern und schließen Sie die Datei.

TIPP: Verwenden Sie eine DNS-registrierte Domain oder einen A-Record, der auf die öffentliche IP-Adresse Ihres Servers zeigt.

Schritt 4 – SSL mit Let’s Encrypt und DHPARAM erstellen

Für die HTTPS-Verschlüsselung verwenden wir Let’s Encrypt (kostenlose Zertifikate). Installieren Sie das Tool certbot (in älteren Anleitungen hieß es letsencrypt).

sudo apt install letsencrypt -y

Erzeugen Sie ein Zertifikat für Ihre Domain:

letsencrypt certonly -d gitlab.hakase-labs.co

Geben Sie Ihre E-Mail-Adresse zur Benachrichtigung über Ablauf und wählen Sie die Nutzungsbedingungen.

Let’s Encrypt Zertifikat erzeugen

Let’s Encrypt Zustimmungsabfrage

Nach erfolgreicher Erstellung sind die Zertifikate unter /etc/letsencrypt/live// zu finden.

Als nächstes erstellen Sie das Verzeichnis für GitLabs SSL-Dateien und generieren dhparam für Perfect Forward Secrecy:

mkdir -p /etc/gitlab/ssl/
sudo openssl dhparam -out /etc/gitlab/ssl/dhparams.pem 2048

DHPARAM mit OpenSSL erzeugen

Setzen Sie strikte Rechte für die Zertifikatdateien:

chmod 600 /etc/gitlab/ssl/*

Hinweis: Das Generieren von dhparam (2048 Bit) kann einige Zeit in Anspruch nehmen. 2048 Bit ist ein guter Kompromiss zwischen Sicherheit und Rechenzeit.

Schritt 5 – Nginx HTTPS für GitLab aktivieren

Öffnen Sie wieder /etc/gitlab/gitlab.rb und stellen Sie sicher, dass external_url auf https zeigt:

external_url 'https://gitlab.hakase-labs.co'

Fügen Sie anschließend die SSL-Konfiguration für Nginx hinzu:

nginx['redirect_http_to_https'] = true
nginx['ssl_certificate'] = "/etc/letsencrypt/live/gitlab.hakase-labs.co/fullchain.pem"
nginx['ssl_certificate_key'] = "/etc/letsencrypt/live/gitlab.hakase-labs.co/privkey.pem"
nginx['ssl_dhparam'] = "/etc/gitlab/ssl/dhparams.pem"

Wichtig: Achten Sie auf korrekte Pfade und Anführungszeichen. Speichern Sie die Datei.

HTTPS und Redirect in GitLab aktivieren

Wenden Sie die Konfiguration an:

sudo gitlab-ctl reconfigure

Die Reconfigure-Prozedur konfiguriert und startet die Services. Überprüfen Sie die Ausgabe auf Fehler.

Anwenden der GitLab-Konfiguration abgeschlossen

Ergebnis: HTTPS ist aktiv.

Schritt 6 – UFW-Firewall konfigurieren

Aktivieren Sie UFW (falls nicht bereits aktiviert) und erlauben Sie SSH, HTTP und HTTPS:

ufw enable
ufw allow ssh
ufw allow http
ufw allow https

UFW-Regeln für HTTP/HTTPS setzen

Prüfen Sie den Status:

ufw status

UFW-Regeln prüfen

Wichtig: Vergewissern Sie sich, dass der SSH-Port offen und korrekt ist, bevor Sie UFW aktivieren, sonst verlieren Sie Ihre Verbindung.

Schritt 7 – GitLab Post-Installation und Grundkonfiguration

Öffnen Sie Ihren Browser und rufen Sie die konfigurierte Domain auf (z. B. https://gitlab.hakase-labs.co). Beim ersten Start müssen Sie das initiale Root-Passwort zurücksetzen.

Passwort für den Root-Account zurücksetzen

Melden Sie sich als Benutzer root an.

Login als root

Profil anpassen: Klicken Sie oben rechts auf Ihr Profil und wählen Sie Profileinstellungen. Ändern Sie Name, E-Mail und Benutzername.

Profil-Einstellungen öffnen

Profil-Daten bearbeiten

Benutzername ändern

SSH-Schlüssel hinzufügen: Erzeugen Sie lokal einen SSH-Schlüssel (falls noch nicht vorhanden) und fügen Sie den öffentlichen Schlüssel unter Ihrem Benutzermenü hinzu.

ssh-keygen

SSH-Key lokal erzeugen

SSH-Key in GitLab einfügen

Administrative Einstellungen: Als Administrator können Sie unter “Admin Area” -> “Settings” Account-Limits, Sign-up-Einschränkungen und andere Systemparameter konfigurieren.

Systemeinstellungen aufrufen

Limits und Sign-up-Einschränkungen konfigurieren

Empfehlung: Setzen Sie eine Domain-Whitelist für Registrierungen, aktivieren Sie Two-Factor Authentication (2FA) für Admins, und legen Sie Rate-Limits für Anmeldeversuche fest.

Schritt 8 – Tests und Erst-Commit

Erstellen Sie ein neues Projekt über die Weboberfläche (Plus-Symbol). Geben Sie Projektname, Beschreibung und Sichtbarkeit an und klicken Sie auf “Create project”.

Neues Projekt erstellen

Klonen Sie das Repository, fügen Sie eine README hinzu, committen und pushen Sie die Änderungen.

git config --global user.name "hakase"
git config --global user.email "[email protected]"

git clone https://gitlab.hakase-labs.co/hakase/howtoforge.git
cd howtoforge/
vim README.md

git add .
git commit -m 'Add README.md file by hakase-labs'
git push origin master

Erster Commit und Push erfolgreich

Prüfen Sie im Webinterface, ob die Datei sichtbar ist:

Repository zeigt README Datei

Damit ist GitLab CE auf Ubuntu 16.04 einsatzbereit.

Zusätzliche Empfehlungen und erweiterte Hinweise

Alternative Installationsansätze

  • Docker / Docker Compose: Sinnvoll für Isolation, einfache Backups und Portabilität, aber Netzwerk- und Performance-Feinabstimmung notwendig.
  • GitLab EE: Bei Bedarf an erweiterten Funktionen (z. B. Advanced LDAP-Integration, Support) ist die Enterprise Edition zu prüfen.
  • Paket-Manager zu Paket-Repository: In größeren Umgebungen bieten Management-Tools (Ansible, Puppet, Chef) automatisierte, reproduzierbare Deployments.

Wann Omnibus nicht optimal ist: Wenn Sie einzelne Komponenten (externe PostgreSQL, Redis, eigene Nginx-Proxy) betreiben wollen, sind manuelle Installation oder Container-Strategien besser.

Sicherheits-Hardening Checkliste

  • Erzwingen Sie HTTPS und automatische Redirects.
  • Aktivieren Sie Two-Factor Authentication (2FA) für alle Admin- und kritischen Konten.
  • Begrenzen Sie Admin-Zugänge per IP-Whitelist (z. B. über Firewall oder Nginx allow/deny).
  • Richten Sie regelmäßige Backups für /etc/gitlab, /var/opt/gitlab, /var/log/gitlab ein.
  • Verwenden Sie Fail2ban oder Login-Rate-Limiting, um Brute-Force zu verhindern.
  • Halten Sie das System und GitLab-Updates aktuell (Security-Releases zeitnah einspielen).
  • Beschränken Sie Dateiberechtigungen; private Schlüssel sollten chmod 600 haben.

Rolle-basierte Checklisten

DevOps / Administrator:

  • DNS-A-Record prüfen
  • Firewall (UFW) konfigurieren
  • Zertifikate erstellen/renew konfigurieren
  • GitLab-Backups planen und testen
  • Monitoring einrichten (CPU, RAM, Disk, GitLab-Health)

Developer:

  • SSH-Key erzeugen und hinzufügen
  • Git-Konfiguration setzen (user.name, user.email)
  • Projekt erstellen, klonen, push/pull testen

System-Operator:

  • Logs rotieren (logrotate)
  • Speicherplatzüberwachung aktivieren
  • Reconfig/Upgrade-Prozesse dokumentieren

Mini-Methodik für Post-Install

  1. Funktionstest: Webzugriff, HTTPS-Validität, Login als root
  2. Funktionstest: Repo anlegen, Klonen, Commit und Push
  3. Sicherheitstest: SSH-Schlüssel, 2FA, Firewall
  4. Backuptest: Backup erstellen und Wiederherstellung prüfen
  5. Monitoring: Alerts auf kritische Metriken konfigurieren

Schnellhilfe / Cheat Sheet Befehle

  • GitLab neu konfigurieren: sudo gitlab-ctl reconfigure
  • Dienste prüfen: sudo gitlab-ctl status
  • Logs einsehen: sudo gitlab-ctl tail
  • Backup erstellen: sudo gitlab-rake gitlab:backup:create
  • Backup wiederherstellen: sudo gitlab-rake gitlab:backup:restore

Testfälle und Abnahmekriterien

  • HTTPS ist aktiv und Zertifikat gültig
  • Git-Operationen (clone, push, pull) funktionieren über HTTP(S) und SSH
  • Admin kann Benutzer anlegen, Rechte verwalten und Projekte erstellen
  • Backups sind erstellt und erfolgreiche Wiederherstellung getestet

Fehlerfälle und Troubleshooting-Hinweise

  • SSL-Fehler nach Reconfigure: Prüfen Sie nginx[‘ssl_certificate’] Pfade und Dateiberechtigungen.
  • GitLab startet nicht: Logs mit sudo gitlab-ctl tail prüfen; häufige Ursachen sind fehlende Abhängigkeiten oder Portkonflikte.
  • E-Mail-Versand funktioniert nicht: Postfix Logs prüfen und SMTP-Konfiguration kontrollieren.
  • DNS nicht erreichbar: A-Record prüfen und DNS-Propagation abwarten.

Datenschutz und lokale rechtliche Hinweise

  • Bei Speicherung personenbezogener Daten (Benutzernamen, E-Mails) in GitLab ist die DSGVO/Privacy-Konformität sicherzustellen: Lösch- und Exportprozesse definieren.
  • Audit-Logs und Zugriffsprotokolle sind als personenbezogene Daten zu behandeln.

Kompatibilität und Migrationstipps

  • Wenn Sie von älteren GitLab-Versionen migrieren: Prüfen Sie die Release-Notes auf Breaking Changes.
  • Bei Upgrade auf neuere Ubuntu-Versionen (z. B. 18.04, 20.04) planen Sie Migration und Testumgebung ein.

Faktenbox

  • Unterstütztes OS in dieser Anleitung: Ubuntu 16.04 (Xenial Xerus)
  • Mindest-RAM: 2 GB
  • Default-Installationsmethode: Omnibus-Paket
  • Empfohlen: Externer DNS-Eintrag für Ihre GitLab-Domain

Referenzen und weiterführende Links

Zusammenfassung

  • GitLab CE lässt sich auf Ubuntu 16.04 mit dem Omnibus-Paket relativ einfach installieren.
  • Wichtig sind SSL (Let’s Encrypt), abgesicherte File-Permissions, UFW-Regeln und Post-Install-Checks wie SSH-Keys und Backups.
  • Für produktive Umgebungen empfehlen sich zusätzliche Maßnahmen wie 2FA, Monitoring, regelmäßige Backups und ein Update-/Upgrade-Plan.

Wichtig: Testen Sie Backups und Wiederherstellungen in einer Abnahmeumgebung, bevor Sie produktive Daten auf einer neuen Instanz ablegen.

Autor
Redaktion

Ähnliche Materialien

Podman auf Debian 11 installieren und nutzen
DevOps

Podman auf Debian 11 installieren und nutzen

Apt-Pinning: Kurze Einführung für Debian
Systemadministration

Apt-Pinning: Kurze Einführung für Debian

FSR 4 in jedem Spiel mit OptiScaler
Grafikkarten

FSR 4 in jedem Spiel mit OptiScaler

DansGuardian + Squid (NTLM) auf Debian Etch installieren
Netzwerk

DansGuardian + Squid (NTLM) auf Debian Etch installieren

App-Installationsfehler auf SD-Karte (Error -18) beheben
Android

App-Installationsfehler auf SD-Karte (Error -18) beheben

Netzwerkordner mit KNetAttach in KDE
Linux Netzwerk

Netzwerkordner mit KNetAttach in KDE