GIT-Repositories selbst hosten: GitLab als Docker-Container starten
Wer seine GIT-Repositories selbst hosten will, findet mit GitLab eine Alternative zu GitHub. GitLab bietet eine komfortable Weboberfläche für das Verwalten, Bearbeiten und Deployment von GIT-Projekten.
Dank Docker ist die Installation in wenigen Minuten startklar. Es sollte allerdings genügend freier Arbeitsspeicher vorhanden sein, denn im Betrieb beschlagnahmt GitLab ca. 4GB und zudem ständig etwas CPU im Hintergrund. Dabei reagiert die Weboberfläche auf meiner NAS etwas träge, daher habe ich GitLab mittlerweile mit Gitea ersetzt, siehe: Gitea Inbetriebnahme. Für größere Teams mit performanter Hardware bietet GitLab mehr Features als Gitea, speziell Richtung Integration und Delivery: CI/CD.
Damit GitLab ein kostenloses Letsencrypt SSL Zertifikat bekommt, wird für das Beispiel folgendes Setup vorausgesetzt: nginx-LetsEncrypt Reverse Proxy in der Praxis
docker-compose.yml
Beim Einsatz der folgenden docker-compose.yml Datei, muss nur noch die verwendete Domain und Email-Adresse angepasst werden:
version: '3'
services:
web:
image: 'gitlab/gitlab-ee:latest'
restart: always
hostname: 'gitlab.domain.tld'
environment:
GITLAB_OMNIBUS_CONFIG: |
external_url 'https://gitlab.domain.tld'
nginx['listen_port'] = 80
nginx['listen_https'] = false
nginx['proxy_set_headers'] = {
"X-Forwarded-Proto" => "https",
"X-Forwarded-Ssl" => "on"
}
VIRTUAL_HOST: 'gitlab.domain.tld'
VIRTUAL_PORT: '80'
LETSENCRYPT_HOST: 'gitlab.domain.tld'
LETSENCRYPT_EMAIL: 'mail@domIn.tld'
expose:
- "80"
volumes:
- './config:/etc/gitlab'
- './logs:/var/log/gitlab'
- './data:/var/opt/gitlab'
restart: always
networks:
default:
external:
name: webproxy
Vor dem Start werden noch die Ordner config, logs und data benötigt. Der Befehl docker-compose up -d startet Gitlab:
mkdir config
mkdir logs
mkdir data
docker-compose up -d
Beim ersten Start kann über die Weboberfläche ein root-Kennwort vergeben werden.

{{percentage}} % positiv
