Pour un projet à taille humaine, un seul conteneur servant le front, l'API et parlant à Postgres simplifie le déploiement sans sacrifier grand-chose.
Tout n'a pas besoin d'une architecture distribuée. Pour un produit servi par une équipe réduite, regrouper le front statique et l'API dans un seul artefact réduit la surface d'exploitation.
Pourquoi un seul conteneur
Express sert l'API et les fichiers statiques de la SPA déjà buildée. Postgres tourne comme ressource liée. Un seul déploiement, une seule image à versionner, un seul point à surveiller.
Sur une plateforme comme Coolify, cela se ramène à un Dockerfile et quelques variables d'environnement. Le rollback redevient trivial : on repointe une image.
Les limites à connaître
Ce modèle atteint ses limites quand des parties doivent monter en charge indépendamment, ou quand plusieurs équipes touchent le même artefact. Tant que ce n'est pas le cas, le distribuer prématurément coûte plus qu'il ne rapporte.
La bonne architecture est celle qui correspond à la taille réelle du problème, pas à celle qu'on anticipe.