GITLAB · TECH
GitLab: vollständige DevOps-Plattform mit CI/CD, Registry und Security
GitLab 17 als All-in-one-DevOps-Plattform. Community Edition MIT, Enterprise proprietär. Self-host oder Cloud. Sehr umfangreich, aber ressourcenhungrig.
Recherche & Faktencheck: DuneDive LLC · Stand: 2026-05
Was ist GitLab?
GitLab ist eine vollständige DevOps-Plattform – Git-Hosting plus CI/CD plus Container-Registry plus Security-Scanning plus Issue-Boards plus Wiki plus Monitoring plus Container-Orchestrierung. Das Projekt startete 2011 als GitHub-Alternative und wurde 2014 zur Firma GitLab Inc. (Nasdaq-Listing seit 2021). Mai 2026 in Version 17, ein etablierter Spieler mit zwei Editionen: Community Edition (CE, MIT-Lizenz, self-host frei) und Enterprise Edition (EE, proprietär, ab USD 29 pro User/Monat).
Community Edition vs Enterprise: die CE deckt ca. 80% der Features ab – Git, CI/CD, Issues, PRs, Container-Registry, Paket-Registry. EE fügt enterprise-spezifische Features hinzu: Multi-Region-Replikation, Audit-Events auf Compliance-Niveau, Advanced-Security-Scanning (SAST/DAST/Dependency), Code-Owner-Approval-Rules, Multi-Project-Pipelines, Push-Rules, Group-Level-Sicherheits-Dashboards.
Hosting-Optionen: (1) gitlab.com Cloud – Free-Tier mit 400 CI-Minuten/Monat, Premium ab USD 29/User/Monat, Ultimate ab USD 99/User/Monat. (2) Self-host Omnibus-Paket – alles in einem Debian/RPM-Paket oder Docker-Image. (3) Self-host Kubernetes-Helm-Chart – für grosse Setups mit horizontaler Skalierung.
Architektur: GitLab ist ein Rails-Monolith mit vielen Hilfsdiensten – PostgreSQL, Redis, NGINX, Sidekiq (Background-Jobs), Gitaly (Git-Server), Präfect (Gitaly-Cluster), Workhorse (HTTP-Proxy), Pages, Registry. Im Omnibus-Image alles vorintegriert. Das macht GitLab mächtig aber ressourcenhungrig – Mindestens 4 GB RAM im Leerlauf, 8 GB RAM für aktiven Produktiv-Einsatz.
Mai 2026 Status: GitLab 17 hat den Migration-Pfad zu Cells (Mehrmandanten-Architektur) angetrieben, Duo (AI-Assist) ist verfügbar, und die Free-Tier-Limits wurden gegenüber 2024 weiter eingegrenzt. Self-host CE bleibt für ernsthafte KMU-Setups die rationale Wahl, wenn die Hardware vorhanden ist.
Warum es zählt
GitLab löst für ein KMU mit 15+ Entwicklern oder strengen Compliance-Anforderungen ein spezifisches Problem: "wir wollen einen einzigen Vendor und einen einzigen UI für alles".
KMU-Tauglichkeit (Mai 2026) – bedingt: Für kleine Teams (1-10 Entwickler) ist GitLab Omnibus oft Overkill. Hardware-Bedarf (8 GB RAM Minimum), Lernkurve und Operations-Aufwand stehen in keinem Verhältnis zum Mehrwert. Für Teams ab 15 Entwicklern oder für Mandate mit strikten Compliance-Anforderungen wird GitLab sinnvoll: alles unter einem Dach, eine UI, ein Audit-Log, eine Berechtigungs-Hierarchie.
CH-DSG-Fit: vollständig erfüllbar bei self-host. GitLab CE läuft self-host auf Hetzner Falkenstein, alle Daten bleiben on-premise. Auditor-Zugriff via Read-only-User mit klar definierten Rollen. Bei gitlab.com Cloud: EU-Region nominell vorhanden, aber GitLab Inc. ist US-Firma – Auftragsverarbeitungs-Vertrag und Daten-Transfer-Folgenabschätzung Pflicht.
Vollständige Toolchain: einer der echten Vorteile. Statt Gitea + Woodpecker + Sentry + Trivy + Mattermost mit jeweils eigenem Login, Konfiguration und Update-Zyklus, deckt GitLab CE diese Domain ab. Für ein Mandat ist die Auswahl-Begründung einfacher: "wir haben GitLab, das macht alles".
CI/CD integriert: GitLab CI ist eingebaut, keine separaten Runner-Container nötig (obwohl möglich). Pipeline-Definition in .gitlab-ci.yml. Sehr ausgereift: Multi-Stage-Pipelines, Matrix-Builds, Approval-Gates, Secrets-Vault, Multi-Project-Pipelines, Dynamic-Child-Pipelines. Pipeline-Sprache reicher als GitHub Actions, aber auch komplexer.
Security-Features (EE): SAST (Static Application Security Testing), DAST (Dynamic), Dependency-Scanning, License-Compliance, Container-Scanning – alles eingebaut. Für regulierte Sektoren (Finanz, Versicherung, Gesundheit) ist das ein klarer Mehrwert. Allerdings ab Premium-Tier (USD 29/User/Monat).
Was GitLab nicht ist: kein schnelles Setup. Wer in einem halben Tag eine Git-Hosting-Lösung braucht: Gitea. Wer eine schlanke Open-Source-Toolchain ohne Lock-in will: Gitea + Woodpecker. GitLab ist die rationale Wahl, wenn die Anforderungen Vollkomplexität bereits diktieren.
Wie es funktioniert
GitLab Omnibus ist ein einziges Docker-Image (oder Debian/RPM-Paket) mit allen Komponenten vorintegriert.
docker-compose.yml-Beispiel für ein KMU-Setup:
```yaml services: gitlab: image: gitlab/gitlab-ce:17.0.0-ce.0 hostname: gitlab.firma.ch environment: GITLAB_OMNIBUS_CONFIG: | external_url "https://gitlab.firma.ch" gitlab_rails["smtp_enable"] = true gitlab_rails["smtp_address"] = "smtp-relay.brevo.com" gitlab_rails["smtp_port"] = 587 gitlab_rails["backup_keep_time"] = 604800 ports: - "443:443" - "80:80" - "22:22" volumes: - gitlab-config:/etc/gitlab - gitlab-logs:/var/log/gitlab - gitlab-data:/var/opt/gitlab restart: unless-stopped shm_size: "256m" volumes: gitlab-config: gitlab-logs: gitlab-data: ```
Erster Start dauert ca. 5-10 Minuten (Initialisierung von Postgres, Redis, Gitaly, Sidekiq). Danach Browser auf https://gitlab.firma.ch, Admin-Passwort aus /etc/gitlab/initial_root_password lesen, einloggen, Root-Passwort ändern.
Hardware-Anforderungen: GitLab dokumentiert offiziell als Minimum 4 vCPU + 4 GB RAM für bis zu 100 User. Realistisch für ein produktiv-laufendes Setup mit aktivem Team: 4 vCPU + 8 GB RAM + 50 GB Disk für Daten + 20 GB für Logs. Hetzner CCX23 (4 dedicated vCPU, 16 GB RAM, 160 GB SSD) ist die typische Standard-Wahl – ca. CHF 30/Monat.
GitLab Runner: für CI/CD braucht es Runner – separate Container/VMs, die Jobs ausführen. Ein Shared-Runner pro Instance ist Standard.
```yaml runner: image: gitlab/gitlab-runner:latest volumes: - /var/run/docker.sock:/var/run/docker.sock - runner-config:/etc/gitlab-runner restart: unless-stopped ```
Nach docker exec gitlab-runner register und Registration-Token aus der GitLab-UI.
Pipeline-Beispiel (.gitlab-ci.yml):
```yaml stages: [build, test, deploy] build: stage: build image: node:20 script: npm ci && npm run build artifacts: { paths: [dist/] } test: stage: test image: node:20 script: npm test deploy: stage: deploy image: alpine:latest script: - apk add openssh-client - ssh deploy@server "cd /app && git pull && npm ci && pm2 restart all" only: [main] ```
Backup: gitlab-backup create erstellt einen kompletten Tarball (DB plus Repos plus Uploads). Cron daily, Aufbewahrung 7 Tage, Off-Site-Kopie via rsync. Restore: gitlab-backup restore BACKUP=timestamp – wiederherstellbar in ca. 10-30 Minuten je nach Datengrösse.
Setup in 5 Schritten
- 01Hetzner CCX23 oder grosser (mindestens 4 dedicated vCPU, 16 GB RAM, 100+ GB SSD) bereitstellen, Subdomain gitlab.firma.ch DNS-mappen.
- 02docker-compose mit gitlab/gitlab-ce:17.0 starten, GITLAB_OMNIBUS_CONFIG mit external_url, SMTP-Config (Brevo), backup_keep_time setzen.
- 03Erster Start: Root-Passwort aus /etc/gitlab/initial_root_password auslesen, einloggen, Sign-up-Restriction aktivieren, 2FA für Admin verpflichtend.
- 04GitLab Runner deployen, registrieren mit Token aus Admin -> Runners, Executor docker wählen, Resource-Limits setzen (CPU 2, Memory 4 GB pro Job).
- 05Backup-Cron einrichten: gitlab-backup create täglich, rsync nach Hetzner-Storage-Box, monatlich Restore-Test in Staging-Umgebung.
Wann GitLab einsetzen
GitLab ist die richtige Wahl, wenn (a) das Team 15+ Entwickler hat, (b) Compliance-Anforderungen sehr detaillierte Audit-Trails verlangen, (c) eine einzige Plattform für Git/CI/CD/Registry/Security gewünscht ist, (d) Hardware-Budget für 8+ GB RAM Server vorhanden ist.
Konkrete Fälle: Eine SaaS-Boutique mit 20 Entwicklern und mehreren Mandanten-Plattformen – GitLab CE mit Multi-Project-Pipelines deckt das ab, ohne zusätzliche Lizenzen pro Tool. Eine Finanzberatung mit FINMA-naher Aufsicht – GitLab Premium mit SAST/DAST plus Audit-Events erfüllt die Anforderungen. Ein Konzern-Tochter mit 100+ Entwicklern, der von GitHub Enterprise weg will – GitLab Ultimate ist eine ernsthafte Migrationsoption.
Bei Fairlane läuft Gitea (nicht GitLab) – wir haben 1-3 Entwickler-Aktivität pro Tag, ein Single-Binary reicht. GitLab wäre Overkill. Wir sehen GitLab häufiger bei grösseren Mandanten (15-50 Entwickler) und in Branchen mit Compliance-Druck.
Wann NICHT
GitLab ist die falsche Wahl, wenn (a) das Team unter 10 Entwicklern liegt – Gitea reicht mit weniger Aufwand, (b) das Budget keine 16 GB RAM Hetzner-Hardware trägt – RAM-Hunger ist real, (c) die Operations-Erfahrung im Team für Multi-Service-Stacks (Postgres, Redis, NGINX, Sidekiq, Gitaly) fehlt – Updates und Recovery sind komplexer als bei Gitea, (d) Premium/Ultimate-Features (SAST, DAST, Audit-Events) nicht gebraucht werden – dann ist die CE-Funktionalität bei Gitea+Woodpecker mit weniger Komplexität erreichbar.
Fallen: GitLab Omnibus ohne Memory-Tuning auf 4 GB RAM laufen lassen – OOM-Kills sind die Folge, Workshops zu unicorn["worker_processes"] und sidekiq["concurrency"] sind dann nötig. GitLab-Updates aussetzen – Security-Patches häufig, Major-Upgrades alle 6 Monate sind Pflicht. Backup-Cron nicht testen – gitlab-backup restore ist nicht trivial, regelmässige Disaster-Recovery-Tests sind Pflicht.
Nicht empfohlen: GitLab CE plus diverse externe Tools parallel betreiben – die ganze Idee von GitLab ist die Integration, wer dann separate Sentry/Trivy/Mattermost-Instanzen daneben stellt, gibt den Hauptvorteil auf. GitLab.com Free als Produktiv-Backbone für KMU mit CH-Mandanten – Daten in den USA, kein Auftragsverarbeitungs-Vertrag im Free-Tier möglich.
Vor- und Nachteile
STÄRKEN
- All-in-one: Git, CI/CD, Registry, Security, Issues in einer Plattform
- CI/CD-Engine sehr ausgereift (Multi-Stage, Matrix, Multi-Project)
- Community Edition MIT-lizenziert, vollständig self-host
- Marktstandard für enterprise-grade DevOps mit klarer Roadmap
SCHWÄCHEN
- Ressourcenhungrig – 4 GB RAM Minimum, realistisch 8-16 GB
- Operations-Komplexität – Multi-Service-Stack mit eigenem Sidekiq, Gitaly, Workhorse
- EE-Features (SAST, DAST, Audit-Events) hinter USD 29/User/Monat
- Backup-Restore-Pfad komplex – Disaster-Recovery muss regelmässig getestet werden
Häufige Fragen
GitLab CE oder EE – was reicht für KMU?
Für 90% der KMU-Fälle reicht CE. Issues, PRs, CI/CD, Container-Registry, Paket-Registry, Sicherheits-Scanning auf Basis-Niveau – alles in CE. EE wird sinnvoll bei (a) Compliance-Anforderungen wie ISO 27001 oder FINMA-naher Aufsicht mit Audit-Trail-Pflicht, (b) Multi-Region-Replikation, (c) Advanced-Security (SAST, DAST, License-Compliance). Faustregel: unter 25 Entwickler und keine harte Audit-Pflicht – CE. Darüber: EE prüfen.
GitLab oder Gitea – wann macht der Wechsel Sinn?
Wechsel von Gitea zu GitLab macht Sinn, wenn das Team auf 20+ Entwickler wächst und (a) Multi-Project-Pipelines nötig sind, (b) Code-Owner-Approval-Rules durchgesetzt werden müssen, (c) Compliance-Audits den GitLab-spezifischen Audit-Trail verlangen. Bis dahin: Gitea bleibt die rationale Wahl. Wechsel ist machbar, aber CI/CD-Pipelines müssen neu geschrieben werden (Gitea Actions YAML zu GitLab CI YAML).
Wie viel kostet GitLab self-host realistisch?
Hardware: Hetzner CCX23 ca. CHF 30/Monat für KMU bis 50 User. Setup einmalig: 2-3 Tage inklusive nginx-Reverse-Proxy, Lets-Encrypt, SMTP, Backup-Cron, Runner-Setup. Laufender Pflegeaufwand: 4-8 Stunden pro Monat (Updates, Monitoring, Backup-Verify, gelegentliche Tunings). Erstes Jahr inklusive Setup: CHF 5000-10000. GitLab.com Premium vergleichbarer Scope: USD 29 pro User pro Monat – bei 15 Usern USD 5200/Jahr. Self-host gewinnt ab ca. Jahr zwei.
Was passiert bei einem GitLab-Outage?
Ohne HA-Setup: das Team kann während des Outages weder pushen, pullen, noch Issues bearbeiten. Lokale Git-Klone bleiben funktional – Code-Arbeit ist möglich, aber kein Code-Review und kein CI/CD. Recovery aus Backup üblicherweise 30-90 Minuten je nach Datengrösse. Empfehlung: monatlicher Restore-Test in Staging-Umgebung, damit der Pfad bei einem echten Outage geuebt ist. Für >25 Entwickler: HA-Setup mit zwei Knoten + Gitaly-Cluster prüfen.
Verwandte Themen
Quellen
- GitLab – Documentation · 2026-05
- GitLab – Pricing tiers · 2026-05
- GitLab Omnibus – Installation guide · 2026-04
- GitLab 17 – Release announcements · 2026-04
PASSEND ZU IHREM STACK?