From d2e053635558ca7b9b914a2c01b8d3d5a91f97a8 Mon Sep 17 00:00:00 2001 From: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com> Date: Sun, 2 Mar 2025 04:31:06 -0600 Subject: [PATCH] feat(traefik): add HTTP/3 support with UDP port configuration - Introduce TRAEFIK_HTTP3_PORT environment variable - Configure UDP port binding for HTTP/3 - Enable HTTP/3 with advertisedPort in Traefik websecure configuration --- packages/server/src/setup/traefik-setup.ts | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/packages/server/src/setup/traefik-setup.ts b/packages/server/src/setup/traefik-setup.ts index 73ebaa75..c2e8a615 100644 --- a/packages/server/src/setup/traefik-setup.ts +++ b/packages/server/src/setup/traefik-setup.ts @@ -12,6 +12,8 @@ export const TRAEFIK_SSL_PORT = Number.parseInt(process.env.TRAEFIK_SSL_PORT!, 10) || 443; export const TRAEFIK_PORT = Number.parseInt(process.env.TRAEFIK_PORT!, 10) || 80; +export const TRAEFIK_HTTP3_PORT = + Number.parseInt(process.env.TRAEFIK_HTTP3_PORT!, 10) || 443; export const TRAEFIK_VERSION = process.env.TRAEFIK_VERSION || "3.1.2"; interface TraefikOptions { @@ -40,11 +42,15 @@ export const initializeTraefik = async ({ const exposedPorts: Record = { [`${TRAEFIK_PORT}/tcp`]: {}, [`${TRAEFIK_SSL_PORT}/tcp`]: {}, + [`${TRAEFIK_HTTP3_PORT}/udp`]: {}, }; const portBindings: Record> = { [`${TRAEFIK_PORT}/tcp`]: [{ HostPort: TRAEFIK_PORT.toString() }], [`${TRAEFIK_SSL_PORT}/tcp`]: [{ HostPort: TRAEFIK_SSL_PORT.toString() }], + [`${TRAEFIK_HTTP3_PORT}/udp`]: [ + { HostPort: TRAEFIK_HTTP3_PORT.toString() }, + ], }; if (enableDashboard) { @@ -187,6 +193,9 @@ export const getDefaultTraefikConfig = () => { }, websecure: { address: `:${TRAEFIK_SSL_PORT}`, + http3: { + advertisedPort: TRAEFIK_HTTP3_PORT, + }, ...(process.env.NODE_ENV === "production" && { http: { tls: {