Produire une image Docker unique pour le déploiement VPS #19

Closed
opened 2026-06-22 14:08:38 +00:00 by Reliodas · 1 comment
Owner

Contexte

Le déploiement actuel construit deux images et exécute deux conteneurs : nginx pour le client et Node.js pour le serveur. Pour un VPS, une image applicative unique simplifierait la livraison, la configuration et l’exploitation.

Attendu

  • Créer un Dockerfile multi-stage à la racine du dépôt.
  • Compiler le client Vue pendant l’étape de build.
  • Installer les dépendances de production du serveur avec le lockfile.
  • Servir le client compilé depuis Fastify, avec fallback pour Vue Router.
  • Conserver Socket.IO et /health sur le même port.
  • Exécuter le processus Node avec un utilisateur non privilégié.
  • Ajouter un healthcheck à l’image.
  • Adapter Docker Compose et la documentation au conteneur unique.
  • Documenter l’utilisation d’un reverse proxy externe, par exemple Caddy, Traefik ou nginx, pour HTTPS sur le VPS.
  • Vérifier le build et le fonctionnement complet des routes HTTP et WebSocket.
## Contexte Le déploiement actuel construit deux images et exécute deux conteneurs : nginx pour le client et Node.js pour le serveur. Pour un VPS, une image applicative unique simplifierait la livraison, la configuration et l’exploitation. ## Attendu - Créer un Dockerfile multi-stage à la racine du dépôt. - Compiler le client Vue pendant l’étape de build. - Installer les dépendances de production du serveur avec le lockfile. - Servir le client compilé depuis Fastify, avec fallback pour Vue Router. - Conserver Socket.IO et `/health` sur le même port. - Exécuter le processus Node avec un utilisateur non privilégié. - Ajouter un healthcheck à l’image. - Adapter Docker Compose et la documentation au conteneur unique. - Documenter l’utilisation d’un reverse proxy externe, par exemple Caddy, Traefik ou nginx, pour HTTPS sur le VPS. - Vérifier le build et le fonctionnement complet des routes HTTP et WebSocket.
Reliodas added this to the 1.0.0-alpha milestone 2026-06-22 14:08:38 +00:00
Author
Owner

Audit 2026-06-24 : privilegier une image unique Node/Fastify qui sert aussi client/dist, avec Socket.IO, /health et fallback Vue Router sur la meme origine. Ajouter un smoke test CI du conteneur final : route statique, /health et connexion WebSocket. L'objectif VPS est de n'avoir qu'un service applicatif derriere un reverse proxy TLS externe.

Audit 2026-06-24 : privilegier une image unique Node/Fastify qui sert aussi client/dist, avec Socket.IO, /health et fallback Vue Router sur la meme origine. Ajouter un smoke test CI du conteneur final : route statique, /health et connexion WebSocket. L'objectif VPS est de n'avoir qu'un service applicatif derriere un reverse proxy TLS externe.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: jeux/le-grand-concours#19
No description provided.