Files
wiki/Catalogue-Self-Hosted/apps/app-gitlab.md
T
2026-06-09 18:40:21 +02:00

5.7 KiB


title: GitLab created: 2026-06-07 updated: 2026-06-07 type: app tags: [catalogue, development, forge, git, ci-cd, devops] confidence: high contested: false sources: [https://selfh.st/apps/?tag=Development, https://github.com/gitlabhq/gitlabhq]

💻 GitLab

Forge Git complète tout-en-un : dépôt Git, CI/CD, registry Docker, wiki, issue tracker, planning, monitoring. La solution DevOps la plus complète en open source.

📋 Informations Générales

Champ Valeur
Site web about.gitlab.com
GitHub (mirror) gitlabhq/gitlabhq
Dépôt principal gitlab.com/gitlab-org/gitlab
License MIT (CE) / Propriétaire (EE)
Langage Ruby (on Rails) + Go (runners)
Étoiles GitHub 7 159 (mirror)
Catégorie cat-development
Note ⚠️ Très lourd : ~4-8 Go de RAM minimum, le plus complet de tous les self-hosted (mais aussi le plus gourmand). Édition Community (CE) vs Enterprise (EE) : EE a des features avancées (SAML, audit, compliance) payantes.

📝 Description

GitLab est une plateforme DevOps complète qui couvre tout le cycle de vie d'un projet logiciel, en un seul produit :

  • Forge Git : dépôt, branches, merge requests, code review
  • CI/CD : pipelines (.gitlab-ci.yml), runners Go, registry d'images
  • Container Registry : images Docker, Helm charts, packages
  • Issue Tracker : tickets, boards Kanban, milestones
  • Wiki : documentation par projet
  • Monitoring : Prometheus + Grafana intégrés (depuis v13)
  • Pages : hébergement statique (comme GitHub Pages)
  • Web IDE : édition de fichiers en ligne (VS Code-like)
  • Sécurité : SAST, DAST, dependency scanning (Ultimate)
  • Planning : epics, roadmaps (Ultimate)

Édition Community (CE) — open source, gratuite :

  • Forge, CI/CD, registry, wiki, issues, pages
  • Pas de SAML, pas d'audit logs avancés, pas de compliance, pas de multi-cluster

Édition Enterprise (EE) — propriétaire, payante :

  • SAML SSO, audit events, IP allow-listing
  • Multi-cluster Kubernetes, deploy boards
  • Compliance, vulnerability management avancé

Cas d'usage :

  • Remplacer GitHub + CI/CD + Docker Hub + Jira + Wiki par un seul outil self-hosted
  • Workflow DevOps complet sans dépendre du cloud
  • Projets open source : auto-héberger ses propres projets
  • Entreprises : conformité RGPD, contrôle total des données

Concurrents directs : app-forgejo / app-gitea (légers, mono-machine) vs GitLab (lourd, full-featured).

🚀 Installation

Via Docker Compose (méthode officielle Omnibus-like)

# docker-compose.yml
version: '3.8'
services:
  gitlab:
    image: gitlab/gitlab-ce:latest
    container_name: gitlab
    restart: unless-stopped
    hostname: gitlab.example.com
    environment:
      - GITLAB_OMNIBUS_CONFIG=true
    shm_size: '256m'
    ports:
      - "22:22"       # SSH
      - "80:80"       # HTTP
      - "443:443"     # HTTPS
    volumes:
      - gitlab-config:/etc/gitlab
      - gitlab-logs:/var/log/gitlab
      - gitlab-data:/var/opt/gitlab
    networks:
      - proxy

volumes:
  gitlab-config:
  gitlab-logs:
  gitlab-data:

networks:
  proxy:
    external: true

Méthode recommandée : Omnibus (bare-metal)

# Sur Ubuntu/Debian
curl -L https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash
sudo EXTERNAL_URL="https://gitlab.example.com" apt-get install gitlab-ce

# Configuration dans /etc/gitlab/gitlab.rb puis :
sudo gitlab-ctl reconfigure

⚠️ Ne pas exposer ports 80/443 du conteneur si reverse proxy en amont — utiliser Traefik/Nginx.

⚙️ Configuration

  1. Premier accès : on vous demandera de définir un mot de passe pour l'utilisateur root
  2. SMTP : configurer dans gitlab.rb (gitlab_rails['smtp_*'])
  3. Reverse proxy : traefik recommandé avec nginx['listen_port'] = 8080 dans le conteneur
  4. Backups : gitlab-backup create (cron recommandé)
  5. Runners : ajouter des runners auto-hébergés pour vos pipelines
  6. LDAP/SAML : SAML = EE, LDAP = CE (config dans gitlab.rb)

🔗 Alternatives

  • app-forgejo — Fork communautaire Gitea, plus léger, 100% libre
  • app-gitea — Forge légère, n'inclut pas la CI complète (Gitea Actions)
  • app-woodpecker-ci + Forgejo — Stack léger équivalent à GitLab
  • GitHub Enterprise — Managé, pas self-hosted
  • Gitea + Drone CI (historique) — Stack légère complète
  • OneDev — Concurrent direct, all-in-one en Java

🔒 Sécurité

  • HTTPS obligatoire (Traefik ou Let's Encrypt intégré)
  • Auth forte : 2FA activable par utilisateur
  • SAML : EE uniquement, sinon LDAP/OAuth
  • Audit logs : CE basique, EE avancé
  • IP allowlist : EE uniquement
  • Container scanning : EE uniquement
  • Backups : gitlab-backup create (chiffrement supporté)
  • Runners non-privilégiés : faire tourner les runners en rootless Docker

📚 Ressources

🔗 Pages Liées