GitLab CE auf Ubuntu 16.04 installieren — Schritt für Schritt
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:
- Pakete installieren
- GitLab installieren
- Haupt-URL konfigurieren
- SSL-Zertifikat mit Let’s Encrypt sowie DHPARAM erstellen
- Nginx für HTTPS konfigurieren
- UFW-Firewall konfigurieren
- Post-Installation konfigurieren
- 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 updateJetzt 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 postfixWä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.


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
Installieren Sie anschließend GitLab CE:
sudo apt install gitlab-ceWarten Sie, bis das Paket heruntergeladen und installiert wurde. Die Installation kann mehrere Minuten dauern.

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.rbSuchen 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 -yErzeugen Sie ein Zertifikat für Ihre Domain:
letsencrypt certonly -d gitlab.hakase-labs.coGeben Sie Ihre E-Mail-Adresse zur Benachrichtigung über Ablauf und wählen Sie die Nutzungsbedingungen.


Nach erfolgreicher Erstellung sind die Zertifikate unter /etc/letsencrypt/live/
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
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.

Wenden Sie die Konfiguration an:
sudo gitlab-ctl reconfigureDie Reconfigure-Prozedur konfiguriert und startet die Services. Überprüfen Sie die Ausgabe auf Fehler.

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
Prüfen Sie den Status:
ufw status
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.

Melden Sie sich als Benutzer root an.

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



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

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

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
Prüfen Sie im Webinterface, ob die Datei sichtbar ist:

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
- Funktionstest: Webzugriff, HTTPS-Validität, Login als root
- Funktionstest: Repo anlegen, Klonen, Commit und Push
- Sicherheitstest: SSH-Schlüssel, 2FA, Firewall
- Backuptest: Backup erstellen und Wiederherstellung prüfen
- 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.
Ähnliche Materialien
Podman auf Debian 11 installieren und nutzen
Apt-Pinning: Kurze Einführung für Debian
FSR 4 in jedem Spiel mit OptiScaler
DansGuardian + Squid (NTLM) auf Debian Etch installieren
App-Installationsfehler auf SD-Karte (Error -18) beheben