Installation and configuration

GitLab Omnibus

Highly standardized installation and configuration

Installation methods

Linux package

Helm Chart


Identical configuration



Community container image

Reverse Proxy in front of GitLab

Central service for…

Examples in this workshop use traefik

traefik is configured using container labels


Deploy using docker compose v2:

# Clone repository with slides and demos
git clone
cd container-slides/150_gitlab/100_reverse_proxy
git pull

# Remove existing instance of GitLab
docker rm -f gitlab

# Deploy new instance
docker compose --project-name gitlab up -d

Your VM has the necessary environment variables: DOMAIN and IP

Extract password (or reset):

docker compose --project-name gitlab exec gitlab \
    cat /etc/gitlab/initial_root_password \
    | grep ^Password | cut -d' ' -f2

Starting fresh (just in case)

Stop running instance:

docker compose --project-name gitlab down

Purge data by removing volumes:

docker volume rm gitlab_config
docker volume rm gitlab_logs
docker volume rm gitlab_data
docker volume create gitlab_config
docker volume create gitlab_logs
docker volume create gitlab_data

A fresh instance has a new initial root password


Not configured in this workshop

Multiple options

GitLab with certificate file

Configure GitLab with key and certificate

GitLab with Let’s Encrypt

Configure GitLab to use Let’s Encrypt

Reverse proxy with custom certificate

Configure traefik to use custom certificate

Reverse proxy with Let’s Encrypt

Configure traefik to use Let’s Encrypt with DNS challenge