Étape 8 : Opération
Objectif : le site survit à un ordinateur perdu, un serveur mort, une mauvaise mise à jour et un changement de machine, et personne n'a besoin de se souvenir comment faire.
Étapes
- Sauvegardes.
- Exécutez
scripts/backup.shchaque semaine, et avant tout travail risqué. Il empaquette la base de données, les uploads, chaque branche git et stash, ainsi que la mémoire de Claude. - Utilisez
--encryptavant que le zip ne quitte la machine, et conservez une copie hors de celle-ci. - En production : les sauvegardes quotidiennes de l'hébergeur, plus les dumps que les scripts de déploiement et de contenu génèrent.
- Exécutez
- Notez où tout se trouve dans le fichier
docs/reference/DISASTER_RECOVERY.mddu projet, section 0. Incluez le dossier des photos originales : il n'est pas dans git. - Exercice de restauration. Restaurez une fois par trimestre sur une machine de rechange ou un projet DDEV vierge, chronométrez-le, et consignez-le dans la §5. Une sauvegarde que vous n'avez jamais restaurée est un espoir, pas une sauvegarde.
- Identifiants : chaque secret a une ligne dans
CREDENTIALS_INVENTORY.md(nom, où il se trouve, qui l'a, date de rotation). Faites pivoter tout ce qu'un agent a vu. - Routines : vérifications hebdomadaires, mensuelles et annuelles, politique de mise à jour et alertes dans
docs/reference/OPERATIONS.md. Les mises à jour de plugins passent d'abord par la staging. - Plusieurs machines ? Suivez
references/multi-machine.md:docs/team/BRIDGE.mdcontient les rôles, les règles et le journal de passation ;scripts/workstation-doctor.shvérifie la parité ;scripts/make-state-bundle.shemporte la configuration ignorée par git, chiffrée.
Porte (cocher dans SITE_STATUS.md)
- Sauvegardes planifiées, avec une copie hors-machine
- Exercice de restauration effectué (date, durée)
- Routines de mise à jour et d'alerte rédigées dans
OPERATIONS.md
Leçons
- Le script de sauvegarde a un jour pointé vers le mauvais dossier mémoire de Claude. Les sessions s'exécutaient depuis le dossier parent, donc la mémoire se trouvait sous un chemin différent. Le script dérive le chemin mais accepte
CLAUDE_MEM=pour ce cas. - Une machine de build cloud avait une branche et des stashes qui n'existaient nulle part ailleurs, et la machine ne pouvait pas pusher. Extrayez-les avec
git bundlevia SSH avant que la machine ne soit arrêtée ou supprimée. - Les baselines visuelles faites sur un OS échouent sur un autre. Conservez-les dans l'image Docker épinglée.
- Un plan gratuit ou un crédit qui expire à une date donnée est une date limite pour un exercice de sortie : une semaine avant, prouvez que vous pouvez reconstruire sur la machine suivante à partir de git + du bundle d'état + d'une sauvegarde.