Files
agence66-borgmatic/TODO.md
BeauTroll fa78f80d73 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>
2025-12-16 08:15:17 +01:00

111 lines
3.1 KiB
Markdown

# TODO - Améliorations futures
## Priorité haute
- [ ] Tester le premier backup complet
- [ ] Vérifier que les notifications ntfy fonctionnent
- [ ] Documenter la passphrase et sauvegarder la clé Borg
## Priorité moyenne
- [ ] 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
- [ ] Tester une restauration complète sur un système de test
## Améliorations possibles
### Monitoring et alertes
- [ ] Intégration avec healthchecks.io pour monitoring externe
- [ ] Dashboard Grafana pour visualiser l'historique des backups
- [ ] Alertes par email en plus de ntfy
- [ ] Métriques Prometheus pour le monitoring
### Sécurité
- [ ] Rotation automatique des clés de chiffrement
- [ ] Audit des permissions des fichiers de configuration
- [ ] Backup de la clé Borg dans un gestionnaire de secrets (Vaultwarden)
- [ ] Authentification SSH avec clés dédiées
### Performance
- [ ] Optimiser les patterns d'exclusion
- [ ] Ajouter des exclusions pour les caches Docker
- [ ] Tester différents algorithmes de compression
- [ ] Parallélisation des backups si plusieurs destinations
### Backups de bases de données
- [ ] Hook pre-backup pour PostgreSQL (si Gitea/autres utilisent PG)
- [ ] Hook pre-backup pour MySQL/MariaDB (si utilisé)
- [ ] Hook pre-backup pour dump des conteneurs Docker
- [ ] Backup des volumes Docker critiques
### Restauration
- [ ] Documenter la procédure de disaster recovery complète
- [ ] Script de restauration automatisée sur nouveau serveur
- [ ] Tester régulièrement la restauration (tous les 3 mois)
- [ ] Documenter la restauration sélective par service
### Documentation
- [ ] 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
### Testing
- [ ] Tests automatisés de la configuration
- [ ] Simulation d'échec et vérification des alertes
- [ ] Test de restauration automatisé
- [ ] CI/CD pour valider les modifications de config
## Notes
### Services à considérer pour backup séparé
Certains services pourraient nécessiter des stratégies de backup spécifiques :
- **Nextcloud** : dump de la base de données avant backup
- **Mailcow** : backup des emails et configuration
- **Gitea** : dump de la base de données Git
- **Vaultwarden** : backup critique à vérifier régulièrement
### 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
```
### Backup offsite
Considérer :
- BorgBase (service cloud spécialisé Borg)
- Serveur distant dédié
- Stockage cloud chiffré (S3, Backblaze B2)
- Rclone pour copier vers le cloud après backup Borg
### 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