Créer une sauvegarde Backup de GitLab pour sécuriser vos données

Apprenez à réaliser des sauvegardes manuelles et automatiques de votre instance GitLab pour prévenir toute perte.

Créer une sauvegarde (Backup) de GitLab : Sécuriser vos données

Pourquoi la sauvegarde est-elle vitale ?

En informatique, il existe une règle d'or : une donnée qui n'est pas sauvegardée est une donnée qui n'existe pas. Que ce soit à cause d'une erreur humaine, d'une mise à jour qui tourne mal ou d'une panne matérielle, perdre l'intégralité de vos dépôts, de vos tickets et de votre configuration peut être une catastrophe pour votre équipe.

Heureusement, GitLab intègre un outil puissant qui permet de réaliser une sauvegarde complète de GitLab en une seule commande. Cette procédure regroupe la base de données, les dépôts Git et tous les fichiers attachés dans une seule archive compressée (.tar).

Lancer une sauvegarde manuelle du serveur

Pour effectuer cette opération, vous devez avoir un accès administrateur à votre serveur et utiliser la ligne de commande.

Créer l'archive complète

Utilisez l'outil intégré pour lancer le processus de sauvegarde globale du système :

sudo gitlab-backup create

Exclure des répertoires spécifiques

Sur de très gros serveurs, la sauvegarde peut prendre beaucoup de temps et d'espace disque. Vous pourriez vouloir ignorer certains éléments lourds comme les fichiers envoyés par les utilisateurs (uploads) ou la base de données.

Utilisez la variable d'environnement SKIP pour filtrer les données à sauvegarder :

sudo gitlab-backup create SKIP=db,uploads

Résultat attendu :

Dumping database ... [DONE]
Dumping repositories ...
 * group/project-alpha ... [DONE]
 * group/project-beta ... [DONE]
Dumping uploads ... [DONE]
Dumping builds ... [DONE]
Dumping artifacts ... [DONE]
Dumping pages ... [DONE]
Creating backup archive: 1713532481_2026_04_19_17.5.2_gitlab_backup.tar ... [DONE]

Où trouver votre fichier de sauvegarde ?

Une fois l'opération terminée, GitLab ne garde pas le fichier dans votre dossier actuel. Il le déplace automatiquement dans un répertoire de sauvegarde sécurisé.

Localiser l'archive .tar

Rendez-vous dans le dossier /var/opt/gitlab/backups pour voir vos fichiers :

cd /var/opt/gitlab/backups
ls -l

Attention : Compatibilité des versions

Une sauvegarde GitLab ne peut être restaurée que sur une instance exécutant exactement la même version de GitLab (ex: de 17.5.2 vers 17.5.2). Notez toujours votre version actuelle lors de l'archivage.

Liste des fichiers de sauvegarde dans le répertoire système

Sécurité des fichiers de configuration

Le fichier de sauvegarde ne contient pas les fichiers de configuration critiques (gitlab.rb et gitlab-secrets.json). Vous devez impérativement sauvegarder manuellement ces fichiers sensibles vers un endroit sûr, sinon votre restauration sera impossible.

Conclusion

Vous savez désormais comment sécuriser vos données GitLab contre les imprévus. Posséder une archive récente est la base d'un bon plan de reprise d'activité (PRA).

Savoir créer une archive est une chose, mais savoir l'utiliser en cas de crise en est une autre. Dans le prochain chapitre, nous allons voir comment restaurer une sauvegarde GitLab pour remettre votre serveur sur pied en quelques minutes.

Espace commentaire

Écrire un commentaire

Rejoignez la discussion

Vous devez être connecté pour poster un message.

25 commentaires

ajdaini-hatim
Auteur Rédacteur Secouriste Actif
Avatar de ajdaini-hatim
ajdaini-hatim
Auteur Rédacteur Secouriste Actif

Dernier conseil : testez toujours votre restauration sur une machine de dev. Un backup que tu n'as jamais restauré, c'est un backup qui ne fonctionne pas.

16/05/2026 à 17:15
ajdaini-hatim
Auteur Rédacteur Secouriste Actif
Avatar de ajdaini-hatim
ajdaini-hatim
Auteur Rédacteur Secouriste Actif

Essaie de dumper la base séparément avec pg_dump si le backup global est trop lourd, mais c'est du bricolage.

16/05/2026 à 09:24
marty-noel
Membre
Avatar de marty-noel
marty-noel
Membre

Mon backup échoue avec une erreur de timeout sur la base de données. Le serveur est trop lent.

16/05/2026 à 03:17
ajdaini-hatim
Auteur Rédacteur Secouriste Actif
Avatar de ajdaini-hatim
ajdaini-hatim
Auteur Rédacteur Secouriste Actif

Utilise cette directive dans gitlab.rb pour garder seulement les 7 derniers jours :

gitlab_rails['backup_keep_time'] = 604800
15/05/2026 à 21:35
rousseau-michel
Membre Actif
Avatar de rousseau-michel
rousseau-michel
Membre Actif

Le dossier /var/opt/gitlab/backups devient plein à craquer. Comment purger les vieux fichiers ?

15/05/2026 à 14:34
ajdaini-hatim
Auteur Rédacteur Secouriste Actif
Avatar de ajdaini-hatim
ajdaini-hatim
Auteur Rédacteur Secouriste Actif

Configure le backup_upload_connection dans le gitlab.rb. C'est fait pour ça.

15/05/2026 à 09:12
maurice76
Membre
Avatar de maurice76
maurice76
Membre

Quelqu'un sait comment envoyer le backup sur S3 automatiquement après la création ?

15/05/2026 à 04:46
vaillant-anais
Membre Actif
Avatar de vaillant-anais
vaillant-anais
Membre Actif

J'ai supprimé mes fichiers par erreur, merci pour le tuto, ça m'a sauvé la mise.

14/05/2026 à 22:58
ajdaini-hatim
Auteur Rédacteur Secouriste Actif
Avatar de ajdaini-hatim
ajdaini-hatim
Auteur Rédacteur Secouriste Actif

Oui, l'outil gère ça nativement, t'inquiète pas pour la cohérence des données.

14/05/2026 à 17:51
iaubry
Membre
Avatar de iaubry
iaubry
Membre

Est-ce que gitlab-backup gère le verrouillage des tables pendant le dump ? Pas envie d'avoir une base corrompue.

14/05/2026 à 11:34
ajdaini-hatim
Auteur Rédacteur Secouriste Actif
Avatar de ajdaini-hatim
ajdaini-hatim
Auteur Rédacteur Secouriste Actif

Regarde les logs : /var/log/gitlab/gitlab-rails/backup_json.log. Tu verras quel repo fait planter le dump.

14/05/2026 à 04:52
louise-morin
Membre Actif
Avatar de louise-morin
louise-morin
Membre Actif

Le processus de sauvegarde bloque sur Dumping repositories. Ça tourne dans le vide depuis 1 heure.

14/05/2026 à 00:29
ajdaini-hatim
Auteur Rédacteur Secouriste Actif
Avatar de ajdaini-hatim
ajdaini-hatim
Auteur Rédacteur Secouriste Actif

Pas d'outil natif, mais tu peux faire un tar -tf sur le fichier pour voir s'il est corrompu.

13/05/2026 à 19:34
kboucher
Membre
Avatar de kboucher
kboucher
Membre

Est-ce qu'il y a un moyen de vérifier l'intégrité de l'archive .tar juste après le backup ?

13/05/2026 à 13:37
ajdaini-hatim
Auteur Rédacteur Secouriste Actif
Avatar de ajdaini-hatim
ajdaini-hatim
Auteur Rédacteur Secouriste Actif

Bah oui, c'est écrit dans l'article : la version doit être identique. La structure de la DB change à chaque release.

13/05/2026 à 09:14
paris-christophe
Membre Actif
Avatar de paris-christophe
paris-christophe
Membre Actif

J'ai essayé de restaurer un backup sur une version plus récente, ça a tout pété. Plus jamais.

13/05/2026 à 03:40
ajdaini-hatim
Auteur Rédacteur Secouriste Actif
Avatar de ajdaini-hatim
ajdaini-hatim
Auteur Rédacteur Secouriste Actif

Édite ton /etc/gitlab/gitlab.rb. Modifie la ligne suivante pour pointer vers un autre volume :

gitlab_rails['backup_path'] = '/mnt/nfs/gitlab_backups'

Pense à faire un gitlab-ctl reconfigure après.

12/05/2026 à 21:45
ncoste
Membre
Avatar de ncoste
ncoste
Membre

Le fichier généré est énorme, plus de 50 Go. Le disque sature pendant la compression. On peut changer le répertoire de destination ?

12/05/2026 à 14:17
ajdaini-hatim
Auteur Rédacteur Secouriste Actif
Avatar de ajdaini-hatim
ajdaini-hatim
Auteur Rédacteur Secouriste Actif

Ajoute simplement cette ligne dans ta crontab root :

0 2 * * * /opt/gitlab/bin/gitlab-backup create CRON=1

Le flag CRON=1 désactive les prompts interactifs.

12/05/2026 à 07:19
mary-eugene
Membre
Avatar de mary-eugene
mary-eugene
Membre

Comment automatiser ça avec un cron job ? J'ai peur d'oublier de le faire manuellement chaque semaine.

12/05/2026 à 03:09

Merci pour l'astuce sur le gitlab-secrets.json, j'avais complètement oublié ce fichier critique à ne jamais perdre.

11/05/2026 à 22:43
ajdaini-hatim
Auteur Rédacteur Secouriste Actif
Avatar de ajdaini-hatim
ajdaini-hatim
Auteur Rédacteur Secouriste Actif

T'es probablement en train de mal passer la variable. Essaie comme ça :

sudo SKIP=db,uploads gitlab-backup create
11/05/2026 à 16:21
juliette-olivier
Membre Actif
Avatar de juliette-olivier
juliette-olivier
Membre Actif

J'ai testé la commande sudo gitlab-backup create SKIP=db,uploads mais ça me sort une erreur de syntaxe sur mon shell. Je suis sur Debian.

11/05/2026 à 08:33
ajdaini-hatim
Auteur Rédacteur Secouriste Actif
Avatar de ajdaini-hatim
ajdaini-hatim
Auteur Rédacteur Secouriste Actif

Vérifie les droits sur le répertoire /var/opt/gitlab/backups. Le user git doit avoir les droits en écriture dessus.

11/05/2026 à 01:34
elanglois
Membre
Avatar de elanglois
elanglois
Membre

Super guide, simple et efficace. Par contre, j'ai une erreur Permission denied quand je lance sudo gitlab-backup create. Une idée ?

10/05/2026 à 18:22

Rejoindre la communauté

Recevoir les derniers articles gratuitement en créant un compte !

S'inscrire