06 — Infrastructure

Infrastructure

Du commit au navigateur : le chemin exact d’une mise en production, et les choix qui le rendent réversible.

Architecture de production

  1. Bordure

    • Caddy : TLS automatique, HTTP/2 et HTTP/3
    • Redirection 301 de / vers /fr/
    • En-têtes de sécurité et compression
  2. Site statique

    • Astro 5, build immuable
    • nginx : fichiers et page 404
    • Aucun port applicatif exposé
  3. API

    • Flask + Gunicorn
    • Validation, honeypot, limitation de débit
    • Envoi SMTP et réponses JSON
  4. Données et supervision

    • PostgreSQL pour les messages
    • Sauvegardes et migrations versionnées
    • Uptime Kuma et journaux

Pipeline de déploiement

Chaque étape est automatisée ; une CI rouge bloque la mise en production.

  1. 01 CI

    Vérifier

    Lint, format, types et tests sur chaque pull request.

    • ESLint
    • Prettier
    • astro check
    • Ruff
    • Pytest
  2. 02 CI

    Construire

    Build Astro et images Docker multi-étapes, sans secret dans la couche finale.

    • Astro
    • Docker
    • Buildx
  3. 03 CI

    Publier

    Images taguées par SHA poussées sur le registre GitHub, jamais écrasées.

    • ghcr.io
    • SHA
    • SBOM
  4. 04 CD

    Déployer

    SSH par clé, compose pull, redémarrage et healthcheck avant validation.

    • SSH
    • Compose
    • Healthcheck
  5. 05 CD

    Observer

    Disponibilité, journaux et retour arrière vers le tag précédent en une commande.

    • Uptime Kuma
    • Logs
    • Rollback

Stack complète