150 lines
7.1 KiB
Markdown
150 lines
7.1 KiB
Markdown
---
|
|
title: Pluton
|
|
created: 2026-06-07
|
|
updated: 2026-06-07
|
|
type: app
|
|
tags: [catalogue, backups, chiffrement, s3, go, mit]
|
|
confidence: high
|
|
contested: false
|
|
sources: [https://selfh.st/apps/?tag=Backups, https://github.com/plutonhq/pluton]
|
|
---
|
|
|
|
# 💾 Pluton
|
|
|
|
> **Une solution de backup client/serveur complète et chiffrée** : depuis un serveur Pluton central, planifiez et exécutez des backups sur tous vos endpoints vers du stockage local, S3 ou SFTP.
|
|
|
|
## 📋 Informations Générales
|
|
|
|
| Champ | Valeur |
|
|
| :--- | :--- |
|
|
| **Site web** | (GitHub) |
|
|
| **GitHub** | [plutonhq/pluton](https://github.com/plutonhq/pluton) |
|
|
| **License** | MIT |
|
|
| **Langage** | Go |
|
|
| **Étoiles GitHub** | 476 ⭐ |
|
|
| **Dernière MAJ** | 2026-06-07 |
|
|
| **Catégorie** | [[cat-backups|Backups]] |
|
|
|
|
## 📝 Description
|
|
|
|
**Pluton** se positionne comme une **solution de backup unifiée** : un **serveur central de coordination** + des **agents (clients) sur chaque machine à sauvegarder**. Contrairement à [[app-restic]] ou [[app-borg]] qui sont des outils « un client = un repository », Pluton orchestre tout depuis une seule interface, façon **Bacula / Veeam Community Edition** mais en moderne et léger.
|
|
|
|
Le serveur Pluton expose une **API REST + UI web** pour :
|
|
|
|
- ✅ **Définir des plans de backup** (sources, destination, rétention, fréquence)
|
|
- ✅ **Provisionner des agents** sur les endpoints (Linux, Windows, macOS, Docker)
|
|
- ✅ **Chiffrement de bout en bout** (AES-256, clé maîtresse configurable par serveur)
|
|
- ✅ **Stockage multi-destination** : disque local, NFS, **S3 / S3-compatible** (Backblaze B2, MinIO, Wasabi), SFTP
|
|
- ✅ **Restauration granulaire** (fichier unique, dossier, snapshot complet) depuis l'UI
|
|
- ✅ **Déduplication** côté client (chunks Rabin) avant upload → économie de bande passante
|
|
- ✅ **Compression** (zstd) avant chiffrement
|
|
- ✅ **Alertes** : échec, espace disque faible, dernière exécution trop ancienne
|
|
- ✅ **API HTTP** pour intégration (n8n, scripts maison)
|
|
- ✅ **Rétention GFS** (Grandfather-Father-Son) configurable
|
|
- ✅ **Multi-utilisateurs** avec rôles (admin / opérateur / lecture seule)
|
|
|
|
**Public cible** : admins qui gèrent **plusieurs machines / NAS / VPS** et veulent un **point central de supervision** des backups, sans payer Veeam / Bacula Enterprise. C'est la philosophie « Veeam gratuit et self-hosted ».
|
|
|
|
## 🚀 Installation
|
|
|
|
### Docker Compose (serveur + client local)
|
|
|
|
```yaml
|
|
# docker-compose.yml
|
|
version: '3.8'
|
|
services:
|
|
pluton-server:
|
|
image: ghcr.io/plutonhq/pluton:latest
|
|
container_name: pluton-server
|
|
restart: unless-stopped
|
|
ports:
|
|
- "8443:8443" # UI + API
|
|
volumes:
|
|
- pluton-data:/var/lib/pluton
|
|
- pluton-config:/etc/pluton
|
|
environment:
|
|
- PLUTON_ADMIN_USER=admin
|
|
- PLUTON_ADMIN_PASSWORD=changeme
|
|
labels:
|
|
- "traefik.enable=true"
|
|
- "traefik.http.routers.pluton.rule=Host(`pluton.example.com`)"
|
|
- "traefik.http.routers.pluton.entrypoints=websecure"
|
|
- "traefik.http.routers.pluton.tls.certresolver=letsencrypt"
|
|
|
|
pluton-agent:
|
|
image: ghcr.io/plutonhq/pluton-agent:latest
|
|
container_name: pluton-agent
|
|
restart: unless-stopped
|
|
network_mode: host # pour accéder aux volumes Docker locaux
|
|
volumes:
|
|
- /var/lib/docker/volumes:/docker_volumes:ro
|
|
- /etc/pluton-agent:/etc/pluton-agent
|
|
environment:
|
|
- PLUTON_SERVER=https://pluton.example.com:8443
|
|
- PLUTON_AGENT_ID=nas01
|
|
|
|
volumes:
|
|
pluton-data:
|
|
pluton-config:
|
|
```
|
|
|
|
## ⚙️ Configuration Initiale
|
|
|
|
1. **Démarrer le serveur** : `docker compose up -d pluton-server`, puis accéder à `https://pluton.example.com:8443`.
|
|
2. **Créer le compte admin** (premier lancement) et changer le mot de passe par défaut.
|
|
3. **Configurer une destination** (Storage > New) : par ex. un bucket B2, en saisissant la clé d'accès, le secret et le endpoint S3.
|
|
4. **Installer un agent** sur chaque machine à sauvegarder : récupérer le **token d'enregistrement** depuis l'UI (Agents > Add) et le coller dans la config de l'agent local.
|
|
5. **Créer un plan de backup** (Plans > New) : source = `/docker_volumes` (ou `/home`, `/etc`), destination = bucket B2, fréquence = quotidien 03:00, rétention = 7 daily / 4 weekly / 6 monthly.
|
|
6. **Vérifier le premier run** : onglet « History » doit montrer un premier snapshot complet dans la nuit ; tester une restauration d'un fichier via l'UI pour valider.
|
|
|
|
## 🔄 Alternatives
|
|
|
|
### Open Source
|
|
- [[app-restic]] + [[app-backrest]] — Restic + UI web d'orchestration, plus modulaire.
|
|
- [[app-borg]] + [[app-borg-ui]] — Idem côté Borg.
|
|
- [[app-kopia]] + [[app-kopia-ui]] — Kopia a une UI intégrée.
|
|
- **Bacula Community** — La référence « enterprise open source », beaucoup plus complexe.
|
|
- **Bareos** — Fork communautaire de Bacula, même philosophie.
|
|
- **Duplicati** — Plus simple, mono-machine.
|
|
|
|
### Comparaison Pluton vs autres
|
|
|
|
| Critère | Pluton | Restic+Backrest | Bacula | Duplicati |
|
|
| :--- | :--- | :--- | :--- | :--- |
|
|
| UI web | ✅ | ✅ | ✅ (lourde) | ✅ |
|
|
| Chiffrement E2E | ✅ | ✅ | ✅ | ✅ |
|
|
| Déduplication | ✅ (client) | ✅ (client) | ✅ | ✅ |
|
|
| Multi-endpoints | ✅ (natif) | Manuel | ✅ (natif) | ❌ |
|
|
| Rétention GFS | ✅ | Manuel | ✅ | Basique |
|
|
| Léger | Moyen | Léger | Lourd | Moyen |
|
|
| Complexité setup | Moyenne | Faible | Élevée | Faible |
|
|
|
|
**Verdict** : Pluton est un **excellent compromis** pour qui veut **orchestrer des backups multi-machines** sans la complexité de Bacula. Pour un usage mono-machine, [[app-restic]] + [[app-backrest]] reste plus simple.
|
|
|
|
### Propriétaires
|
|
- **Veeam Community Edition** — gratuit pour <10 VM, mais propriétaire.
|
|
- **Acronis Cyber Protect Home Office** — propriétaire, grand public.
|
|
- **Backblaze Personal** — propriétaire, 1 poste.
|
|
|
|
## 🔐 Sécurité
|
|
|
|
- **Règle 3-2-1** : Pluton gère **multi-destinations** nativement, vous pouvez envoyer le même plan vers un NAS local ET un S3 — c'est exactement la règle 3-2-1 appliquée (cf. [[strategie-backup-321]]).
|
|
- **Chiffrement E2E** : tout est chiffré côté agent avant upload. Le serveur Pluton lui-même ne stocke pas de clé de déchiffrement par défaut (mode zero-knowledge), ce qui protège vos données même si le serveur est compromis.
|
|
- **Clé hors-ligne** : la clé maîtresse de chiffrement doit être exportée et stockée sur un support **hors-ligne** (USB chiffré LUKS, papier dans un coffre) — sans elle, aucun snapshot n'est déchiffrable.
|
|
- **Test de restauration** : Pluton a un bouton « Test restore » dans l'UI — faites-le au moins une fois par trimestre sur une VM jetable pour valider l'intégrité, et mesurez le **RTO** (temps de restauration) attendu.
|
|
|
|
## 📚 Ressources
|
|
|
|
- [GitHub plutonhq/pluton](https://github.com/plutonhq/pluton)
|
|
- [Documentation](https://github.com/plutonhq/pluton#readme)
|
|
- [Démo / screenshots](https://github.com/plutonhq/pluton#screenshots)
|
|
|
|
## Pages Liées
|
|
- [[cat-backups]] — Catégorie Backups
|
|
- [[strategie-backup-321]] — Règle 3-2-1
|
|
- [[app-restic]] — Alternative Restic
|
|
- [[app-borg]] — Alternative Borg
|
|
- [[app-kopia]] — Alternative Kopia
|
|
- [[app-portainer]] — Gestion conteneurs
|
|
- [[securisation-home-lab]] — Bonnes pratiques
|