Export environment variables in scripts to fix passphrase prompts

- 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 <noreply@anthropic.com>
This commit is contained in:
BeauTroll
2025-12-16 08:15:17 +01:00
parent 24d3e7d914
commit fa78f80d73
3 changed files with 20 additions and 11 deletions

19
TODO.md
View File

@@ -2,15 +2,12 @@
## Priorité haute ## Priorité haute
- [ ] Configurer le repository Borg réel (local ou distant)
- [ ] Renseigner les vraies valeurs dans `/etc/borgmatic/.env`
- [ ] Tester le premier backup complet - [ ] Tester le premier backup complet
- [ ] Vérifier que les notifications ntfy fonctionnent - [ ] Vérifier que les notifications ntfy fonctionnent
- [ ] Documenter la passphrase et sauvegarder la clé Borg - [ ] Documenter la passphrase et sauvegarder la clé Borg
## Priorité moyenne ## Priorité moyenne
- [ ] Configurer un backup du repository Borg lui-même (offsite)
- [ ] Mettre en place un monitoring externe (healthchecks.io ou similaire) - [ ] Mettre en place un monitoring externe (healthchecks.io ou similaire)
- [ ] Ajouter des hooks PostgreSQL/MySQL si nécessaire - [ ] Ajouter des hooks PostgreSQL/MySQL si nécessaire
- [ ] Configurer des alertes en cas d'échec de backup - [ ] Configurer des alertes en cas d'échec de backup
@@ -55,7 +52,7 @@
### Documentation ### Documentation
- [ ] Vidéo tutoriel pour la restauration - [ ] Utiliser les commandes make dans la documentation
- [ ] Runbook pour les situations d'urgence - [ ] Runbook pour les situations d'urgence
- [ ] Documentation de l'architecture de backup - [ ] Documentation de l'architecture de backup
- [ ] Guide de migration vers nouveau serveur - [ ] 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 ### Optimisations d'exclusion
Ajouter ces exclusions si nécessaire : Ajouter ces exclusions si nécessaire :
```yaml ```yaml
- '*/venv/*' - "*/venv/*"
- '*/env/*' - "*/env/*"
- '*/.git/objects/*' # Si backup de repos Git - "*/.git/objects/*" # Si backup de repos Git
- '*/docker/overlay2/*' - "*/docker/overlay2/*"
- '*/docker/volumes/*' # Déjà géré par les apps - "*/docker/volumes/*" # Déjà géré par les apps
``` ```
### Backup offsite ### Backup offsite
Considérer : Considérer :
- BorgBase (service cloud spécialisé Borg) - BorgBase (service cloud spécialisé Borg)
- Serveur distant dédié - Serveur distant dédié
- Stockage cloud chiffré (S3, Backblaze B2) - Stockage cloud chiffré (S3, Backblaze B2)
@@ -100,10 +99,12 @@ Considérer :
### Rotation et rétention ### Rotation et rétention
Configuration actuelle : Configuration actuelle :
- 7 daily (1 semaine) - 7 daily (1 semaine)
- 4 weekly (1 mois) - 4 weekly (1 mois)
- 6 monthly (6 mois) - 6 monthly (6 mois)
Considérer : Considérer :
- Ajouter `keep_yearly: 2` pour archives annuelles - Ajouter `keep_yearly: 2` pour archives annuelles
- Ajuster selon l'espace disque disponible - Ajuster selon l'espace disque disponible

View File

@@ -13,11 +13,15 @@ YELLOW='\033[1;33m'
BLUE='\033[0;34m' BLUE='\033[0;34m'
NC='\033[0m' NC='\033[0m'
# Charger les variables d'environnement # Charger et exporter les variables d'environnement
if [ -f /etc/borgmatic/.env ]; then if [ -f /etc/borgmatic/.env ]; then
set -a
source /etc/borgmatic/.env source /etc/borgmatic/.env
set +a
elif [ -f .env ]; then elif [ -f .env ]; then
set -a
source .env source .env
set +a
fi fi
ERRORS=0 ERRORS=0

View File

@@ -13,11 +13,15 @@ YELLOW='\033[1;33m'
BLUE='\033[0;34m' BLUE='\033[0;34m'
NC='\033[0m' NC='\033[0m'
# Charger les variables d'environnement # Charger et exporter les variables d'environnement
if [ -f /etc/borgmatic/.env ]; then if [ -f /etc/borgmatic/.env ]; then
set -a
source /etc/borgmatic/.env source /etc/borgmatic/.env
set +a
elif [ -f .env ]; then elif [ -f .env ]; then
set -a
source .env source .env
set +a
else else
echo -e "${RED}❌ Fichier .env non trouvé${NC}" echo -e "${RED}❌ Fichier .env non trouvé${NC}"
exit 1 exit 1