Déployer et superviser

Runbook : Opérations Lucarne

1. Déploiement et Rollback (P10-010)

  • NEXT_PUBLIC_SITE_URL doit être défini dans l'environnement de build. site.baseUrl de l'instance retombe sinon sur http://localhost:<port>, et cette valeur est figée dans les URL canoniques, les hreflang et l'intégralité du sitemap : le site se déclare alors sur localhost et devient inindexable. Le définir au démarrage ne corrige rien, il faut reconstruire. Contrôle après chaque build, avant mise en ligne :

    TerminalCode
    curl -s https://<domaine>/sitemap.xml | grep -m1 '<loc>'
  • L'artefact généré par Next.js est en mode standalone. Il inclut server.js et les dépendances node_modules requises.

  • Rollback : Le routage DNS/CDN (Vercel ou Cloudflare) ou le changement d'image Docker doit cibler la release précédente taggée de l'image immuable.

2. Invalidation de Cache (P8-003)

  • Endpoint : POST /api/revalidate
  • Header requis : Authorization: Bearer <REVALIDATION_SECRET>
  • Payload : { "tags": ["center-123"] } ou { "paths": ["/recherche"] }

3. Panne amont (API CRISalid) (P10-007)

  • Si la source retourne une 500 ou Timeout (>5s), le BFF remonte une erreur UpstreamApiError.
  • Mitigation : Le cache (CDN et Next) sert la variante "stale" tant qu'elle est disponible (SWR). Le client observe une date de fraîcheur décalée mais sans interruption d'accès à la donnée lue.

4. Astreinte et Maintien (P10-015)

  • Maintenir Node.js 22 LTS, Next.js 16 et Mantine 7 en surveillance.
  • Alerte de sécurité critique > Mettre à jour via pnpm up <package> et exécuter le pipeline de tests make check complet.

5. Supervision et alertes

  • Tableaux, alertes et conduite à tenir par alerte : observabilite.md (§ 6 et § 8).