diff --git a/docker-compose.yml b/docker-compose.yml
index 09117fa249a2cb097ac1c657a72f51d19641dcaa..df773ecc2fddb298a885b3ec639dcd6b04911b9f 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -34,19 +34,23 @@ services:
game-client:
image: game-client
- network_mode: "host"
+ #network_mode: "host"
container_name: game-client
stdin_open: true
tty: true
+ ports:
+ - 5173:80
depends_on:
- game-server
monitor-client:
image: monitor-client
- network_mode: "host"
+ #network_mode: "host"
container_name: monitor-client
stdin_open: true
tty: true
+ ports:
+ - 5174:80
depends_on:
- monitor-arduino
diff --git a/game/client/Dockerfile b/game/client/Dockerfile
index 96e141a64e69b3f73e3606dbdf1d34fbb1fddda6..b5d617e9ca8d8c1ef3e859a6e186da389bddc501 100644
--- a/game/client/Dockerfile
+++ b/game/client/Dockerfile
@@ -1,20 +1,30 @@
-# Use official Node image
-FROM node:20-alpine
+# --- Stage 1: Build ---
+FROM node:20-alpine AS builder
-# Set working directory
WORKDIR /app
-# Copy package.json and lock file
-COPY package*.json ./
-
# Install dependencies
+COPY package.json package-lock.json ./
RUN npm install
-# Copy the rest of the source code
+# Copy the rest of the project
COPY . .
-# Expose Vite dev server port
-EXPOSE 5173
+# Build Vite React app
+RUN npm run build
+
+
+# --- Stage 2: Serve build files ---
+FROM nginx:alpine
+
+# Remove default nginx website
+RUN rm -rf /usr/share/nginx/html/*
+
+# Copy Vite build output to nginx
+COPY --from=builder /app/dist /usr/share/nginx/html
+
+# Expose port 80
+EXPOSE 80
+
+CMD ["nginx", "-g", "daemon off;"]
-# Start Vite dev server
-CMD ["npm", "run", "dev", "--", "--host"]
diff --git a/game/client/src/Game.tsx b/game/client/src/Game.tsx
index aec1f96d0aa469227a98fb7ee797e9bb177f7cf3..7639057ceb2701de0fce39e9eceb531e67bb83f1 100644
--- a/game/client/src/Game.tsx
+++ b/game/client/src/Game.tsx
@@ -236,7 +236,10 @@ export default function Game() {
style={{ width: "100%", height: "100%" }}
/>
-
{score}
+
+ Score: {score}
+ Deaths: {deathCount}
+
{!alive && (
diff --git a/game/client/tsconfig.json b/game/client/tsconfig.json
index 1ffef600d959ec9e396d5a260bd3f5b927b2cef8..cf187c038c630b3829a966a477ca56451b04f4dd 100644
--- a/game/client/tsconfig.json
+++ b/game/client/tsconfig.json
@@ -1,7 +1,15 @@
{
"files": [],
"references": [
- { "path": "./tsconfig.app.json" },
- { "path": "./tsconfig.node.json" }
- ]
-}
+ {
+ "path": "./tsconfig.app.json"
+ },
+ {
+ "path": "./tsconfig.node.json"
+ }
+ ],
+ "compilerOptions": {
+ "noUnusedLocals": false,
+ "noUnusedParameters": false
+ }
+}
\ No newline at end of file
diff --git a/game/server/Dockerfile b/game/server/Dockerfile
index e00266b078e9dec9171933b9b39b04b535c3273a..fda7af0550e10424cf63aa2310e580a3539616e5 100644
--- a/game/server/Dockerfile
+++ b/game/server/Dockerfile
@@ -23,8 +23,5 @@ COPY . .
# Expose ports (HTTP and monitoring)
EXPOSE 3000 3001
-# Ensure environment variables are loaded from host
-ENV DOTENV_CONFIG_PATH=../../.env
-
# Run the app
ENTRYPOINT ["node", "server.js"]
diff --git a/game/server/db/db.js b/game/server/db/db.js
index 67660c2cc48e402b8f28dd5a7e0caa93c1bc4d06..886063fb0c3504d65ef78c1addd207a5c846facf 100644
--- a/game/server/db/db.js
+++ b/game/server/db/db.js
@@ -1,9 +1,12 @@
-require('dotenv').config();
+if (process.NODE_ENV != "production") {
+ // en mode dev, charger les vars d'environnements
+ // depuis le fichier .env
+ require("dotenv").config()
+}
const { Pool } = require('pg');
// --- Configuration de la Connexion BDD ---
-// Utilisation des variables definies dans le fichier .env pour la securite
const pool = new Pool({
user: process.env.DB_USER,
password: process.env.DB_PASSWORD,
diff --git a/game/server/package.json b/game/server/package.json
index 4450e1dc2ce36ffb3abd167424d7ebb7d6303b06..7d59e00b213f801fdf0890f9001d1663743ca1ab 100644
--- a/game/server/package.json
+++ b/game/server/package.json
@@ -1,10 +1,14 @@
{
+ "name": "game-server",
+ "type": "commonjs",
"dependencies": {
- "dotenv": "^17.2.3",
"express": "^5.1.0",
"pg": "^8.16.3",
"minimist": "^1.2.8",
"serialport": "^13.0.0",
"ws": "^8.18.3"
+ },
+ "devDependencies": {
+ "dotenv": "^17.2.3"
}
}
diff --git a/game/server/server.js b/game/server/server.js
index 6cb061e107d722fc644b13dacfcb33ebbe5674c4..70dcf926ac97ed587859f07bac31ac265f951726 100644
--- a/game/server/server.js
+++ b/game/server/server.js
@@ -1,5 +1,9 @@
-// Chargement de la configuration sécurisée (.env)
-require('dotenv').config();
+if (process.NODE_ENV != "production") {
+ // en mode dev, charger les vars d'environnements
+ // depuis le fichier .env
+ require("dotenv").config()
+}
+
const minimist = require('minimist');
const express = require('express');
diff --git a/monitor/client/Dockerfile b/monitor/client/Dockerfile
index 2510a9114336ea7ca970b5c50dde822f18328d62..b5d617e9ca8d8c1ef3e859a6e186da389bddc501 100644
--- a/monitor/client/Dockerfile
+++ b/monitor/client/Dockerfile
@@ -1,20 +1,30 @@
-# Use official Node image
-FROM node:20-alpine
+# --- Stage 1: Build ---
+FROM node:20-alpine AS builder
-# Set working directory
WORKDIR /app
-# Copy package.json and lock file
-COPY package*.json ./
-
# Install dependencies
+COPY package.json package-lock.json ./
RUN npm install
-# Copy the rest of the source code
+# Copy the rest of the project
COPY . .
-# Expose Vite dev server port
-EXPOSE 5174
+# Build Vite React app
+RUN npm run build
+
+
+# --- Stage 2: Serve build files ---
+FROM nginx:alpine
+
+# Remove default nginx website
+RUN rm -rf /usr/share/nginx/html/*
+
+# Copy Vite build output to nginx
+COPY --from=builder /app/dist /usr/share/nginx/html
+
+# Expose port 80
+EXPOSE 80
+
+CMD ["nginx", "-g", "daemon off;"]
-# Start Vite dev server
-CMD ["npm", "run", "dev", "--", "--host"]
diff --git a/monitor/client/tsconfig.json b/monitor/client/tsconfig.json
index 1ffef600d959ec9e396d5a260bd3f5b927b2cef8..cf187c038c630b3829a966a477ca56451b04f4dd 100644
--- a/monitor/client/tsconfig.json
+++ b/monitor/client/tsconfig.json
@@ -1,7 +1,15 @@
{
"files": [],
"references": [
- { "path": "./tsconfig.app.json" },
- { "path": "./tsconfig.node.json" }
- ]
-}
+ {
+ "path": "./tsconfig.app.json"
+ },
+ {
+ "path": "./tsconfig.node.json"
+ }
+ ],
+ "compilerOptions": {
+ "noUnusedLocals": false,
+ "noUnusedParameters": false
+ }
+}
\ No newline at end of file
diff --git a/monitor/server/package.json b/monitor/server/package.json
index 3461a1f1fd04aa8b0cc0997451575e03c35783ee..83c59fdf96d9d88c64163de00a6da350a37c7de9 100644
--- a/monitor/server/package.json
+++ b/monitor/server/package.json
@@ -1,7 +1,5 @@
{
"name": "monitor-arduino",
- "version": "1.0.0",
- "main": "monitor-arduino.js",
"type": "commonjs",
"dependencies": {
"express": "^4.21.2",