fix(traefik): Add host rewriting for email autoconfig endpoints

Django's multi-tenant middleware doesn't recognize autoconfig/autodiscover
subdomains. This middleware rewrites the Host header to api.smoothschedule.com
so Django routes the request to the public schema.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
poduck
2025-12-01 19:14:25 -05:00
parent 06e0ec3d01
commit c82c60a562

View File

@@ -64,10 +64,13 @@ http:
certResolver: letsencrypt certResolver: letsencrypt
# Email autoconfiguration subdomains # Email autoconfiguration subdomains
# These need host rewriting because Django's tenant middleware doesn't recognize them
autoconfig-router: autoconfig-router:
rule: 'Host(`autoconfig.smoothschedule.com`)' rule: 'Host(`autoconfig.smoothschedule.com`)'
entryPoints: entryPoints:
- web-secure - web-secure
middlewares:
- email-autoconfig-host
service: django service: django
tls: tls:
certResolver: letsencrypt certResolver: letsencrypt
@@ -76,6 +79,8 @@ http:
rule: 'Host(`autodiscover.smoothschedule.com`)' rule: 'Host(`autodiscover.smoothschedule.com`)'
entryPoints: entryPoints:
- web-secure - web-secure
middlewares:
- email-autoconfig-host
service: django service: django
tls: tls:
certResolver: letsencrypt certResolver: letsencrypt
@@ -107,6 +112,12 @@ http:
headers: headers:
hostsProxyHeaders: ['X-CSRFToken'] hostsProxyHeaders: ['X-CSRFToken']
email-autoconfig-host:
# Rewrite Host header so Django tenant middleware routes to API/public schema
headers:
customRequestHeaders:
Host: 'api.smoothschedule.com'
services: services:
django: django:
loadBalancer: loadBalancer: