6.1 KiB
title: GitSave created: 2026-06-07 updated: 2026-06-07 type: app tags: [catalogue, backups, git, github, gitlab, go, mit] confidence: high contested: false sources: [https://selfh.st/apps/?tag=Backups, https://github.com/TimWitzdam/GitSave]
💾 GitSave
Le backup de dépôts Git avec une UI web : planifiez la sauvegarde automatique de vos repos GitHub, GitLab ou Gitea et explorez-les depuis un navigateur.
📋 Informations Générales
| Champ | Valeur |
|---|---|
| Site web | (GitHub) |
| GitHub | TimWitzdam/GitSave |
| License | MIT |
| Langage | Go |
| Étoiles GitHub | 312 ⭐ |
| Dernière MAJ | 2026-06-07 |
| Catégorie | [[cat-backups |
📝 Description
GitSave est, comme app-git-sync, un miroir automatisé de dépôts Git — mais avec une UI web qui le distingue. Vous ajoutez vos dépôts, GitSave les clone (git clone --mirror) à intervalle régulier, et vous pouvez consulter la liste des miroirs, leur date de dernière synchro, leur taille, et déclencher un refresh manuel depuis le navigateur.
Cas d'usage typiques :
- ✅ Sauvegarder ses propres projets hébergés sur GitHub.com en local sur son NAS
- ✅ Archiver des dépôts externes qui pourraient disparaître (projets open source, wiki personnel, dotfiles d'un dev)
- ✅ Miroir d'une instance Gitea / GitLab self-hosted vers un autre serveur (DR)
- ✅ Clone initial automatique quand on ajoute un nouveau repo (pas besoin de cron manuel)
- ✅ UI web listant tous les repos backupés, leur état, leur dernière synchro
- ✅ Planification par repo (intervalle personnalisable, ou « on-demand only »)
- ✅ Providers supportés : GitHub, GitLab.com, GitLab self-hosted, Gitea, et tout ce qui parle Git+HTTP/SSH
- ✅ Authentification par token (PAT) ou clé SSH
- ✅ Binaire Go statique : déploiement trivial, conteneur léger (~20 Mo)
Public cible : utilisateurs qui veulent voir leurs backups Git sans aller fouiller dans un dossier de miroirs. La différence avec app-git-sync est essentiellement l'UI web et un peu plus de « features clés en main ».
🚀 Installation
Docker Compose
# docker-compose.yml
version: '3.8'
services:
gitsave:
image: ghcr.io/timwitzdam/gitsave:latest
container_name: gitsave
restart: unless-stopped
ports:
- "8080:8080" # UI web
volumes:
- gitsave-data:/data
- gitsave-config:/config
environment:
- TZ=Europe/Paris
- GITSAVE_SECRET_KEY=changez-moi
labels:
- "traefik.enable=true"
- "traefik.http.routers.gitsave.rule=Host(`gitsave.example.com`)"
- "traefik.http.routers.gitsave.entrypoints=websecure"
- "traefik.http.routers.gitsave.tls.certresolver=letsencrypt"
volumes:
gitsave-data:
gitsave-config:
⚙️ Configuration Initiale
- Démarrer :
docker compose up -d, puishttps://gitsave.example.com. - Créer le compte admin au premier lancement.
- Ajouter une source (Providers > Add) : par ex. GitHub.com, en collant un PAT (Personal Access Token) avec scope
repo. - Sélectionner les dépôts à sauvegarder : soit tous, soit une sélection manuelle.
- Définir la fréquence : par défaut toutes les 6h, modifiable par repo.
- Vérifier : la page d'accueil doit afficher les miroirs avec leur date de dernière synchro ; tester une synchro manuelle sur un repo pour valider.
🔄 Alternatives
Open Source
- app-git-sync — même usage, sans UI, plus minimaliste.
- Gitea Mirror — fonctionnalité native si vous avez Gitea.
- GitLab Pull Mirror — natif en EE.
- restic / borg sur les dossiers clonés — pour chiffrer et dédupliquer les miroirs une fois clonés.
- OneDev — plateforme DevOps avec mirror built-in.
Comparaison GitSave vs autres
| Critère | GitSave | Git-Sync | Gitea Mirror | onefetch |
|---|---|---|---|---|
| UI web | ✅ | ❌ | ✅ | ❌ (CLI) |
| Setup | Très simple | Simple | Moyen | Simple |
| Multi-provider | ✅ | ✅ | Gitea only | N/A |
| Planification | ✅ | ✅ | ✅ | Manuel |
| Notifications | Webhook | Webhook | UI | ❌ |
| Léger | ✅ | Très léger | Lourd | ✅ |
Verdict : GitSave est le choix par défaut si vous voulez une UI pour visualiser vos backups Git. Si vous êtes à l'aise avec un fichier YAML et que vous n'avez pas besoin de voir un dashboard, app-git-sync est plus léger.
Propriétaires
- GitHub Pro/Enterprise backup — pas de backup officiel, juste un export manuel.
- BackHub — service commercial de backup GitHub (cloud, hors self-hosted).
- GitLab Premium — mirror features intégrées.
🔐 Sécurité
- Règle 3-2-1 : GitSave ne fait qu'une copie locale de vos dépôts. Combinez avec app-restic / app-borg / app-kopia pour chiffrer le dossier
gitsave-dataet l'envoyer vers un S3 / B2 / SFTP distant. Voir strategie-backup-321. - Chiffrement : les miroirs sont stockés en clair sur disque (dépôts Git bare classiques). Si vos dépôts contiennent des secrets historiques (anciens tokens commités, etc.), chiffrez le volume
gitsave-dataau niveau OS, ou chiffrez via un backup par-dessus. - Tokens d'accès : stockez les PAT GitHub / GitLab dans les variables d'environnement ou le fichier de config de GitSave, pas en clair dans un compose versionné. Voir securisation-home-lab.
- Test de restauration : tous les trimestres, clonez un de vos miroirs (
git clone /data/repos/myrepo.git) sur une autre machine pour valider qu'il est cohérent et quegit fsckest clean.
📚 Ressources
Pages Liées
- cat-backups — Catégorie Backups
- strategie-backup-321 — Règle 3-2-1
- app-restic — Pour chiffrer les miroirs
- app-borg — Alternative à Restic
- app-kopia — Backup avec UI
- app-portainer — Gestion conteneurs
- securisation-home-lab — Bonnes pratiques