Installation and configuration


GitLab Omnibus

Highly standardized installation and configuration

Installation methods

Linux package

Helm Chart

Docker

Identical configuration

Template


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 v2:

# Clone repository with slides and demos
git clone https://github.com/nicholasdille/container-slides
cd container-slides/150_gitlab/100_reverse_proxy

# 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

A fresh instance has a new initial root password

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

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

traefik with Let’s Encrypt

Configure traefik to use Let’s Encrypt with HTTP challenge

Configure traefik to use Let’s Encrypt with DNS challenge