Conteneurs
DevOps

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

26 juillet 2025

2 min de lecture

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
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

Pour une gestion complète de la planification, consultez notre guide cron et crontab et découvrez les systemd timers avancés comme alternative moderne.

Pour une gestion des logs de sauvegarde, consultez notre guide complet sur les logs Linux.

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 d'infrastructure et d'infogérance.

Contactez-nous

Articles similaires