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
- [ ] 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

View File

@@ -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

View File

@@ -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