Passer au contenu principal

Introduction (GitLab)

Installation de GitLab

GitLab supporte plusieurs methodes d'installation. Le package Omnibus reste la reference pour le self-hosting : tout-en-un, configuration centralisee, mises a jour gerees. La version Docker et le chart Helm s'utilisent respectivement pour les deployments conteneurises et Kubernetes.

Installation Omnibus (recommandee)

Omnibus installe GitLab et tous ses composants (PostgreSQL, Redis, NGINX, Gitaly...) dans un package unique. La configuration passe par un seul fichier : /etc/gitlab/gitlab.rb.

# Debian / Ubuntu
curl -fsSL https://packages.gitlab.com/install/repositories/gitlab/gitlab-ee/script.deb.sh | bash
apt install gitlab-ee

# RHEL / AlmaLinux
curl -fsSL https://packages.gitlab.com/install/repositories/gitlab/gitlab-ee/script.rpm.sh | bash
dnf install gitlab-ee

Apres installation, configurer l'URL externe dans /etc/gitlab/gitlab.rb :

external_url 'https://gitlab.example.com'

Puis appliquer :

gitlab-ctl reconfigure

Prerequis systeme

Pour une instance jusqu'a 500 utilisateurs : 8 vCPU, 16 GB RAM, 100 GB SSD NVMe. La RAM est le facteur limitant le plus frequent : Sidekiq et Gitaly sont gourmands. En dessous de 8 GB, l'instance devient instable sous charge.

Systemes officiellement supportes : Ubuntu 22.04/24.04, Debian 12, RHEL/AlmaLinux 8/9. Debian 13 fonctionne mais n'est pas encore dans la liste officielle en GitLab 17.

TLS et certificats

Omnibus integre Let's Encrypt via certbot. Si l'instance est accessible publiquement et que l'URL externe utilise HTTPS, GitLab peut gerer automatiquement le renouvellement :

letsencrypt['enable'] = true
letsencrypt['contact_emails'] = ['ops@example.com']

Pour un certificat existant :

nginx['ssl_certificate'] = '/etc/gitlab/ssl/gitlab.example.com.crt'
nginx['ssl_certificate_key'] = '/etc/gitlab/ssl/gitlab.example.com.key'

Installation Docker

docker run --detach   --hostname gitlab.example.com   --publish 443:443 --publish 80:80 --publish 22:22   --name gitlab   --restart always   --volume /srv/gitlab/config:/etc/gitlab   --volume /srv/gitlab/logs:/var/log/gitlab   --volume /srv/gitlab/data:/var/opt/gitlab   gitlab/gitlab-ee:latest

La configuration reste dans /etc/gitlab/gitlab.rb, montee depuis le volume host.

Post-installation

Au premier demarrage, GitLab genere un mot de passe root dans /etc/gitlab/initial_root_password (supprime apres 24h). Changer ce mot de passe immediatement et configurer l'authentification SSO si disponible.

Commandes utiles :

gitlab-ctl status          # etat des services
gitlab-ctl tail            # logs en temps reel
gitlab-rake gitlab:check   # verification d'integrite
gitlab-rake gitlab:env:info  # infos de version et config

Sources