mirror of
https://github.com/fosrl/pangolin.git
synced 2025-08-23 18:56:07 +02:00
Handle badger config correctly
This commit is contained in:
parent
2c96eb7851
commit
f9184cf489
2 changed files with 59 additions and 35 deletions
|
@ -213,9 +213,34 @@ export class TraefikConfigManager {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
logger.debug(
|
const badgerMiddlewareName = "badger";
|
||||||
`Successfully retrieved traefik config: ${JSON.stringify(traefikConfig)}`
|
traefikConfig.http.middlewares[badgerMiddlewareName] = {
|
||||||
);
|
plugin: {
|
||||||
|
[badgerMiddlewareName]: {
|
||||||
|
apiBaseUrl: new URL(
|
||||||
|
"/api/v0",
|
||||||
|
`http://${
|
||||||
|
config.getRawConfig().server.internal_hostname
|
||||||
|
}:${config.getRawConfig().server.internal_port}`
|
||||||
|
).href,
|
||||||
|
userSessionCookieName:
|
||||||
|
config.getRawConfig().server.session_cookie_name,
|
||||||
|
|
||||||
|
// deprecated
|
||||||
|
accessTokenQueryParam:
|
||||||
|
config.getRawConfig().server
|
||||||
|
.resource_access_token_param,
|
||||||
|
|
||||||
|
resourceSessionRequestParam:
|
||||||
|
config.getRawConfig().server
|
||||||
|
.resource_session_request_param
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
// logger.debug(
|
||||||
|
// `Successfully retrieved traefik config: ${JSON.stringify(traefikConfig)}`
|
||||||
|
// );
|
||||||
|
|
||||||
return { domains, traefikConfig };
|
return { domains, traefikConfig };
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
|
@ -313,9 +338,9 @@ export class TraefikConfigManager {
|
||||||
return [];
|
return [];
|
||||||
}
|
}
|
||||||
|
|
||||||
logger.debug(
|
// logger.debug(
|
||||||
`Successfully retrieved ${response.data.data?.length || 0} certificates for ${domainArray.length} domains`
|
// `Successfully retrieved ${response.data.data?.length || 0} certificates for ${domainArray.length} domains`
|
||||||
);
|
// );
|
||||||
|
|
||||||
return response.data.data;
|
return response.data.data;
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
|
|
|
@ -8,6 +8,8 @@ import { orgs, resources, sites, Target, targets } from "@server/db";
|
||||||
import { build } from "@server/build";
|
import { build } from "@server/build";
|
||||||
|
|
||||||
let currentExitNodeId: number;
|
let currentExitNodeId: number;
|
||||||
|
const redirectHttpsMiddlewareName = "redirect-to-https";
|
||||||
|
const badgerMiddlewareName = "badger";
|
||||||
|
|
||||||
export async function traefikConfigProvider(
|
export async function traefikConfigProvider(
|
||||||
_: Request,
|
_: Request,
|
||||||
|
@ -43,7 +45,32 @@ export async function traefikConfigProvider(
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const traefikConfig = await getTraefikConfig(currentExitNodeId);
|
let traefikConfig = await getTraefikConfig(currentExitNodeId);
|
||||||
|
|
||||||
|
traefikConfig.http.middlewares[badgerMiddlewareName] = {
|
||||||
|
plugin: {
|
||||||
|
[badgerMiddlewareName]: {
|
||||||
|
apiBaseUrl: new URL(
|
||||||
|
"/api/v0",
|
||||||
|
`http://${
|
||||||
|
config.getRawConfig().server.internal_hostname
|
||||||
|
}:${config.getRawConfig().server.internal_port}`
|
||||||
|
).href,
|
||||||
|
userSessionCookieName:
|
||||||
|
config.getRawConfig().server.session_cookie_name,
|
||||||
|
|
||||||
|
// deprecated
|
||||||
|
accessTokenQueryParam:
|
||||||
|
config.getRawConfig().server
|
||||||
|
.resource_access_token_param,
|
||||||
|
|
||||||
|
resourceSessionRequestParam:
|
||||||
|
config.getRawConfig().server
|
||||||
|
.resource_session_request_param
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
return res.status(HttpCode.OK).json(traefikConfig);
|
return res.status(HttpCode.OK).json(traefikConfig);
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
logger.error(`Failed to build Traefik config: ${e}`);
|
logger.error(`Failed to build Traefik config: ${e}`);
|
||||||
|
@ -132,37 +159,9 @@ export async function getTraefikConfig(exitNodeId: number): Promise<any> {
|
||||||
return {};
|
return {};
|
||||||
}
|
}
|
||||||
|
|
||||||
const badgerMiddlewareName = "badger";
|
|
||||||
const redirectHttpsMiddlewareName = "redirect-to-https";
|
|
||||||
|
|
||||||
const config_output: any = {
|
const config_output: any = {
|
||||||
http: {
|
http: {
|
||||||
middlewares: {
|
middlewares: {
|
||||||
[badgerMiddlewareName]: {
|
|
||||||
plugin: {
|
|
||||||
[badgerMiddlewareName]: {
|
|
||||||
apiBaseUrl: new URL(
|
|
||||||
"/api/v1",
|
|
||||||
`http://${
|
|
||||||
config.getRawConfig().server
|
|
||||||
.internal_hostname
|
|
||||||
}:${config.getRawConfig().server.internal_port}`
|
|
||||||
).href,
|
|
||||||
userSessionCookieName:
|
|
||||||
config.getRawConfig().server
|
|
||||||
.session_cookie_name,
|
|
||||||
|
|
||||||
// deprecated
|
|
||||||
accessTokenQueryParam:
|
|
||||||
config.getRawConfig().server
|
|
||||||
.resource_access_token_param,
|
|
||||||
|
|
||||||
resourceSessionRequestParam:
|
|
||||||
config.getRawConfig().server
|
|
||||||
.resource_session_request_param
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
[redirectHttpsMiddlewareName]: {
|
[redirectHttpsMiddlewareName]: {
|
||||||
redirectScheme: {
|
redirectScheme: {
|
||||||
scheme: "https"
|
scheme: "https"
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue