Installation and configuration


GitLab Omnibus

Highly standardized installation and configuration

Installation methods

Linux package

Helm Chart

Docker

Identical configuration

Template

Alternative

Community container image


Reverse Proxy in front of GitLab

Central service for…

Examples in this workshop use traefik

traefik is configured using container labels


Deployment

Deploy using Docker Compose:

# Go to repository with slides and demos
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

Deployment - Helper commands

Check the state of the whole stack:

docker compose --project-name gitlab ps -a

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


TLS

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