GitLab - vollständige DevOps-Plattform selbst hosten
GitLab - vollständige DevOps-Plattform selbst hosten
GitLab CE ist die quelloffene Community-Edition der vollständigen DevOps-Plattform — Git-Hosting, CI/CD-Pipelines, Issue-Tracking und Container-Registry in einem einzigen Self-Hosted-System.
Was ist GitLab?
GitLab bietet weit mehr als reines Git-Hosting: integrierte CI/CD-Pipelines, eine Docker-Container-Registry, ein Issue-Board, Merge-Request-Workflows, Wiki und ein eingebautes Monitoring-Dashboard. Für Teams, die alle Entwicklungsprozesse unter einem Dach behalten und keine externen SaaS-Dienste nutzen möchten, ist GitLab CE die umfangreichste quelloffene Option. Das Docker-Image der Community Edition enthält PostgreSQL, Redis und Nginx als integrierte Komponenten — ideal für den schnellen Einstieg, wenn auch ressourcenintensiv.
Voraussetzungen
- Docker 20.10+ / Docker Compose
- Mindestens 4 GB RAM (8 GB empfohlen für produktiven Betrieb)
- Ausreichend Festplattenspeicher für Repositories und Container-Images
- Eigene Domain mit TLS-Zertifikat
Compose-Beispiel
services:
gitlab:
image: gitlab/gitlab-ce:latest
container_name: gitlab
restart: unless-stopped
hostname: gitlab.meinedomain.de
ports:
- "80:80"
- "443:443"
- "2222:22"
volumes:
- ./config:/etc/gitlab
- ./logs:/var/log/gitlab
- ./data:/var/opt/gitlab
environment:
- GITLAB_OMNIBUS_CONFIG=external_url 'https://gitlab.meinedomain.de'; gitlab_rails['lfs_enabled'] = true;
shm_size: 256m
Hinweise
- RAM-Bedarf: GitLab ist der schwergewichtigste Container in dieser Reihe. Mit weniger als 4 GB RAM kommt es zu Timeouts beim Start —
shm_sizeauf mindestens 256 MB setzen. - Initiales Root-Passwort: Nach dem ersten Start das Passwort aus
/etc/gitlab/initial_root_passwordim Container auslesen; die Datei wird nach 24 Stunden automatisch gelöscht. - CI/CD-Runner: Für funktionierende Pipelines einen separaten GitLab Runner Container registrieren — dieser führt Jobs isoliert aus.
- Backup: Mit
gitlab-backup createinnerhalb des Containers ein vollständiges Backup aller Repositories, Datenbanken und Uploads erstellen.