- Retire app.UseHttpsRedirection() : le conteneur écoute en HTTP, la terminaison TLS est assurée par le reverse-proxy (Caddy) placé devant. Évite les redirections parasites derrière le proxy. - Ajoute Caddyfile.example (Caddy devant le compose existant : TLS auto + reverse_proxy vers le frontend nginx qui sert l'app et proxifie /api). - .env.example : précise AUTH_FRONTEND_BASE_URL = URL publique HTTPS en production (liens de réinitialisation de mot de passe).
30 lines
1.5 KiB
Caddyfile
30 lines
1.5 KiB
Caddyfile
# Exemple de configuration Caddy pour exposer SchotzIAD KM Tracker en HTTPS.
|
|
#
|
|
# Architecture (option la plus simple) : Caddy est placé DEVANT le docker-compose
|
|
# existant. Le service `frontend` (nginx) sert l'application Angular et reverse-proxie
|
|
# déjà /api vers le backend en interne. Caddy n'a donc qu'à :
|
|
# - terminer le TLS (certificat automatique Let's Encrypt) ;
|
|
# - transmettre tout le trafic au port publié par le compose (8080 par défaut).
|
|
#
|
|
# Remplace `schotz.exemple.fr` par ton domaine, et l'adresse cible par l'IP:port
|
|
# de la machine/container qui publie le compose (par défaut le frontend nginx sur 8080).
|
|
|
|
schotz.exemple.fr {
|
|
encode zstd gzip
|
|
|
|
# Le compose publie le frontend nginx sur le port hôte 8080 (voir docker-compose.yml).
|
|
# nginx sert l'app et proxifie /api vers backend:8080 en interne : rien d'autre à router ici.
|
|
reverse_proxy 127.0.0.1:8080
|
|
|
|
# Caddy gère automatiquement le certificat TLS pour ce domaine (HTTP-01/TLS-ALPN).
|
|
# Aucune configuration TLS manuelle nécessaire si le domaine pointe vers cette machine.
|
|
}
|
|
|
|
# --- Points importants côté application ---
|
|
# 1) Renseigne dans ton fichier .env (non commité) :
|
|
# AUTH_FRONTEND_BASE_URL=https://schotz.exemple.fr
|
|
# afin que les liens de réinitialisation de mot de passe pointent vers l'URL publique.
|
|
# 2) Définis un JWT_SECRET_KEY aléatoire et long dans .env (obligatoire au démarrage).
|
|
# 3) Le backend écoute en HTTP dans le conteneur ; la terminaison TLS est faite par Caddy
|
|
# (l'application ne fait pas de redirection HTTPS interne).
|