added advanced section to general page & custom host header field

This commit is contained in:
Matthias Palmetshofer 2025-04-15 13:17:46 +02:00
parent 64a2cc23c6
commit 25c125b96d
No known key found for this signature in database
6 changed files with 199 additions and 38 deletions

View file

@ -41,7 +41,8 @@ export async function traefikConfigProvider(
orgId: orgs.orgId
},
enabled: resources.enabled,
tlsServerName: resources.tlsServerName
tlsServerName: resources.tlsServerName,
setHostHeader: resources.setHostHeader
})
.from(resources)
.innerJoin(sites, eq(sites.siteId, resources.siteId))
@ -141,6 +142,7 @@ export async function traefikConfigProvider(
const serviceName = `${resource.resourceId}-service`;
const fullDomain = `${resource.fullDomain}`;
const transportName = `${resource.resourceId}-transport`;
const hostHeaderMiddlewareName = `${resource.resourceId}-host-header-middleware`;
if (!resource.enabled) {
continue;
@ -295,6 +297,28 @@ export async function traefikConfigProvider(
config_output.http.services![serviceName].loadBalancer.serversTransport = transportName;
}
// Add the host header middleware
if (resource.setHostHeader) {
if (!config_output.http.middlewares) {
config_output.http.middlewares = {};
}
config_output.http.middlewares[hostHeaderMiddlewareName] =
{
headers: {
customRequestHeaders: {
Host: resource.setHostHeader
}
}
};
if (!config_output.http.routers![routerName].middlewares) {
config_output.http.routers![routerName].middlewares = [];
}
config_output.http.routers![routerName].middlewares = [
...config_output.http.routers![routerName].middlewares,
hostHeaderMiddlewareName
];
}
} else {
// Non-HTTP (TCP/UDP) configuration
const protocol = resource.protocol.toLowerCase();