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_size auf mindestens 256 MB setzen.
  • Initiales Root-Passwort: Nach dem ersten Start das Passwort aus /etc/gitlab/initial_root_password im 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 create innerhalb des Containers ein vollständiges Backup aller Repositories, Datenbanken und Uploads erstellen.