5.7 KiB
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
- Premier accès : on vous demandera de définir un mot de passe pour l'utilisateur
root - SMTP : configurer dans
gitlab.rb(gitlab_rails['smtp_*']) - Reverse proxy : traefik recommandé avec
nginx['listen_port'] = 8080dans le conteneur - Backups :
gitlab-backup create(cron recommandé) - Runners : ajouter des runners auto-hébergés pour vos pipelines
- 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
- cat-development — Catégorie Development
- app-forgejo / app-gitea — Alternatives plus légères
- app-woodpecker-ci — CI/CD externe (si pas GitLab CI)
- app-traefik — Reverse proxy
- securisation-home-lab — Bonnes pratiques
- recettes-docker-compose — Templates Docker