From 28c9882b173f15d6e7474dc293ab0c034e4e6ab2 Mon Sep 17 00:00:00 2001 From: adlee-was-taken Date: Sun, 22 Feb 2026 14:48:31 -0500 Subject: [PATCH] Add www.golfcards.club cert and redirect to bare domain Traefik gets a separate cert for www subdomain and uses redirectregex middleware to 301 redirect to bare domain. Co-Authored-By: Claude Opus 4.6 --- docker-compose.prod.yml | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/docker-compose.prod.yml b/docker-compose.prod.yml index 14e3cb9..659bfd8 100644 --- a/docker-compose.prod.yml +++ b/docker-compose.prod.yml @@ -61,6 +61,15 @@ services: - "traefik.http.routers.golf.entrypoints=websecure" - "traefik.http.routers.golf.tls=true" - "traefik.http.routers.golf.tls.certresolver=letsencrypt" + # www -> bare domain redirect + - "traefik.http.routers.golf-www.rule=Host(`www.${DOMAIN:-golf.example.com}`)" + - "traefik.http.routers.golf-www.entrypoints=websecure" + - "traefik.http.routers.golf-www.tls=true" + - "traefik.http.routers.golf-www.tls.certresolver=letsencrypt" + - "traefik.http.routers.golf-www.middlewares=www-redirect" + - "traefik.http.middlewares.www-redirect.redirectregex.regex=^https://www\\.(.+)" + - "traefik.http.middlewares.www-redirect.redirectregex.replacement=https://$${1}" + - "traefik.http.middlewares.www-redirect.redirectregex.permanent=true" - "traefik.http.services.golf.loadbalancer.server.port=8000" # WebSocket sticky sessions - "traefik.http.services.golf.loadbalancer.sticky.cookie=true"