how-to-install-and-manage Help

GitLab

Gitlab est une forge logicielle qui permet de gérer des projets git. Gitlab permet de gérer des dépôts git, des pipelines CI/CD, des issues, des merge requests, des wikis, etc.

Cas d'utilisation de Gitlab

Gitlab est nécessaire dans notre cas pour plusieurs raisons :

  • Documentation: Gitlab permet de stocker la documentation de nos projets.

  • CI/CD : Gitlab permet de lancer des pipelines CI/CD pour tester et déployer nos projets.

  • Nixos : Gitlab permet de stocker les fichiers de configuration de nos serveurs/vm.

  • Kubernetes : Gitlab permet de stocker les fichiers de configuration de nos clusters kubernetes.

  • Issues : Gitlab permet de gérer les issues de nos projets et de le faire remonter dans Jira.

Architecture

Gitlab sera installé sur le VPS Opal. Il sera déployé via docker-compose.

Installation

Cette installation est basée sur un serveur ubuntu 24.04 car le VPS opal à des dépendances qui rendent l'installation de nixos impossible.

Prérequis

Installer docker et docker-compose

sudo apt-get update -y sudo apt-get install -y ca-certificates curl gnupg sudo install -m 0755 -d /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/ubuntu/gpg sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg sudo chmod a+r /etc/apt/keyrings/docker.gpg echo \ "deb [arch=$(dpkg --print-architecture)\ signed-by=/etc/apt/keyrings/docker.gpg]\ https://download.docker.com/linux/ubuntu \ $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \ sudo tee /etc/apt/sources.list.d/docker.list > /dev/null sudo apt-get update -y sudo apt-get install -y docker-ce docker-ce-cli \ containerd.io docker-buildx-plugin docker-compose-plugin

Installation de Gitlab

Ensuite, il faut rajouter sa session au groupe docker pour ne pas avoir à utiliser sudo à chaque commande docker

sudo usermod -aG docker $USER

Et si on fait un docker ps -a on doit voir les containers qui tournent

docker-ps.png

Une fois cela, il faut rédiger le docker compose permettant de lancer Gitlab

gitlab: image: 'gitlab/gitlab-ce:17.5.0-ce.0' restart: always container_name: gitlab hostname: 'gitlab.innovalia.cc' environment: GITLAB_OMNIBUS_CONFIG: | external_url 'https://gitlab.innovalia.cc' gitlab_rails['gitlab_shell_ssh_port'] = 2225 ports: - '2225:22' networks: - public volumes: - '/srv/gitlab/config:/etc/gitlab' - '/srv/gitlab/logs:/var/log/gitlab' - '/srv/gitlab/data:/var/opt/gitlab' shm_size: '256m'

Ensuite, il faut déployer Caddy comme fait dans le document Xen Orchestra pour avoir un reverse proxy.

caddy: image: caddy:cloudflare restart: unless-stopped build: . ports: - "80:80" - "443:443" volumes: - ./Caddyfile:/etc/caddy/Caddyfile # Lier le fichier Caddyfile - caddy_data:/data # Stockage des certificats - caddy_config:/config # Configuration interne de Caddy networks: - public

Puis, il faut créer les registres DNS sur cloudflare

gitlab-a-registre.png
gitlab-aaaa-registre.png

Une fois tout démarrer, nous devons tomber sur la page d'accueil de Gitlab

gitlab-landing-page.png
Last modified: 25 March 2025