# ./docker/caddy/Caddyfile # Nous écoutons sur le port 80 (qui est mappé depuis le port 8000 de l'hôte) :80 { # La racine de votre application Symfony root * /srv/app/public # Activation de la compression (optionnel) encode gzip zstd # Gère les assets statiques directement (améliore les performances) file_server # Passe toutes les requêtes non résolues par file_server à Symfony (index.php) php_fastcgi php:9000 { # 'php' est le nom de votre service PHP dans docker-compose # Transmet les en-têtes X-Forwarded-* reçus de Nginx à PHP-FPM # C'est CRUCIAL pour que Symfony détecte HTTPS env HTTPS on # Simule que la connexion est HTTPS pour PHP env HTTP_X_FORWARDED_PROTO {header.X-Forwarded-Proto} # Récupère le proto original de Nginx env HTTP_X_FORWARDED_HOST {header.X-Forwarded-Host} # Récupère l'hôte original de Nginx env HTTP_X_FORWARDED_PORT {header.X-Forwarded-Port} # Récupère le port original de Nginx env HTTP_X_REAL_IP {header.X-Real-IP} # Récupère l'IP réelle du client (si Nginx la passe) # Assurez-vous que l'adresse IP de Nginx est aussi trustée par Symfony # via framework.trusted_proxies dans Symfony. } # Journalisation des accès (utile pour le débogage) log { output stdout format json } handle_path /ts.js { redir https://widget.trustpilot.com/bootstrap/v5/tp.widget.bootstrap.min.js } handle_path /tp.widget.bootstrap.min.js.map { redir https://widget.trustpilot.com/bootstrap/v5/tp.widget.bootstrap.min.js.map } # Configuration des en-têtes CORS pour les requêtes OPTIONS du profiler # Note: Caddy a une directive 'header' mais c'est pour les réponses. # Pour gérer spécifiquement les OPTIONS en tant que preflight, c'est plus direct # de le faire via php_fastcgi si Symfony peut le gérer, ou avec une directive # 'handle' ou 'route' spécifique si Caddy doit répondre directement. # Pour l'instant, faisons confiance à Symfony pour gérer les CORS via NelmioCorsBundle # une fois que le protocole est correct. }