diff --git a/README.md b/README.md index 1a1a588..9080f96 100644 --- a/README.md +++ b/README.md @@ -24,6 +24,22 @@ Navigateur ──> app (Express :8321) ──> db (PostgreSQL, 127.0.0.1:58412) Le mapping PostgreSQL est lié à `127.0.0.1` : la base reste inaccessible depuis le réseau. Supprimez la section `ports:` du service `db` pour la fermer totalement. +### Reverse-proxy nginx existant + +Le conteneur `app` est aussi rattaché au réseau externe `nginx_default` +(configurable via `PROXY_NETWORK`) avec l'alias **`sbc-app`**. Depuis votre +stack nginx, pointez simplement l'upstream vers : + +```nginx +proxy_pass http://sbc-app:3000; +``` + +Ce réseau doit exister avant le déploiement (`docker network create nginx_default` +s'il manque). Derrière nginx en HTTPS, passez `TRUST_PROXY=true` et +`COOKIE_SECURE=true`, et transmettez les en-têtes `Host`/`X-Forwarded-*` +(`proxy_set_header Host $http_host;`). La base de données, elle, reste hors du +réseau du proxy. + - **Frontend** : React 18 + Vite + React Router — reproduction fidèle de la maquette (`SLUC Business Club.dc.html`). - **Backend** : Express, `pg` (requêtes paramétrées), `zod` (validation), `bcryptjs` diff --git a/docker-compose.yml b/docker-compose.yml index b415063..1c2c431 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -61,6 +61,12 @@ services: - uploads:/data/uploads ports: - "${APP_PORT:-8321}:3000" + networks: + default: + proxy: + aliases: + # Stable name for the nginx upstream: proxy_pass http://sbc-app:3000; + - sbc-app depends_on: db: condition: service_healthy @@ -77,6 +83,14 @@ services: timeout: 5s retries: 6 +networks: + default: + # Existing network of the nginx reverse-proxy stack. Create it first if it + # does not exist: docker network create nginx_default + proxy: + external: true + name: ${PROXY_NETWORK:-nginx_default} + volumes: db_data: uploads: