Backup des Bases de Données
1. Quoi ? — Definition et contexte
Section intitulée « 1. Quoi ? — Definition et contexte »Chaque nuit a 3h du matin, un script sauvegarde les trois bases de donnees PostgreSQL de l’infrastructure, le filestore Odoo, la cle de chiffrement N8N et le repertoire de donnees de l’agent Hermes vers Google Drive. Si quelque chose echoue, une alerte part immediatement via le Notification Hub.
Ce qui est sauvegarde
Section intitulée « Ce qui est sauvegarde »| Donnee | Source | Taille typique |
|---|---|---|
| Base N8N | PostgreSQL n8n-stack | ~500 MB |
Base Odoo (guig_db) | PostgreSQL odoo-stack | ~200 MB |
| Base TimeTrackr | PostgreSQL timetrackr-stack | ~10 MB |
| Filestore Odoo | /var/lib/odoo/filestore/ | ~1 GB |
| Cle N8N | N8N_ENCRYPTION_KEY | Quelques octets |
| Donnees Hermes | ai-stack/hermes/data/ | ~8 MB |
L’archive Hermes contient la configuration, le system prompt, les sessions, les skills et la base de memoire Mnemosyne. Sont exclus les credentials (OAuth Codex, OAuth Google, credentials Git) et tout ce qui est regenerable — venv Mnemosyne, caches de modeles, binaires de post-install. Ces exclusions font tomber l’archive de 58 MB a 8,2 MB.
2. Pourquoi ? — Enjeux et motivations
Section intitulée « 2. Pourquoi ? — Enjeux et motivations »Problemes resolus
Section intitulée « Problemes resolus »| Probleme | Sans backup auto | Avec backup auto |
|---|---|---|
| Perte de donnees | Corruption DB = tout perdu | Restauration depuis GDrive |
| Oubli de backup | ”Ca fait combien de temps ?” | Cron quotidien 3h00 |
| Pas de retention | Disque local plein | Rotation locale 7j, GDrive 30j |
| Echec silencieux | Backup echoue, personne ne sait | Alerte Telegram immediate |
3. Comment ? — Mise en oeuvre technique
Section intitulée « 3. Comment ? — Mise en oeuvre technique »Architecture
Section intitulée « Architecture »Le script backup-databases.sh
Section intitulée « Le script backup-databases.sh »Le script est declenche par crontab a 3h00 (0 3 * * *). Il execute dans l’ordre :
- Dump PostgreSQL —
pg_dumppour chaque base viadocker exec - Compression — gzip des dumps
- Copie filestore — Archive tar du filestore Odoo
- Export cle N8N — Extraction de
N8N_ENCRYPTION_KEYdepuis les variables d’environnement - Archive Hermes — tar du repertoire de donnees de l’agent, avec exclusions des credentials et des caches
- Upload GDrive — rclone copy vers le dossier distant
- Rotation locale — Suppression des fichiers de plus de 7 jours
- Rotation GDrive — Suppression des fichiers de plus de 30 jours
Si une etape echoue, le script continue les autres et envoie une notification d’erreur au Notification Hub en fin d’execution.
Politique de retention
Section intitulée « Politique de retention »| Stockage | Retention | Rotation |
|---|---|---|
Local (/backups/) | 7 jours | Script quotidien |
| Google Drive | 30 jours | rclone delete --min-age 30d |
Verification
Section intitulée « Verification »# Voir les derniers backups locauxls -lh /backups/
# Voir les logstail -20 /var/log/backup-databases.log
# Verifier le croncrontab -l | grep backup4. Et si ? — Perspectives et limites
Section intitulée « 4. Et si ? — Perspectives et limites »Limites actuelles
Section intitulée « Limites actuelles »| Limite | Impact | Mitigation |
|---|---|---|
| Pas de test de restauration | On decouvre les problemes au pire moment | Test mensuel prevu |
| GDrive single point | Si GDrive down, pas de backup distant | Ajouter un 2e provider (S3) |
| Pas de backup incremental | Full dump chaque nuit | Acceptable pour les volumes actuels |
Scenarios d’evolution
Section intitulée « Scenarios d’evolution »Si volume de donnees augmente :
- Passer aux backups incrementaux (WAL archiving PostgreSQL)
- Compresser avec zstd au lieu de gzip (plus rapide, meilleur ratio)
Si besoin de restauration rapide :
- Script de restore automatise
- Test de restauration automatique hebdomadaire dans un conteneur ephemere
Pages liees
Section intitulée « Pages liees »Infrastructure
Section intitulée « Infrastructure »- Architecture VPS — Vue d’ensemble des stacks
- N8N en mode Queue — Base N8N sauvegardee
- Odoo 18 sur Docker — Base Odoo sauvegardee
- Hermes Agent — Repertoire de donnees sauvegarde
Workflows
Section intitulée « Workflows »- Notification Hub — Alertes en cas d’echec
- N8N Export GitHub — Backup complementaire des workflows