From c48251187cd182742f2a054a9a79a487f607f3b5 Mon Sep 17 00:00:00 2001 From: Nikolaz Date: Tue, 15 Sep 2026 15:04:51 +0200 Subject: [PATCH] =?UTF-8?q?Docker=20:=20publier=20le=20frontend=20sur=20le?= =?UTF-8?q?=20port=20h=C3=B4te=202202=20(au=20lieu=20de=208080)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Évite un conflit avec une instance existante sur 8080. Seul le port HÔTE change (2202:80) ; les ports internes des conteneurs (backend 8080) sont inchangés, donc le proxy interne nginx -> backend n'est pas affecté. Auth__FrontendBaseUrl par défaut et Caddyfile.example alignés sur 2202. --- Caddyfile.example | 16 ++++++++-------- docker-compose.yml | 4 ++-- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/Caddyfile.example b/Caddyfile.example index a2619d0..3eb8059 100644 --- a/Caddyfile.example +++ b/Caddyfile.example @@ -2,7 +2,7 @@ # avec Caddy sur une machine SÉPARÉE de la machine Docker. # # Topologie : -# Internet ──HTTPS──> [Machine Caddy] ──HTTP──> [Machine Docker] : port 8080 +# Internet ──HTTPS──> [Machine Caddy] ──HTTP──> [Machine Docker] : port 2202 # (frontend nginx du compose, # qui sert l'app et proxifie /api) # @@ -13,9 +13,9 @@ schotz.exemple.fr { encode zstd gzip - # La machine Docker publie le frontend nginx sur son port 8080 (voir docker-compose.yml). + # La machine Docker publie le frontend nginx sur son port 2202 (voir docker-compose.yml). # nginx sert l'app Angular et proxifie /api vers le backend en interne. - reverse_proxy 192.168.1.50:8080 { + reverse_proxy 192.168.1.50:2202 { # En-têtes transmis au backend pour qu'il connaisse le schéma/hôte d'origine. header_up X-Forwarded-Proto {scheme} header_up X-Forwarded-Host {host} @@ -32,16 +32,16 @@ schotz.exemple.fr { } # --- SÉCURITÉ RÉSEAU (important, machines séparées) --- -# Le port 8080 de la machine Docker devient joignable sur le réseau : sans filtrage, +# Le port 2202 de la machine Docker devient joignable sur le réseau : sans filtrage, # l'application serait accessible en HTTP direct (sans TLS), en contournant Caddy. # Recommandations : -# 1) Restreindre l'accès au port 8080 de la machine Docker à la seule IP de la machine +# 1) Restreindre l'accès au port 2202 de la machine Docker à la seule IP de la machine # Caddy (pare-feu : ufw/iptables/nftables ou security group), ex. (ufw) : -# ufw allow from to any port 8080 proto tcp -# ufw deny 8080 +# ufw allow from to any port 2202 proto tcp +# ufw deny 2202 # 2) Idéalement, faire communiquer les deux machines via un réseau privé/VPN # (WireGuard, réseau interne du datacenter) plutôt qu'en clair sur Internet. -# 3) Ne pas publier le backend (8080 du service backend) directement : seul le frontend +# 3) Ne pas publier le backend (8080 interne du service backend) directement : seul le frontend # nginx est exposé ; le backend reste sur le réseau interne du compose. # --- Points côté application (fichier .env sur la machine Docker) --- diff --git a/docker-compose.yml b/docker-compose.yml index 91f36b8..9baec33 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -13,7 +13,7 @@ services: - JWT__SecretKey=${JWT_SECRET_KEY:?JWT_SECRET_KEY requis} - JWT__ExpirationMinutes=${JWT_EXPIRATION_MINUTES:-720} - Auth__ResetTokenLifetimeMinutes=${AUTH_RESET_TOKEN_LIFETIME_MINUTES:-60} - - Auth__FrontendBaseUrl=${AUTH_FRONTEND_BASE_URL:-http://localhost:8080} + - Auth__FrontendBaseUrl=${AUTH_FRONTEND_BASE_URL:-http://localhost:2202} # --- SMTP (facultatif) : Smtp__Host vide ⇒ repli journalisation du lien de reset --- - Smtp__Host=${SMTP_HOST:-} - Smtp__Port=${SMTP_PORT:-587} @@ -36,7 +36,7 @@ services: context: ./frontend dockerfile: Dockerfile ports: - - "8080:80" # hôte 8080 -> nginx (frontend) + - "2202:80" # hôte 2202 -> nginx (frontend) depends_on: backend: condition: service_healthy