Initial vault setup
This commit is contained in:
@@ -0,0 +1,152 @@
|
||||
---
|
||||
title: Repliqate
|
||||
created: 2026-06-07
|
||||
updated: 2026-06-07
|
||||
type: app
|
||||
tags: [catalogue, backups, docker, volumes, go, mit]
|
||||
confidence: high
|
||||
contested: false
|
||||
sources: [https://selfh.st/apps/?tag=Backups, https://github.com/lminlone/repliqate]
|
||||
---
|
||||
|
||||
# 💾 Repliqate
|
||||
|
||||
> **Un backup Docker-native et modulaire** : Repliqate surveille vos conteneurs et sauvegarde automatiquement volumes et bases de données vers n'importe quel backend compatible.
|
||||
|
||||
## 📋 Informations Générales
|
||||
|
||||
| Champ | Valeur |
|
||||
| :--- | :--- |
|
||||
| **Site web** | (GitHub) |
|
||||
| **GitHub** | [lminlone/repliqate](https://github.com/lminlone/repliqate) |
|
||||
| **License** | MIT |
|
||||
| **Langage** | Go |
|
||||
| **Étoiles GitHub** | 248 ⭐ |
|
||||
| **Dernière MAJ** | 2026-06-07 |
|
||||
| **Catégorie** | [[cat-backups|Backups]] |
|
||||
|
||||
## 📝 Description
|
||||
|
||||
**Repliqate** est un **orchestrateur de backups spécialisé Docker**. Le parti pris : « un binaire léger qui sait parler à Docker, sauvegarder les volumes, dumper les bases de données, et pousser le tout vers un backend configurable ». Pas d'UI web à rallonge, pas de base de données centrale : juste un fichier de config et un cron.
|
||||
|
||||
L'idée derrière le nom (« replicate » → « repliqate ») est de pouvoir **répliquer** l'état d'un environnement Docker vers un autre (migrations, DR, staging) :
|
||||
|
||||
- ✅ **Auto-découverte** : scanne les conteneurs Docker actifs et leurs volumes
|
||||
- ✅ **Backups de volumes Docker** via `docker volume` snapshot
|
||||
- ✅ **Dump automatique** des bases Postgres / MySQL / MariaDB (avant le tar du volume)
|
||||
- ✅ **Pré-scripts et post-scripts** par conteneur (`pre-backup`, `post-backup` hooks)
|
||||
- ✅ **Backends multiples** : local, S3 / S3-compatible (B2, MinIO), SFTP, WebDAV
|
||||
- ✅ **Chiffrement** optionnel côté client (AES-256) avant upload
|
||||
- ✅ **Compression** zstd configurable
|
||||
- ✅ **Rétention** configurable par job (nombre de snapshots à garder)
|
||||
- ✅ **Notifications** : webhook Discord / Slack / Telegram / Ntfy
|
||||
- ✅ **CLI** + mode `daemon` (avec scheduler intégré)
|
||||
- ✅ **Léger** : binaire Go statique, ~15 Mo, conteneur ~25 Mo
|
||||
|
||||
**Public cible** : utilisateurs de **stacks Docker** (Docker Compose, Portainer, Swarm léger) qui veulent un **backup « set-and-forget »** de tous leurs conteneurs + volumes + BDD, sans avoir à scripter un cron + docker exec par service.
|
||||
|
||||
## 🚀 Installation
|
||||
|
||||
### Docker Compose (mode daemon)
|
||||
|
||||
```yaml
|
||||
# docker-compose.yml
|
||||
version: '3.8'
|
||||
services:
|
||||
repliqate:
|
||||
image: ghcr.io/lminlone/repliqate:latest
|
||||
container_name: repliqate
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
- /var/run/docker.sock:/var/run/docker.sock:ro # Accès à l'API Docker
|
||||
- repliqate-config:/etc/repliqate
|
||||
- repliqate-cache:/var/cache/repliqate
|
||||
environment:
|
||||
- TZ=Europe/Paris
|
||||
- REPLIQATE_CONFIG=/etc/repliqate/config.yaml
|
||||
labels:
|
||||
- "traefik.enable=false" # Pas d'UI : notifications webhook only
|
||||
|
||||
volumes:
|
||||
repliqate-config:
|
||||
repliqate-cache:
|
||||
```
|
||||
|
||||
> ⚠️ Le montage du **socket Docker** donne à Repliqate un accès complet à votre hôte. C'est nécessaire pour découvrir les volumes, mais cela permet aussi à un bug applicatif d'impacter d'autres conteneurs. À n'accorder qu'à un outil de confiance (code auditable, version épinglée).
|
||||
|
||||
## ⚙️ Configuration Initiale
|
||||
|
||||
1. **Créer un fichier `config.yaml`** listant vos jobs (exemple minimal) :
|
||||
|
||||
```yaml
|
||||
jobs:
|
||||
- name: nextcloud-data
|
||||
type: docker-volume
|
||||
volume: nextcloud_data
|
||||
target: s3://myb2bucket/nextcloud
|
||||
schedule: "0 3 * * *"
|
||||
retention: 7
|
||||
- name: postgres-main
|
||||
type: database
|
||||
container: postgres
|
||||
database: appdb
|
||||
target: s3://myb2bucket/postgres
|
||||
schedule: "0 4 * * *"
|
||||
retention: 14
|
||||
```
|
||||
|
||||
2. **Démarrer** : `docker compose up -d`, puis `docker logs -f repliqate` pour voir le premier run.
|
||||
3. **Vérifier la découverte** : un dump du premier conteneur doit apparaître dans le bucket configuré en moins d'une minute.
|
||||
4. **Tester une restauration** : sur un conteneur de test, restaurer un volume et vérifier que l'application démarre proprement.
|
||||
5. **Programmer un test de DR** mensuel (cf. [[strategie-backup-321]]).
|
||||
6. **Alertes** : configurer le webhook de notification pour être prévenu en cas d'échec.
|
||||
|
||||
## 🔄 Alternatives
|
||||
|
||||
### Open Source
|
||||
- [[app-restic]] + script bash — DIY, très flexible, pas d'orchestration native.
|
||||
- [[app-borg]] + [[app-borg-ui]] — Borg orchestré par Borg UI.
|
||||
- [[app-kopia]] — Kopia sait introspecter les volumes Docker mais ne fait pas l'auto-découverte.
|
||||
- **Docker Volume Backup** ([offen/docker-volume-backup](https://github.com/offen/docker-volume-backup)) — le plus proche en philosophie, plus minimaliste.
|
||||
- **Tugtainer** — orchestrateur de backups Docker, autre alternative.
|
||||
- **AutoBackup de Portainer** — si vous utilisez Portainer, basique mais intégré.
|
||||
|
||||
### Comparaison Repliqate vs autres
|
||||
|
||||
| Critère | Repliqate | Docker Volume Backup | Tugtainer | Restic + script |
|
||||
| :--- | :--- | :--- | :--- | :--- |
|
||||
| Auto-découverte | ✅ | ❌ | ✅ | ❌ |
|
||||
| Dump BDD auto | ✅ (Postgres/MySQL) | ❌ (pre-hook) | ❌ | Via script |
|
||||
| UI | ❌ | ❌ | ✅ | ❌ |
|
||||
| Backends | Multi | Multi | Multi | Multi (restic) |
|
||||
| Hooks pre/post | ✅ | ✅ | ✅ | Scriptable |
|
||||
| Notifications | ✅ | ❌ | ✅ | À scripter |
|
||||
| Léger | ✅ | Très léger | Moyen | Léger |
|
||||
|
||||
**Verdict** : Repliqate est **un bon compromis** pour qui veut **orchestrer des backups Docker** sans réécrire un script par conteneur. Pour un cas mono-volume très simple, [[app-restic]] ou Docker Volume Backup suffisent.
|
||||
|
||||
### Propriétaires
|
||||
- **Portainer Business** — backup management intégré (version payante).
|
||||
- **CloudCasa** (Kubernetes) — hors scope mono-hôte.
|
||||
- **Veeam Agent for Linux** — propriétaire, plus orienté VM.
|
||||
|
||||
## 🔐 Sécurité
|
||||
|
||||
- **Règle 3-2-1** : Repliqate pousse nativement vers S3/SFTP — votre destination cloud est **la 2e copie hors site**. Pour la 3e copie, prévoyez un second backend (S3 d'un autre provider, par ex.). Voir [[strategie-backup-321]].
|
||||
- **Chiffrement** : activez l'option de chiffrement AES-256 côté client dans `config.yaml` si votre backend n'est pas déjà chiffré (Backblaze B2 chiffre au repos, mais un chiffrement E2E vous protège d'un admin B2 compromis).
|
||||
- **Socket Docker** : le montage de `/var/run/docker.sock` est un **privilège élevé** — combinez avec un compte Docker dédié + un réseau isolé. Voir [[securisation-home-lab]].
|
||||
- **Test de restauration** : automatisez un `docker run --rm -v restored:/data alpine ls` tous les mois pour valider qu'un snapshot est bien déchiffrable et exploitable.
|
||||
|
||||
## 📚 Ressources
|
||||
|
||||
- [GitHub lminlone/repliqate](https://github.com/lminlone/repliqate)
|
||||
- [Documentation](https://github.com/lminlone/repliqate#readme)
|
||||
|
||||
## Pages Liées
|
||||
- [[cat-backups]] — Catégorie Backups
|
||||
- [[strategie-backup-321]] — Règle 3-2-1
|
||||
- [[app-restic]] — Backup générique
|
||||
- [[app-borg]] — Alternative à Restic
|
||||
- [[app-kopia]] — Backup avec UI
|
||||
- [[app-portainer]] — Gestion conteneurs
|
||||
- [[securisation-home-lab]] — Bonnes pratiques
|
||||
Reference in New Issue
Block a user