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
-
Bordure
- Caddy : TLS automatique, HTTP/2 et HTTP/3
- Redirection 301 de / vers /fr/
- En-têtes de sécurité et compression
-
Site statique
- Astro 5, build immuable
- nginx : fichiers et page 404
- Aucun port applicatif exposé
-
API
- Flask + Gunicorn
- Validation, honeypot, limitation de débit
- Envoi SMTP et réponses JSON
-
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.
- 01 CI
Vérifier
Lint, format, types et tests sur chaque pull request.
- ESLint
- Prettier
- astro check
- Ruff
- Pytest
- 02 CI
Construire
Build Astro et images Docker multi-étapes, sans secret dans la couche finale.
- Astro
- Docker
- Buildx
- 03 CI
Publier
Images taguées par SHA poussées sur le registre GitHub, jamais écrasées.
- ghcr.io
- SHA
- SBOM
- 04 CD
Déployer
SSH par clé, compose pull, redémarrage et healthcheck avant validation.
- SSH
- Compose
- Healthcheck
- 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
- Astro 5
- Tailwind CSS 4
- TypeScript
- Flask
- PostgreSQL
- Docker
- Caddy
- GitHub Actions
- Uptime Kuma