From b215d8c325e34fa1ca5754f288d1953e4062b377 Mon Sep 17 00:00:00 2001 From: BeauTroll <-> Date: Tue, 16 Dec 2025 05:54:49 +0100 Subject: [PATCH] add config validation support --- Makefile | 2 +- QUICKSTART.md | 47 +++++++++++++++++++++++++++++++++++++---------- README.md | 30 ++++++++++++++++++++++++++---- 3 files changed, 64 insertions(+), 15 deletions(-) diff --git a/Makefile b/Makefile index 340be3c..d26ac4b 100644 --- a/Makefile +++ b/Makefile @@ -21,7 +21,7 @@ install: ## Installe Borgmatic et configure le système test-config: ## Valide la configuration Borgmatic @echo "$(BLUE)Validation de la configuration...$(NC)" - @borgmatic config validate + @sudo borgmatic config validate test-notifications: ## Teste les notifications ntfy @echo "$(BLUE)Test des notifications ntfy...$(NC)" diff --git a/QUICKSTART.md b/QUICKSTART.md index 50520ac..a2b73af 100644 --- a/QUICKSTART.md +++ b/QUICKSTART.md @@ -61,19 +61,30 @@ borg key export /path/to/repo backup-key.txt ## Tests ```bash -# 1. Tester les notifications +# 1. Valider la configuration +sudo borgmatic config validate + +# 2. Tester les notifications ./scripts/test-notifications.sh -# 2. Vérifier la santé du système +# 3. Vérifier la santé du système sudo ./scripts/healthcheck.sh -# 3. Test à vide (dry-run) +# 4. Test à vide (dry-run) sudo borgmatic --dry-run --verbosity 2 -# 4. Premier backup réel +# 5. Premier backup réel sudo borgmatic --verbosity 1 ``` +### Explications des commandes de test + +- **`borgmatic config validate`** : Vérifie la syntaxe YAML et la structure de config.yaml +- **`test-notifications.sh`** : Envoie des notifications de test via ntfy +- **`healthcheck.sh`** : Vérifie l'installation, la config, le timer, le repository +- **`--dry-run`** : Simule un backup complet sans rien modifier (teste la connexion au repo) +- **Sans `--dry-run`** : Exécute un vrai backup + ## Vérifier le timer ```bash @@ -140,19 +151,35 @@ borgmatic list # Devrait afficher vos anciennes archives ## En cas de problème ```bash -# Vérifier la santé +# 1. Valider d'abord la configuration +sudo borgmatic config validate + +# 2. Vérifier la santé du système sudo ./scripts/healthcheck.sh -# Voir les logs +# 3. Voir les logs journalctl -u borgmatic.service -n 50 -# Tester la configuration (avec dry-run) -borgmatic --dry-run +# 4. Tester avec dry-run +sudo borgmatic --dry-run --verbosity 2 -# Mode verbeux -sudo borgmatic --verbosity 2 +# 5. Mode debug (très verbeux) +sudo borgmatic --verbosity 2 --list --log-file-verbosity 2 ``` +### Erreurs courantes + +**`repositories' is a required property`** +- Vérifiez que `repositories:` est présent dans config.yaml +- Vérifiez que `BORG_REPO` est défini dans .env + +**`Additional properties are not allowed`** +- Vous utilisez une vieille structure de config pour Borgmatic 1.x +- Mettez à jour vers Borgmatic 2.0+ : `sudo pipx install borgmatic --force` + +**`command not found: borgmatic`** +- Créez les liens symboliques : `sudo ln -sf /root/.local/bin/borgmatic /usr/local/bin/borgmatic` + ## Support Consultez le [README.md](README.md) pour plus de détails. diff --git a/README.md b/README.md index 1800f0f..d076375 100644 --- a/README.md +++ b/README.md @@ -152,13 +152,18 @@ borg key export /path/to/repo backup-key.txt ### Tester la configuration ```bash -# Valider la configuration (avec dry-run) -borgmatic --dry-run --verbosity 2 +# 1. Valider la syntaxe du fichier de configuration +sudo borgmatic config validate -# Lister les fichiers qui seront sauvegardés -borgmatic list --json +# 2. Tester sans exécuter de backup (dry-run) +sudo borgmatic --dry-run --verbosity 2 + +# 3. Lister les fichiers qui seront sauvegardés +sudo borgmatic list --json ``` +**Note :** `borgmatic config validate` vérifie uniquement la syntaxe YAML et la structure du fichier. Le dry-run teste la connexion au repository et simule un backup complet. + ### Exécuter un backup manuel ```bash @@ -270,6 +275,23 @@ Testez manuellement les notifications : ## Troubleshooting +### Valider la configuration + +Avant tout, vérifiez que votre configuration est valide : + +```bash +# Valider la syntaxe +sudo borgmatic config validate + +# Si erreur, vérifier les détails +sudo borgmatic config validate --verbosity 2 +``` + +Erreurs courantes : +- `repositories' is a required property` : Manque la section repositories +- `Additional properties are not allowed` : Propriété invalide pour cette version +- Erreurs YAML : Vérifier l'indentation (utiliser des espaces, pas des tabs) + ### Le backup ne démarre pas ```bash