Files
2026-06-09 18:40:21 +02:00

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

  1. Démarrer : docker compose up -d, puis https://gitsave.example.com.
  2. Créer le compte admin au premier lancement.
  3. Ajouter une source (Providers > Add) : par ex. GitHub.com, en collant un PAT (Personal Access Token) avec scope repo.
  4. Sélectionner les dépôts à sauvegarder : soit tous, soit une sélection manuelle.
  5. Définir la fréquence : par défaut toutes les 6h, modifiable par repo.
  6. 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-data et 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-data au 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 que git fsck est clean.

📚 Ressources

Pages Liées