- GitLab Community Edition ist vollständig Open Source und kostenlos nutzbar, laufende Kosten entstehen nur für die eigene Serverhardware.
- Hardware für kleine Teams: Bis 10 User genügen 4 CPU-Kerne, 8 GB RAM und 100 GB SSD, bei 10 bis 50 Usern werden 8 Kerne, 16 GB RAM und 500 GB SSD empfohlen.
- Updates sind Pflicht: GitLab veröffentlicht monatlich eine neue Version mit Sicherheitsfixes, wer ein Jahr auslässt, steht vor einem Migrationsprojekt statt einem Update.
- Firewall-Regel: Nach außen sollten nur die Ports 22 für SSH sowie 80 und 443 für HTTP/HTTPS geöffnet sein.
- CI/CD-Runner gehören auf separate Maschinen, da die eigentliche Systemlast meist von ihnen und nicht von GitLab selbst kommt.
Viele Unternehmen nutzen GitLab.com oder GitHub für ihre Softwareentwicklung. Doch was, wenn sensible Projekte nicht in fremde Clouds gehören?
Wenn Compliance-Anforderungen lokale Datenhaltung vorschreiben? Oder wenn Sie einfach die volle Kontrolle über Ihre DevOps-Infrastruktur behalten möchten? Die Antwort: GitLab Self-Hosted - die komplette DevOps-Plattform auf Ihren eigenen Servern.
/01Warum GitLab selbst hosten?
GitLab ist weit mehr als ein Git-Server. Die Plattform bietet eine integrierte DevOps-Lösung von der Projektplanung über Code-Management bis zum Deployment. Und das Beste: Die Community Edition (CE) ist vollständig Open Source und kostenlos nutzbar.
GitLab.com (Cloud)
- Daten auf US-Servern
- Abhängigkeit von GitLab Inc.
- Monatliche Kosten pro User
- Eingeschränkte Anpassbarkeit
- CI/CD-Minuten begrenzt
GitLab Self-Hosted
- Daten im eigenen Rechenzentrum
- Volle Kontrolle und Unabhängigkeit
- Keine laufenden Lizenzkosten (CE)
- Unbegrenzte Anpassung möglich
- Unbegrenzte CI/CD-Kapazität
Die wichtigsten Vorteile
- Datensouveränität: Ihr Code verlässt nie Ihre Infrastruktur - ideal für sensible Projekte und strenge Compliance
- Kosteneffizienz: Keine User-basierten Gebühren, keine CI/CD-Minutenlimits - nur Ihre Serverkosten
- Integration: Nahtlose Anbindung an interne Systeme wie LDAP, Active Directory oder bestehende Monitoring-Lösungen
- Performance: Keine geteilte Infrastruktur, keine externen Latenzen - schnelle Builds auf dedizierter Hardware
Self-hosted heißt auch: Sie betreiben einen Linux-Stack im Produktivbetrieb. Linux-Server-Management von HostSpezial— Patching, Härtung und Monitoring inklusive.
/02Was GitLab alles kann
GitLab ersetzt nicht nur GitHub - es ersetzt ein ganzes Ökosystem von Tools. Eine Installation, alle Funktionen:
Git Repository Management
Branches, Merge Requests, Code Reviews, Protected Branches - alles was ein modernes SCM braucht.
CI/CD Pipelines
Automatisierte Builds, Tests und Deployments. YAML-basiert, flexibel, mit Parallelisierung und Caching.
Container Registry
Integrierte Docker Registry für Ihre Container Images - direkt aus der Pipeline pushen und pullen.
Issue Tracking
Boards, Milestones, Labels, Time Tracking - Projektmanagement direkt neben dem Code.
Security Scanning
SAST, DAST, Dependency Scanning, Container Scanning - Sicherheitsprüfung in der Pipeline.
Wiki & Dokumentation
Projektdokumentation direkt im Repository - versioniert und durchsuchbar.
/03Systemanforderungen
GitLab ist ressourcenintensiv - aber die Investition lohnt sich. Diese Hardware empfehlen wir für einen produktiven Betrieb:
Kleine Teams (bis 10 User)
4 CPU Cores, 8 GB RAM, 100 GB SSD. Ausreichend für Entwicklungsteams mit moderater CI/CD-Nutzung.
Mittlere Teams (10-50 User)
8 CPU Cores, 16 GB RAM, 500 GB SSD. Empfohlen für aktive Entwicklung mit regelmäßigen Builds.
Große Teams (50+ User)
16+ CPU Cores, 32+ GB RAM, NVMe Storage. HA-Setup mit separaten Runnern für CI/CD.
Tipp: Für größere Installationen empfiehlt sich die Trennung von GitLab-Server und CI/CD-Runnern. Die Runner können auf eigener Hardware oder in Containern laufen und skalieren unabhängig.
/04Installation Schritt für Schritt
GitLab bietet verschiedene Installationswege. Am einfachsten ist das Omnibus-Paket - eine All-in-One-Lösung mit allen Komponenten:
1. Repository hinzufügen und installieren
# GitLab Repository hinzufügen (Ubuntu/Debian)
curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash
# GitLab CE installieren
sudo EXTERNAL_URL="https://gitlab.ihre-domain.de" apt-get install gitlab-ce
2. Grundkonfiguration
Nach der Installation finden Sie die Konfiguration unter /etc/gitlab/gitlab.rb. Die wichtigsten Einstellungen:
# Externe URL (mit HTTPS)
external_url 'https://gitlab.ihre-domain.de'
# SMTP für E-Mail-Benachrichtigungen
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "mail.ihre-domain.de"
gitlab_rails['smtp_port'] = 587
# Backup-Einstellungen
gitlab_rails['backup_keep_time'] = 604800
3. Änderungen anwenden
# Konfiguration neu laden
sudo gitlab-ctl reconfigure
# Status prüfen
sudo gitlab-ctl status
Fertig! Nach wenigen Minuten ist GitLab unter Ihrer Domain erreichbar. Das initiale Root-Passwort finden Sie in /etc/gitlab/initial_root_password.
/05CI/CD-Runner einrichten
GitLab ohne CI/CD ist wie ein Auto ohne Motor. Die Runner führen Ihre Pipelines aus - und Sie haben volle Kontrolle darüber:
- Runner installieren: Auf einem separaten Server oder als Docker-Container
- Registrieren: Mit dem Token aus den GitLab Admin-Einstellungen
- Executor wählen: Shell, Docker, Kubernetes - je nach Anforderung
- Tags vergeben: Für gezielte Job-Zuweisung (z.B. "docker", "linux", "windows")
# Runner registrieren
sudo gitlab-runner register \
--url "https://gitlab.ihre-domain.de" \
--registration-token "IHR_TOKEN" \
--executor "docker" \
--docker-image "alpine:latest" \
--description "Docker Runner" \
--tag-list "docker,linux"
/06Sicherheit und Härtung
Ein selbst gehostetes GitLab trägt Verantwortung - hier die wichtigsten Sicherheitsmaßnahmen:
- HTTPS erzwingen: Let's Encrypt ist in GitLab integriert - nutzen Sie es
- Regelmäßige Updates: GitLab veröffentlicht monatlich Security-Patches
- Firewall: Nur Ports 22 (SSH), 80/443 (HTTP/S) nach außen öffnen
- Backup: Automatisierte tägliche Backups mit Offsite-Kopie
- 2FA: Zwei-Faktor-Authentifizierung für alle User aktivieren
- LDAP/SSO: Zentrale Authentifizierung über Active Directory oder SAML
Backup-Befehl: sudo gitlab-backup create erstellt ein vollständiges Backup inklusive Repositories, Datenbank und Konfiguration. Testen Sie regelmäßig die Wiederherstellung!
/07Laufender Betrieb
GitLab braucht Pflege - aber der Aufwand hält sich in Grenzen:
- Updates: Monatliche Minor-Updates, jährliche Major-Upgrades. Immer erst in Staging testen
- Monitoring: GitLab bringt Prometheus-Metriken mit - integrieren Sie diese in Ihr Monitoring
- Log-Analyse:
/var/log/gitlab/enthält alle relevanten Logs - Speicherplatz: Container Registry und LFS können schnell wachsen - Retention-Policies einrichten
/08Direkte Antworten zu GitLab self-hosted
Kurzantworten zum Eigenbetrieb. Für den laufenden Unterbau siehe Linux-Server-Management.
Lohnt sich GitLab self-hosted?
Wenn Quellcode das Haus nicht verlassen darf oder Sie Runner an interne Systeme anbinden müssen, ja. Rein wirtschaftlich rechnet sich Self-Hosting selten gegen GitLab.com — der Betriebsaufwand für Upgrades, Backups und Runner-Pflege ist höher, als die eingesparte Lizenz vermuten lässt.
Welche Hardware braucht eine GitLab-Instanz?
Für bis zu 20 aktive Nutzer reichen 4 CPU-Kerne, 8 GB RAM und schneller Storage für das Repository-Verzeichnis. Ab 100 Nutzern sollten es 8 Kerne und 16 GB sein, wobei die eigentliche Last meist nicht von GitLab selbst kommt, sondern von den CI-Runnern — die gehören auf separate Maschinen.
Wie sichert man GitLab richtig?
Mit dem mitgelieferten Backup-Mechanismus für Repositories und Datenbank plus einer separaten Sicherung der Konfiguration und der Secrets-Datei. Wer nur den Anwendungs-Backup zieht, kann im Ernstfall die verschlüsselten Werte nicht wiederherstellen — ein Fehler, der erst beim Restore auffällt.
Wie oft muss GitLab aktualisiert werden?
Monatlich. GitLab veröffentlicht jeden Monat eine neue Version inklusive Sicherheitsfixes, und Upgrades über mehrere Major-Versionen hinweg müssen in definierten Schritten erfolgen. Wer ein Jahr auslässt, hat kein Update mehr vor sich, sondern ein Projekt.
GitLab oder GitHub Enterprise für den Mittelstand?
GitLab bringt CI/CD, Container-Registry und Security-Scanning in einem Produkt mit und ist self-hosted der pragmatischere Weg. GitHub Enterprise Server ist stark, wenn Ihr Team ohnehin im GitHub-Ökosystem arbeitet. Für rein interne Entwicklung mit Souveränitätsanforderung ist GitLab die häufigere Wahl.
/09Fazit: Lohnt sich Self-Hosting?
GitLab selbst zu hosten ist kein Hexenwerk - aber auch kein Selbstläufer. Die Vorteile liegen klar auf der Hand: volle Datenkontrolle, keine laufenden Lizenzkosten und unbegrenzte CI/CD-Kapazität. Dafür braucht es initiale Einrichtung, regelmäßige Updates und ein Auge auf Sicherheit und Performance.
Für Teams, die bereits Linux-Server betreiben oder einen IT-Partner haben, ist der Aufwand überschaubar. Der größte Vorteil gegenüber der Cloud: Ihr Code bleibt bei Ihnen. Keine externen Abhängigkeiten, keine überraschenden Preisänderungen, keine Datenschutz-Bedenken.
Unser Tipp: Starten Sie mit einer kleinen Installation, sammeln Sie Erfahrungen und skalieren Sie bei Bedarf. GitLab wächst mit Ihren Anforderungen - und Sie behalten jederzeit die Kontrolle.
