Documentation Index
Fetch the complete documentation index at: https://snakysec.mintlify.app/llms.txt
Use this file to discover all available pages before exploring further.
Activer les backups DR en pré-prod (stack Docker locale)
Topologie
| Élément | Pré-prod actuelle | Prod cible (Q3+) |
|---|---|---|
| Stack Docker | Mac/Windows du founder | VPS dédié |
| Vault | persistent file storage (équivalent prod) | Shamir 5/3, bare-metal |
| Postgres | docker volume postgres-data | docker volume sur VPS |
| Backups vers OVH/Scaleway | dormants par défaut | actifs H24 |
Pourquoi les backups sont dormants par défaut en pré-prod
docker compose lance mssp-dr-runner + mssp-cron (Ofelia) dès make preprod, mais chaque script de backup commence par :
scripts/dr/lib/common.sh) lit DR_BACKUPS_ENABLED depuis l’env. Si non set ou false → le script log « DR backups disabled » et exit 0. Ofelia voit succès, pas d’alerte Sentry.
Conséquence : tu peux booter la stack tout le temps, faire du dev, sans spammer OVH/Scaleway avec des données de dev.
Activer les backups (test ou prod réelle)
1. Renseigner les secrets DR dans Vault
Lemssp/dr path est seedé au first-init Vault avec pgbackrest_repo_cipher_pass et restic_password auto-générés (32 bytes hex), mais les keys S3 sont en REPLACE_ME. Walkthrough interactif :
- OVH : Public Cloud → Object Storage → Users → Create S3 credentials
- Scaleway : Identity Access Management → API keys → Create API key with S3 access
2. Provisionner les buckets (Object Lock + Versioning)
mssp-backup-ovh + mssp-backup-scw avec Object Lock COMPLIANCE 90j (cf. 04-object-lock-procedures.md).
3. Activer le kill-switch
4. Tester un backup manuellement (sans attendre le cron)
Contraintes opérateur
Ton PC doit être allumé pendant les fenêtres cron
| Job | Schedule UTC | Schedule Paris | Asset |
|---|---|---|---|
| pgbackrest full | Dim 02:00 | Dim 04:00 (été) / 03:00 (hiver) | Postgres |
| pgbackrest diff | Lun-Sam 03:00 | Lun-Sam 05:00 (été) / 04:00 (hiver) | Postgres |
| vault-snapshot | Quotidien 04:00 | 06:00 / 05:00 | Vault |
| artifacts-restic | Quotidien 05:00 | 07:00 / 06:00 | artifacts/ |
| dns-zone-export | 1er du mois 06:00 | 08:00 / 07:00 | DNS OVH |
| dr-verify | Quotidien 06:30 | 08:30 / 07:30 | integrity check |
- Met ton PC en mode “wake on schedule” via Windows Task Scheduler ou macOS Energy Saver schedule (option “Start up at…”).
- OU laisse l’app + Docker tourner H24 (consommation : ~30W idle, ~7€/mois si tu fermes l’écran).
- OU bascule sur prod VPS dès qu’il est dispo (cible Q3 2026).
Le port mssp-vault doit être joignable depuis mssp-dr-runner
Vérifié par défaut grâce à mssp-net (network bridge interne). Si le réseau Docker est cassé, vérifier :
Désactiver (mode dev sans push)
Monitorer la santé des backups
Logs Ofelia
Sentry monitor check-ins
Chaque script appellesentry_check_in <slug> <status> au début et à la fin. Dans Sentry → Insights → Crons :
dr-postgres-full: doit passer chaque dimanchedr-postgres-diff: doit passer lun-samdr-vault-snapshot: doit passer chaque jourdr-artifacts-backup: idemdr-dns-zone-export: doit passer le 1er du mois
docker logs mssp-dr-runner | grep <job>.
Vérification d’intégrité post-backup
dr-verify.sh tourne quotidien à 06:30 UTC. Il :
- Compte les snapshots OVH + Scaleway
- Vérifie que le dernier est < 30h
- Confirme que les checksums restic sont OK
- Sentry monitor
dr-verify→ vert si OK
Désactivation totale (pas de cron du tout)
Sortircompose/dr.yml du stack pré-prod :
DR_BACKUPS_ENABLED=false couvre 99% des cas en gardant les containers prêts.
Migration vers prod VPS (futur Q3+)
Quand un VPS sera engagé :- Provisionner Postgres + Vault + dr-runner + Ofelia sur le VPS via
make prod DR_BACKUPS_ENABLED=truedans le .env du VPS- Décommissionner les jobs locaux (kill-switch off en local)
- Surveiller les Sentry monitors pendant 30j pour s’assurer que les jobs partent bien depuis le VPS
pipelines/platform-deploy.yml — le job platform:deploy a été commenté en attendant. Décommenter + configurer 4 vars CI (VPS_SSH_KEY, VPS_HOST, VPS_USER, VPS_DEPLOY_DIR).