From fa78f80d7350678543c450d8039092a0e2bfa5e8 Mon Sep 17 00:00:00 2001 From: BeauTroll <-> Date: Tue, 16 Dec 2025 08:15:17 +0100 Subject: [PATCH] Export environment variables in scripts to fix passphrase prompts MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Add 'set -a' and 'set +a' around 'source .env' in healthcheck.sh and restore.sh - Ensures environment variables are exported to child processes (borg, borgmatic) - Fixes issue where scripts would prompt for BORG_PASSPHRASE despite .env being loaded - Update TODO.md: mark completed items, improve formatting Scripts updated: - scripts/healthcheck.sh: Export vars before calling borgmatic commands - scripts/restore.sh: Export vars before calling borg commands đŸ€– Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 --- TODO.md | 19 ++++++++++--------- scripts/healthcheck.sh | 6 +++++- scripts/restore.sh | 6 +++++- 3 files changed, 20 insertions(+), 11 deletions(-) diff --git a/TODO.md b/TODO.md index e69b723..b76f9b4 100644 --- a/TODO.md +++ b/TODO.md @@ -2,15 +2,12 @@ ## PrioritĂ© haute -- [ ] Configurer le repository Borg rĂ©el (local ou distant) -- [ ] Renseigner les vraies valeurs dans `/etc/borgmatic/.env` - [ ] Tester le premier backup complet - [ ] VĂ©rifier que les notifications ntfy fonctionnent - [ ] Documenter la passphrase et sauvegarder la clĂ© Borg ## PrioritĂ© moyenne -- [ ] Configurer un backup du repository Borg lui-mĂȘme (offsite) - [ ] Mettre en place un monitoring externe (healthchecks.io ou similaire) - [ ] Ajouter des hooks PostgreSQL/MySQL si nĂ©cessaire - [ ] Configurer des alertes en cas d'Ă©chec de backup @@ -55,7 +52,7 @@ ### Documentation -- [ ] VidĂ©o tutoriel pour la restauration +- [ ] Utiliser les commandes make dans la documentation - [ ] Runbook pour les situations d'urgence - [ ] Documentation de l'architecture de backup - [ ] Guide de migration vers nouveau serveur @@ -81,17 +78,19 @@ Certains services pourraient nĂ©cessiter des stratĂ©gies de backup spĂ©cifiques ### Optimisations d'exclusion Ajouter ces exclusions si nĂ©cessaire : + ```yaml -- '*/venv/*' -- '*/env/*' -- '*/.git/objects/*' # Si backup de repos Git -- '*/docker/overlay2/*' -- '*/docker/volumes/*' # DĂ©jĂ  gĂ©rĂ© par les apps +- "*/venv/*" +- "*/env/*" +- "*/.git/objects/*" # Si backup de repos Git +- "*/docker/overlay2/*" +- "*/docker/volumes/*" # DĂ©jĂ  gĂ©rĂ© par les apps ``` ### Backup offsite ConsidĂ©rer : + - BorgBase (service cloud spĂ©cialisĂ© Borg) - Serveur distant dĂ©diĂ© - Stockage cloud chiffrĂ© (S3, Backblaze B2) @@ -100,10 +99,12 @@ ConsidĂ©rer : ### Rotation et rĂ©tention Configuration actuelle : + - 7 daily (1 semaine) - 4 weekly (1 mois) - 6 monthly (6 mois) ConsidĂ©rer : + - Ajouter `keep_yearly: 2` pour archives annuelles - Ajuster selon l'espace disque disponible diff --git a/scripts/healthcheck.sh b/scripts/healthcheck.sh index 8fdf65a..574cf0d 100755 --- a/scripts/healthcheck.sh +++ b/scripts/healthcheck.sh @@ -13,11 +13,15 @@ YELLOW='\033[1;33m' BLUE='\033[0;34m' NC='\033[0m' -# Charger les variables d'environnement +# Charger et exporter les variables d'environnement if [ -f /etc/borgmatic/.env ]; then + set -a source /etc/borgmatic/.env + set +a elif [ -f .env ]; then + set -a source .env + set +a fi ERRORS=0 diff --git a/scripts/restore.sh b/scripts/restore.sh index 16d8001..338c98c 100755 --- a/scripts/restore.sh +++ b/scripts/restore.sh @@ -13,11 +13,15 @@ YELLOW='\033[1;33m' BLUE='\033[0;34m' NC='\033[0m' -# Charger les variables d'environnement +# Charger et exporter les variables d'environnement if [ -f /etc/borgmatic/.env ]; then + set -a source /etc/borgmatic/.env + set +a elif [ -f .env ]; then + set -a source .env + set +a else echo -e "${RED}❌ Fichier .env non trouvĂ©${NC}" exit 1