This commit is contained in:
soraefir
2026-06-04 21:58:48 +02:00
parent 0800f47913
commit 1898c015fe

View File

@@ -4,9 +4,15 @@ let
mediaCfg = config.syscfg.media; mediaCfg = config.syscfg.media;
port = 8080; port = 8080;
cacheControl = containerCfg.extra.cacheControl or "public, max-age=86400"; cacheControl = containerCfg.extra.cacheControl or "public, max-age=86400";
priority = toString (containerCfg.extra.priority or 1000); priority = toString (containerCfg.extra.priority or 2147482647);
logoSvgFileName = builtins.baseNameOf (toString mediaCfg.logo.svg); logoSvgFileName = builtins.baseNameOf (toString mediaCfg.logo.svg);
logoSvgMount = "/assets/${logoSvgFileName}"; logoSvgMount = "/assets/${logoSvgFileName}";
traefikAssetPathRegexp =
"^/(.*/)?"
+ "(favicon(-[0-9]+x[0-9]+)?\\.(ico|png|svg)"
+ "|apple-touch-icon(-precomposed)?\\.png"
+ "|android-chrome-[0-9]+x[0-9]+\\.png"
+ "|mstile-[0-9]+x[0-9]+\\.png)$";
configFile = pkgs.writeText "favicon-config.json" (builtins.toJSON { configFile = pkgs.writeText "favicon-config.json" (builtins.toJSON {
inherit cacheControl; inherit cacheControl;
mappings = containerCfg.extra.mappings or {}; mappings = containerCfg.extra.mappings or {};
@@ -42,8 +48,8 @@ let
r"(?i)(?:^|/)(?:" r"(?i)(?:^|/)(?:"
r"favicon(?:-[0-9]+x[0-9]+)?\.(?:ico|png|svg)" r"favicon(?:-[0-9]+x[0-9]+)?\.(?:ico|png|svg)"
r"|apple-touch-icon(?:-precomposed)?\.png" r"|apple-touch-icon(?:-precomposed)?\.png"
r"|android-chrome-(?:192x192|512x512)\.png" r"|android-chrome-[0-9]{2,4}x[0-9]{2,4}\.png"
r"|mstile-150x150\.png" r"|mstile-[0-9]{2,4}x[0-9]{2,4}\.png"
r")$" r")$"
) )
@@ -283,7 +289,7 @@ in {
extraLabels = { extraLabels = {
"traefik.enable" = "true"; "traefik.enable" = "true";
"traefik.http.routers.${name}.entrypoints" = "web-secure"; "traefik.http.routers.${name}.entrypoints" = "web-secure";
"traefik.http.routers.${name}.rule" = "HostRegexp(`{host:.+}`) && PathRegexp(`^/(?:.*\\/)?(?:favicon(?:-[0-9]+x[0-9]+)?\\.(?:ico|png|svg)|apple-touch-icon(?:-precomposed)?\\.png|android-chrome-(?:192x192|512x512)\\.png|mstile-150x150\\.png)$`)"; "traefik.http.routers.${name}.rule" = "PathRegexp(`${traefikAssetPathRegexp}`)";
"traefik.http.routers.${name}.priority" = priority; "traefik.http.routers.${name}.priority" = priority;
"traefik.http.routers.${name}.tls" = "true"; "traefik.http.routers.${name}.tls" = "true";
"traefik.http.services.${name}.loadbalancer.server.port" = toString port; "traefik.http.services.${name}.loadbalancer.server.port" = toString port;