diff --git a/server/lib/traefik/TraefikConfigManager.ts b/server/lib/traefik/TraefikConfigManager.ts index 9c33fedf7..64a263097 100644 --- a/server/lib/traefik/TraefikConfigManager.ts +++ b/server/lib/traefik/TraefikConfigManager.ts @@ -535,6 +535,24 @@ export class TraefikConfigManager { if (match && match[1]) { domains.add(match[1]); } + // Match HostRegexp(`^[^.]+\.parent.domain$`) generated for wildcard resources + const hostRegexpMatch = router.rule.match( + /HostRegexp\(`([^`]+)`\)/ + ); + if (hostRegexpMatch && hostRegexpMatch[1]) { + const innerRegex = hostRegexpMatch[1]; + // Pattern is always ^[^.]+\.PARENT_DOMAIN$ where dots are escaped as \. + const domainMatch = innerRegex.match( + /^\^\[\^\.\]\+\\\.(.+)\$$/ + ); + if (domainMatch && domainMatch[1]) { + const parentDomain = domainMatch[1].replace( + /\\\./g, + "." + ); + domains.add(`*.${parentDomain}`); + } + } } } }