Prérequis
- Un serveur Linux (Debian, Ubuntu)
- Docker et Docker Compose installés
- Nom de domaine (ex : gitlab.example.com) pointant vers le serveur
- Ports 80, 443 et 22 ouverts
Déploiement de GitLab CE
1. Créer le fichier docker-compose.yml
version: '3.8'
services:
  web:
    image: gitlab/gitlab-ce:latest
    restart: always
    hostname: 'gitlab.example.com'
    environment:
      GITLAB_OMNIBUS_CONFIG: |
        external_url 'https://gitlab.example.com'
        gitlab_rails['gitlab_shell_ssh_port'] = 22
    ports:
      - '80:80'
      - '443:443'
      - '22:22'
    volumes:
      - gitlab-config:/etc/gitlab
      - gitlab-logs:/var/log/gitlab
      - gitlab-data:/var/opt/gitlab
volumes:
  gitlab-config:
  gitlab-logs:
  gitlab-data:
2. Lancer GitLab
docker-compose up -d
Attendez quelques minutes que GitLab soit accessible sur https://gitlab.example.com.
Configuration initiale
- Changez le mot de passe root
- Configurez les runners partagés (GitLab Runner)
- Ajoutez vos projets et invitez vos équipes
Planification des sauvegardes
1. Créer le script de sauvegarde /root/gitlab_backup.sh
#!/bin/bash
TIMESTAMP=$(date +'%Y%m%d_%H%M%S')
docker exec gitlab gitlab-backup create STRATEGY=copy
docker cp gitlab:/var/opt/gitlab/backups/* /backup/gitlab/$TIMESTAMP/
find /backup/gitlab/ -maxdepth 1 -type d -mtime +7 -exec rm -rf {} \;
Rendez-le exécutable :
chmod +x /root/gitlab_backup.sh
2. Créer une tâche cron
0 3 * * * /root/gitlab_backup.sh >> /var/log/gitlab_backup.log 2>&1
Restauration
# Choisir une sauvegarde
export BACKUP=1654320000_2025_07_26_03_00_00
docker exec gitlab gitlab-backup restore BACKUP=$BACKUP
Bonnes pratiques
- Sécuriser l’accès HTTPS (Let's Encrypt ou certif. personnalisés)
- Surveiller l’état du conteneur (Healthcheck)
- Monitorer les metrics via Prometheus exporter
- Stocker les backups sur un stockage externe (S3, NFS)
- Mettre à jour l’image régulièrement
Conclusion
Avec Docker Compose, déployez rapidement GitLab CE en auto‑hébergement et assurez une continuité de service grâce à des sauvegardes automatisées.


