Auto‑héberger GitLab CE avec Docker Compose et planification de sauvegardes

Publié le 26 juillet 2025

CI/CD
Conteneurs

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.

Besoin d'aide sur ce sujet ?

Notre équipe d'experts est là pour vous accompagner dans vos projets.

Contactez-nous

Articles similaires qui pourraient vous intéresser