From f4a1e3e427f8e2d23c328fd033dff3a65b8ff76f Mon Sep 17 00:00:00 2001 From: Andras Bacsai <5845193+andrasbacsai@users.noreply.github.com> Date: Tue, 3 Nov 2026 22:06:54 +0100 Subject: [PATCH] fix(proxy): keep Caddy WebSockets open across config reloads caddy-docker-proxy reloads Caddy whenever any proxied container changes, and Caddy closes every WebSocket on reload by default. Set stream_close_delay on app, service, and dashboard reverse_proxy routes. Closes #7942 --- app/Models/Server.php | 10 ++++--- bootstrap/helpers/constants.php | 6 +++++ bootstrap/helpers/docker.php | 1 + .../application-with-exact-caddy-labels.yaml | 17 ++++++++++++ .../expected/application-with-settings.yaml | 17 ++++++++++++ .../Fixtures/parser/expected/application.yaml | 17 ++++++++++++ .../reference-with-application-settings.yaml | 24 +++++++++++++++++ .../reference-with-exact-caddy-labels.yaml | 24 +++++++++++++++++ .../reference-with-migrated-services.yaml | 26 +++++++++++++++++++ tests/Fixtures/parser/expected/reference.yaml | 24 +++++++++++++++++ 10 files changed, 163 insertions(+), 3 deletions(-) diff --git a/app/Models/Server.php b/app/Models/Server.php index d46a100965..58b1b3f0b0 100644 --- a/app/Models/Server.php +++ b/app/Models/Server.php @@ -1241,13 +1241,17 @@ class Server extends BaseModel $siteAddress { encode zstd gzip handle /app/* { - reverse_proxy coolify:6001 + reverse_proxy coolify:6001 { + stream_close_delay ".CADDY_STREAM_CLOSE_DELAY.' + } } handle /terminal/ws { - reverse_proxy coolify:6002 + reverse_proxy coolify:6002 { + stream_close_delay '.CADDY_STREAM_CLOSE_DELAY.' + } } reverse_proxy coolify:8080 -}"; +}'; $base64 = base64_encode($caddy_file); instant_remote_process([ "echo '$base64' | base64 -d | tee $file > /dev/null", diff --git a/bootstrap/helpers/constants.php b/bootstrap/helpers/constants.php index 0618a5d471..68eb7a8ca1 100644 --- a/bootstrap/helpers/constants.php +++ b/bootstrap/helpers/constants.php @@ -65,6 +65,12 @@ const MIN_STOP_GRACE_PERIOD_SECONDS = 1; const MAX_STOP_GRACE_PERIOD_SECONDS = 3600; const DEFAULT_ROLLING_UPDATE_DRAIN_SECONDS = 5; const MAX_ROLLING_UPDATE_DRAIN_SECONDS = 300; +/** + * caddy-docker-proxy reloads Caddy when any proxied container changes (a restart gives it a new IP), and a reload + * closes every WebSocket at once unless `reverse_proxy` sets `stream_close_delay` (Caddy 2.7+). A stream to a + * stopped or replaced container still ends with that container. + */ +const CADDY_STREAM_CLOSE_DELAY = '24h'; const DATABASE_DOCKER_IMAGES = [ 'bitnami/mariadb', diff --git a/bootstrap/helpers/docker.php b/bootstrap/helpers/docker.php index a33717c386..44bee286d3 100644 --- a/bootstrap/helpers/docker.php +++ b/bootstrap/helpers/docker.php @@ -937,6 +937,7 @@ function fqdnLabelsForCaddy(string $network, string $uuid, Collection $domains, } else { $labels->push("caddy_{$loop}.{$handle}.{$loop}_reverse_proxy={{upstreams}}"); } + $labels->push("caddy_{$loop}.{$handle}.{$loop}_reverse_proxy.stream_close_delay=".CADDY_STREAM_CLOSE_DELAY); $labels->push("caddy_{$loop}.{$handle}={$path}*"); if ($is_gzip_enabled) { $labels->push("caddy_{$loop}.encode=zstd gzip"); diff --git a/tests/Fixtures/parser/expected/application-with-exact-caddy-labels.yaml b/tests/Fixtures/parser/expected/application-with-exact-caddy-labels.yaml index dcdb744856..c8346efa14 100644 --- a/tests/Fixtures/parser/expected/application-with-exact-caddy-labels.yaml +++ b/tests/Fixtures/parser/expected/application-with-exact-caddy-labels.yaml @@ -140,6 +140,7 @@ - coolify.environmentName=production - coolify.pullRequestId=0 - 'caddy_0.encode=zstd gzip' + - caddy_0.handle_path.0_reverse_proxy.stream_close_delay=24h - 'caddy_0.handle_path.0_reverse_proxy={{upstreams 3000}}' - 'caddy_0.handle_path=/*' - caddy_0.header=-Server @@ -227,6 +228,7 @@ - coolify.environmentName=production - coolify.pullRequestId=0 - 'caddy_0.encode=zstd gzip' + - caddy_0.handle_path.0_reverse_proxy.stream_close_delay=24h - 'caddy_0.handle_path.0_reverse_proxy={{upstreams 3001}}' - 'caddy_0.handle_path=/*' - caddy_0.header=-Server @@ -283,6 +285,7 @@ - coolify.environmentName=production - coolify.pullRequestId=0 - 'caddy_0.encode=zstd gzip' + - caddy_0.handle_path.0_reverse_proxy.stream_close_delay=24h - 'caddy_0.handle_path.0_reverse_proxy={{upstreams 80}}' - 'caddy_0.handle_path=/*' - caddy_0.header=-Server @@ -388,6 +391,7 @@ - coolify.environmentName=production - coolify.pullRequestId=0 - 'caddy_0.encode=zstd gzip' + - caddy_0.handle_path.0_reverse_proxy.stream_close_delay=24h - 'caddy_0.handle_path.0_reverse_proxy={{upstreams 8080}}' - 'caddy_0.handle_path=/*' - caddy_0.header=-Server @@ -442,6 +446,7 @@ - coolify.environmentName=production - coolify.pullRequestId=0 - 'caddy_0.encode=zstd gzip' + - caddy_0.handle_path.0_reverse_proxy.stream_close_delay=24h - 'caddy_0.handle_path.0_reverse_proxy={{upstreams}}' - 'caddy_0.handle_path=/blog:2368*' - caddy_0.header=-Server @@ -789,6 +794,7 @@ - coolify.environmentName=production - coolify.pullRequestId=0 - 'caddy_0.encode=zstd gzip' + - caddy_0.handle_path.0_reverse_proxy.stream_close_delay=24h - 'caddy_0.handle_path.0_reverse_proxy={{upstreams 3000}}' - 'caddy_0.handle_path=/*' - caddy_0.header=-Server @@ -878,6 +884,7 @@ - coolify.environmentName=production - coolify.pullRequestId=0 - 'caddy_0.encode=zstd gzip' + - caddy_0.handle_path.0_reverse_proxy.stream_close_delay=24h - 'caddy_0.handle_path.0_reverse_proxy={{upstreams 3001}}' - 'caddy_0.handle_path=/*' - caddy_0.header=-Server @@ -937,6 +944,7 @@ - coolify.environmentName=production - coolify.pullRequestId=0 - 'caddy_0.encode=zstd gzip' + - caddy_0.handle_path.0_reverse_proxy.stream_close_delay=24h - 'caddy_0.handle_path.0_reverse_proxy={{upstreams 80}}' - 'caddy_0.handle_path=/*' - caddy_0.header=-Server @@ -963,6 +971,7 @@ - coolify.environmentName=production - coolify.pullRequestId=0 - 'caddy_0.encode=zstd gzip' + - caddy_0.handle_path.0_reverse_proxy.stream_close_delay=24h - 'caddy_0.handle_path.0_reverse_proxy={{upstreams}}' - 'caddy_0.handle_path=/*' - caddy_0.header=-Server @@ -1055,6 +1064,7 @@ - coolify.environmentName=production - coolify.pullRequestId=0 - 'caddy_0.encode=zstd gzip' + - caddy_0.handle_path.0_reverse_proxy.stream_close_delay=24h - 'caddy_0.handle_path.0_reverse_proxy={{upstreams 8080}}' - 'caddy_0.handle_path=/*' - caddy_0.header=-Server @@ -1111,6 +1121,7 @@ - coolify.environmentName=production - coolify.pullRequestId=0 - 'caddy_0.encode=zstd gzip' + - caddy_0.handle_path.0_reverse_proxy.stream_close_delay=24h - 'caddy_0.handle_path.0_reverse_proxy={{upstreams}}' - 'caddy_0.handle_path=/blog:2368*' - caddy_0.header=-Server @@ -1487,6 +1498,7 @@ - coolify.environmentName=production - coolify.pullRequestId=7 - 'caddy_0.encode=zstd gzip' + - caddy_0.handle_path.0_reverse_proxy.stream_close_delay=24h - 'caddy_0.handle_path.0_reverse_proxy={{upstreams 3000}}' - 'caddy_0.handle_path=/*' - caddy_0.header.0_-Server= @@ -1579,6 +1591,7 @@ - coolify.environmentName=production - coolify.pullRequestId=7 - 'caddy_0.encode=zstd gzip' + - caddy_0.handle_path.0_reverse_proxy.stream_close_delay=24h - 'caddy_0.handle_path.0_reverse_proxy={{upstreams 3001}}' - 'caddy_0.handle_path=/*' - caddy_0.header.0_-Server= @@ -1640,6 +1653,7 @@ - coolify.environmentName=production - coolify.pullRequestId=7 - 'caddy_0.encode=zstd gzip' + - caddy_0.handle_path.0_reverse_proxy.stream_close_delay=24h - 'caddy_0.handle_path.0_reverse_proxy={{upstreams 80}}' - 'caddy_0.handle_path=/*' - caddy_0.header.0_-Server= @@ -1669,6 +1683,7 @@ - coolify.environmentName=production - coolify.pullRequestId=7 - 'caddy_0.encode=zstd gzip' + - caddy_0.handle_path.0_reverse_proxy.stream_close_delay=24h - 'caddy_0.handle_path.0_reverse_proxy={{upstreams}}' - 'caddy_0.handle_path=/*' - caddy_0.header.0_-Server= @@ -1766,6 +1781,7 @@ - coolify.environmentName=production - coolify.pullRequestId=7 - 'caddy_0.encode=zstd gzip' + - caddy_0.handle_path.0_reverse_proxy.stream_close_delay=24h - 'caddy_0.handle_path.0_reverse_proxy={{upstreams 8080}}' - 'caddy_0.handle_path=/*' - caddy_0.header.0_-Server= @@ -1823,6 +1839,7 @@ - coolify.environmentName=production - coolify.pullRequestId=7 - 'caddy_0.encode=zstd gzip' + - caddy_0.handle_path.0_reverse_proxy.stream_close_delay=24h - 'caddy_0.handle_path.0_reverse_proxy={{upstreams}}' - 'caddy_0.handle_path=/blog:2368*' - caddy_0.header.0_-Server= diff --git a/tests/Fixtures/parser/expected/application-with-settings.yaml b/tests/Fixtures/parser/expected/application-with-settings.yaml index 74e4be6b1e..b55728dd9b 100644 --- a/tests/Fixtures/parser/expected/application-with-settings.yaml +++ b/tests/Fixtures/parser/expected/application-with-settings.yaml @@ -146,6 +146,7 @@ - 'traefik.http.routers.http-0-referenceapplication0001-web-2567.rule=Host(`web-referenceapplication0001.10.0.0.1.sslip.io`) && PathPrefix(`/`)' - traefik.http.routers.http-0-referenceapplication0001-web-2567.service=http-0-referenceapplication0001-web-2567 - traefik.http.services.http-0-referenceapplication0001-web-2567.loadbalancer.server.port=3000 + - caddy_0.handle.0_reverse_proxy.stream_close_delay=24h - 'caddy_0.handle.0_reverse_proxy={{upstreams 3000}}' - 'caddy_0.handle=/*' - caddy_0.header=-Server @@ -247,6 +248,7 @@ - 'traefik.http.routers.http-0-referenceapplication0001-api-8a5d.rule=Host(`api-referenceapplication0001.10.0.0.1.sslip.io`) && PathPrefix(`/`)' - traefik.http.routers.http-0-referenceapplication0001-api-8a5d.service=http-0-referenceapplication0001-api-8a5d - traefik.http.services.http-0-referenceapplication0001-api-8a5d.loadbalancer.server.port=3001 + - caddy_0.handle.0_reverse_proxy.stream_close_delay=24h - 'caddy_0.handle.0_reverse_proxy={{upstreams 3001}}' - 'caddy_0.handle=/*' - caddy_0.header=-Server @@ -317,6 +319,7 @@ - 'traefik.http.routers.http-0-referenceapplication0001-my-app-4dcb.rule=Host(`my-app-referenceapplication0001.10.0.0.1.sslip.io`) && PathPrefix(`/`)' - traefik.http.routers.http-0-referenceapplication0001-my-app-4dcb.service=http-0-referenceapplication0001-my-app-4dcb - traefik.http.services.http-0-referenceapplication0001-my-app-4dcb.loadbalancer.server.port=80 + - caddy_0.handle.0_reverse_proxy.stream_close_delay=24h - 'caddy_0.handle.0_reverse_proxy={{upstreams 80}}' - 'caddy_0.handle=/*' - caddy_0.header=-Server @@ -445,6 +448,7 @@ - 'traefik.http.routers.http-0-referenceapplication0001-admin-2123.rule=Host(`admin-referenceapplication0001.10.0.0.1.sslip.io`) && PathPrefix(`/`)' - traefik.http.routers.http-0-referenceapplication0001-admin-2123.service=http-0-referenceapplication0001-admin-2123 - traefik.http.services.http-0-referenceapplication0001-admin-2123.loadbalancer.server.port=8080 + - caddy_0.handle.0_reverse_proxy.stream_close_delay=24h - 'caddy_0.handle.0_reverse_proxy={{upstreams 8080}}' - 'caddy_0.handle=/*' - caddy_0.header=-Server @@ -516,6 +520,7 @@ - traefik.http.routers.http-0-referenceapplication0001-blog-126a.entryPoints=http - traefik.http.routers.http-0-referenceapplication0001-blog-126a.middlewares=redir-ghost-referenceapplication0001 - 'traefik.http.routers.http-0-referenceapplication0001-blog-126a.rule=Host(`blog-referenceapplication0001.10.0.0.1.sslip.io`) && PathPrefix(`/blog:2368`)' + - caddy_0.handle.0_reverse_proxy.stream_close_delay=24h - 'caddy_0.handle.0_reverse_proxy={{upstreams}}' - 'caddy_0.handle=/blog:2368*' - caddy_0.header=-Server @@ -910,6 +915,7 @@ - traefik.http.routers.https-0-referenceapplication0001-web-2567.tls=true - traefik.http.services.http-0-referenceapplication0001-web-2567.loadbalancer.server.port=3000 - traefik.http.services.https-0-referenceapplication0001-web-2567.loadbalancer.server.port=3000 + - caddy_0.handle.0_reverse_proxy.stream_close_delay=24h - 'caddy_0.handle.0_reverse_proxy={{upstreams 3000}}' - 'caddy_0.handle=/*' - caddy_0.header=-Server @@ -1024,6 +1030,7 @@ - traefik.http.routers.https-0-referenceapplication0001-api-8a5d.tls=true - traefik.http.services.http-0-referenceapplication0001-api-8a5d.loadbalancer.server.port=3001 - traefik.http.services.https-0-referenceapplication0001-api-8a5d.loadbalancer.server.port=3001 + - caddy_0.handle.0_reverse_proxy.stream_close_delay=24h - 'caddy_0.handle.0_reverse_proxy={{upstreams 3001}}' - 'caddy_0.handle=/*' - caddy_0.header=-Server @@ -1104,6 +1111,7 @@ - traefik.http.routers.https-0-referenceapplication0001-my-app-4dcb.tls=true - traefik.http.services.http-0-referenceapplication0001-my-app-4dcb.loadbalancer.server.port=80 - traefik.http.services.https-0-referenceapplication0001-my-app-4dcb.loadbalancer.server.port=80 + - caddy_0.handle.0_reverse_proxy.stream_close_delay=24h - 'caddy_0.handle.0_reverse_proxy={{upstreams 80}}' - 'caddy_0.handle=/*' - caddy_0.header=-Server @@ -1147,6 +1155,7 @@ - 'traefik.http.routers.https-0-referenceapplication0001-api-v2-b0fa.rule=Host(`api-v2.example.com`) && PathPrefix(`/`)' - traefik.http.routers.https-0-referenceapplication0001-api-v2-b0fa.tls.certresolver=letsencrypt - traefik.http.routers.https-0-referenceapplication0001-api-v2-b0fa.tls=true + - caddy_0.handle.0_reverse_proxy.stream_close_delay=24h - 'caddy_0.handle.0_reverse_proxy={{upstreams}}' - 'caddy_0.handle=/*' - caddy_0.header=-Server @@ -1261,6 +1270,7 @@ - traefik.http.routers.https-0-referenceapplication0001-admin-2123.tls=true - traefik.http.services.http-0-referenceapplication0001-admin-2123.loadbalancer.server.port=8080 - traefik.http.services.https-0-referenceapplication0001-admin-2123.loadbalancer.server.port=8080 + - caddy_0.handle.0_reverse_proxy.stream_close_delay=24h - 'caddy_0.handle.0_reverse_proxy={{upstreams 8080}}' - 'caddy_0.handle=/*' - caddy_0.header=-Server @@ -1339,6 +1349,7 @@ - 'traefik.http.routers.https-0-referenceapplication0001-blog-126a.rule=Host(`blog.example.com`) && PathPrefix(`/blog:2368`)' - traefik.http.routers.https-0-referenceapplication0001-blog-126a.tls.certresolver=letsencrypt - traefik.http.routers.https-0-referenceapplication0001-blog-126a.tls=true + - caddy_0.handle.0_reverse_proxy.stream_close_delay=24h - 'caddy_0.handle.0_reverse_proxy={{upstreams}}' - 'caddy_0.handle=/blog:2368*' - caddy_0.header=-Server @@ -1764,6 +1775,7 @@ - traefik.http.routers.https-0-referenceapplication0001-7-web-2567.tls=true - traefik.http.services.http-0-referenceapplication0001-7-web-2567.loadbalancer.server.port=3000 - traefik.http.services.https-0-referenceapplication0001-7-web-2567.loadbalancer.server.port=3000 + - caddy_0.handle.0_reverse_proxy.stream_close_delay=24h - 'caddy_0.handle.0_reverse_proxy={{upstreams 3000}}' - 'caddy_0.handle=/*' - caddy_0.header.0_-Server= @@ -1879,6 +1891,7 @@ - traefik.http.routers.https-0-referenceapplication0001-7-api-8a5d.tls=true - traefik.http.services.http-0-referenceapplication0001-7-api-8a5d.loadbalancer.server.port=3001 - traefik.http.services.https-0-referenceapplication0001-7-api-8a5d.loadbalancer.server.port=3001 + - caddy_0.handle.0_reverse_proxy.stream_close_delay=24h - 'caddy_0.handle.0_reverse_proxy={{upstreams 3001}}' - 'caddy_0.handle=/*' - caddy_0.header.0_-Server= @@ -1963,6 +1976,7 @@ - traefik.http.routers.https-0-referenceapplication0001-7-my-app-4dcb.tls=true - traefik.http.services.http-0-referenceapplication0001-7-my-app-4dcb.loadbalancer.server.port=80 - traefik.http.services.https-0-referenceapplication0001-7-my-app-4dcb.loadbalancer.server.port=80 + - caddy_0.handle.0_reverse_proxy.stream_close_delay=24h - 'caddy_0.handle.0_reverse_proxy={{upstreams 80}}' - 'caddy_0.handle=/*' - caddy_0.header.0_-Server= @@ -2011,6 +2025,7 @@ - 'traefik.http.routers.https-0-referenceapplication0001-7-api-v2-b0fa.rule=Host(`7.api-v2.example.com`) && PathPrefix(`/`)' - traefik.http.routers.https-0-referenceapplication0001-7-api-v2-b0fa.tls.certresolver=letsencrypt - traefik.http.routers.https-0-referenceapplication0001-7-api-v2-b0fa.tls=true + - caddy_0.handle.0_reverse_proxy.stream_close_delay=24h - 'caddy_0.handle.0_reverse_proxy={{upstreams}}' - 'caddy_0.handle=/*' - caddy_0.header.0_-Server= @@ -2132,6 +2147,7 @@ - traefik.http.routers.https-0-referenceapplication0001-7-admin-2123.tls=true - traefik.http.services.http-0-referenceapplication0001-7-admin-2123.loadbalancer.server.port=8080 - traefik.http.services.https-0-referenceapplication0001-7-admin-2123.loadbalancer.server.port=8080 + - caddy_0.handle.0_reverse_proxy.stream_close_delay=24h - 'caddy_0.handle.0_reverse_proxy={{upstreams 8080}}' - 'caddy_0.handle=/*' - caddy_0.header.0_-Server= @@ -2212,6 +2228,7 @@ - 'traefik.http.routers.https-0-referenceapplication0001-7-blog-126a.rule=Host(`7.blog.example.com`) && PathPrefix(`/blog:2368`)' - traefik.http.routers.https-0-referenceapplication0001-7-blog-126a.tls.certresolver=letsencrypt - traefik.http.routers.https-0-referenceapplication0001-7-blog-126a.tls=true + - caddy_0.handle.0_reverse_proxy.stream_close_delay=24h - 'caddy_0.handle.0_reverse_proxy={{upstreams}}' - 'caddy_0.handle=/blog:2368*' - caddy_0.header.0_-Server= diff --git a/tests/Fixtures/parser/expected/application.yaml b/tests/Fixtures/parser/expected/application.yaml index 1f00eccb40..2730ff4a4a 100644 --- a/tests/Fixtures/parser/expected/application.yaml +++ b/tests/Fixtures/parser/expected/application.yaml @@ -149,6 +149,7 @@ - traefik.http.routers.http-0-referenceapplication0001-web-2567.service=http-0-referenceapplication0001-web-2567 - traefik.http.services.http-0-referenceapplication0001-web-2567.loadbalancer.server.port=3000 - 'caddy_0.encode=zstd gzip' + - caddy_0.handle_path.0_reverse_proxy.stream_close_delay=24h - 'caddy_0.handle_path.0_reverse_proxy={{upstreams 3000}}' - 'caddy_0.handle_path=/*' - caddy_0.header=-Server @@ -245,6 +246,7 @@ - traefik.http.routers.http-0-referenceapplication0001-api-8a5d.service=http-0-referenceapplication0001-api-8a5d - traefik.http.services.http-0-referenceapplication0001-api-8a5d.loadbalancer.server.port=3001 - 'caddy_0.encode=zstd gzip' + - caddy_0.handle_path.0_reverse_proxy.stream_close_delay=24h - 'caddy_0.handle_path.0_reverse_proxy={{upstreams 3001}}' - 'caddy_0.handle_path=/*' - caddy_0.header=-Server @@ -310,6 +312,7 @@ - traefik.http.routers.http-0-referenceapplication0001-my-app-4dcb.service=http-0-referenceapplication0001-my-app-4dcb - traefik.http.services.http-0-referenceapplication0001-my-app-4dcb.loadbalancer.server.port=80 - 'caddy_0.encode=zstd gzip' + - caddy_0.handle_path.0_reverse_proxy.stream_close_delay=24h - 'caddy_0.handle_path.0_reverse_proxy={{upstreams 80}}' - 'caddy_0.handle_path=/*' - caddy_0.header=-Server @@ -424,6 +427,7 @@ - traefik.http.routers.http-0-referenceapplication0001-admin-2123.service=http-0-referenceapplication0001-admin-2123 - traefik.http.services.http-0-referenceapplication0001-admin-2123.loadbalancer.server.port=8080 - 'caddy_0.encode=zstd gzip' + - caddy_0.handle_path.0_reverse_proxy.stream_close_delay=24h - 'caddy_0.handle_path.0_reverse_proxy={{upstreams 8080}}' - 'caddy_0.handle_path=/*' - caddy_0.header=-Server @@ -490,6 +494,7 @@ - 'traefik.http.routers.http-0-referenceapplication0001-blog-126a.middlewares=gzip-sse,redir-ghost-referenceapplication0001' - 'traefik.http.routers.http-0-referenceapplication0001-blog-126a.rule=Host(`blog-referenceapplication0001.10.0.0.1.sslip.io`) && PathPrefix(`/blog:2368`)' - 'caddy_0.encode=zstd gzip' + - caddy_0.handle_path.0_reverse_proxy.stream_close_delay=24h - 'caddy_0.handle_path.0_reverse_proxy={{upstreams}}' - 'caddy_0.handle_path=/blog:2368*' - caddy_0.header=-Server @@ -853,6 +858,7 @@ - traefik.http.services.http-0-referenceapplication0001-web-2567.loadbalancer.server.port=3000 - traefik.http.services.https-0-referenceapplication0001-web-2567.loadbalancer.server.port=3000 - 'caddy_0.encode=zstd gzip' + - caddy_0.handle_path.0_reverse_proxy.stream_close_delay=24h - 'caddy_0.handle_path.0_reverse_proxy={{upstreams 3000}}' - 'caddy_0.handle_path=/*' - caddy_0.header=-Server @@ -961,6 +967,7 @@ - traefik.http.services.http-0-referenceapplication0001-api-8a5d.loadbalancer.server.port=3001 - traefik.http.services.https-0-referenceapplication0001-api-8a5d.loadbalancer.server.port=3001 - 'caddy_0.encode=zstd gzip' + - caddy_0.handle_path.0_reverse_proxy.stream_close_delay=24h - 'caddy_0.handle_path.0_reverse_proxy={{upstreams 3001}}' - 'caddy_0.handle_path=/*' - caddy_0.header=-Server @@ -1036,6 +1043,7 @@ - traefik.http.services.http-0-referenceapplication0001-my-app-4dcb.loadbalancer.server.port=80 - traefik.http.services.https-0-referenceapplication0001-my-app-4dcb.loadbalancer.server.port=80 - 'caddy_0.encode=zstd gzip' + - caddy_0.handle_path.0_reverse_proxy.stream_close_delay=24h - 'caddy_0.handle_path.0_reverse_proxy={{upstreams 80}}' - 'caddy_0.handle_path=/*' - caddy_0.header=-Server @@ -1074,6 +1082,7 @@ - traefik.http.routers.https-0-referenceapplication0001-api-v2-b0fa.tls.certresolver=letsencrypt - traefik.http.routers.https-0-referenceapplication0001-api-v2-b0fa.tls=true - 'caddy_0.encode=zstd gzip' + - caddy_0.handle_path.0_reverse_proxy.stream_close_delay=24h - 'caddy_0.handle_path.0_reverse_proxy={{upstreams}}' - 'caddy_0.handle_path=/*' - caddy_0.header=-Server @@ -1182,6 +1191,7 @@ - traefik.http.services.http-0-referenceapplication0001-admin-2123.loadbalancer.server.port=8080 - traefik.http.services.https-0-referenceapplication0001-admin-2123.loadbalancer.server.port=8080 - 'caddy_0.encode=zstd gzip' + - caddy_0.handle_path.0_reverse_proxy.stream_close_delay=24h - 'caddy_0.handle_path.0_reverse_proxy={{upstreams 8080}}' - 'caddy_0.handle_path=/*' - caddy_0.header=-Server @@ -1255,6 +1265,7 @@ - traefik.http.routers.https-0-referenceapplication0001-blog-126a.tls.certresolver=letsencrypt - traefik.http.routers.https-0-referenceapplication0001-blog-126a.tls=true - 'caddy_0.encode=zstd gzip' + - caddy_0.handle_path.0_reverse_proxy.stream_close_delay=24h - 'caddy_0.handle_path.0_reverse_proxy={{upstreams}}' - 'caddy_0.handle_path=/blog:2368*' - caddy_0.header=-Server @@ -1648,6 +1659,7 @@ - traefik.http.services.http-0-referenceapplication0001-7-web-2567.loadbalancer.server.port=3000 - traefik.http.services.https-0-referenceapplication0001-7-web-2567.loadbalancer.server.port=3000 - 'caddy_0.encode=zstd gzip' + - caddy_0.handle_path.0_reverse_proxy.stream_close_delay=24h - 'caddy_0.handle_path.0_reverse_proxy={{upstreams 3000}}' - 'caddy_0.handle_path=/*' - caddy_0.header.0_-Server= @@ -1757,6 +1769,7 @@ - traefik.http.services.http-0-referenceapplication0001-7-api-8a5d.loadbalancer.server.port=3001 - traefik.http.services.https-0-referenceapplication0001-7-api-8a5d.loadbalancer.server.port=3001 - 'caddy_0.encode=zstd gzip' + - caddy_0.handle_path.0_reverse_proxy.stream_close_delay=24h - 'caddy_0.handle_path.0_reverse_proxy={{upstreams 3001}}' - 'caddy_0.handle_path=/*' - caddy_0.header.0_-Server= @@ -1835,6 +1848,7 @@ - traefik.http.services.http-0-referenceapplication0001-7-my-app-4dcb.loadbalancer.server.port=80 - traefik.http.services.https-0-referenceapplication0001-7-my-app-4dcb.loadbalancer.server.port=80 - 'caddy_0.encode=zstd gzip' + - caddy_0.handle_path.0_reverse_proxy.stream_close_delay=24h - 'caddy_0.handle_path.0_reverse_proxy={{upstreams 80}}' - 'caddy_0.handle_path=/*' - caddy_0.header.0_-Server= @@ -1877,6 +1891,7 @@ - traefik.http.routers.https-0-referenceapplication0001-7-api-v2-b0fa.tls.certresolver=letsencrypt - traefik.http.routers.https-0-referenceapplication0001-7-api-v2-b0fa.tls=true - 'caddy_0.encode=zstd gzip' + - caddy_0.handle_path.0_reverse_proxy.stream_close_delay=24h - 'caddy_0.handle_path.0_reverse_proxy={{upstreams}}' - 'caddy_0.handle_path=/*' - caddy_0.header.0_-Server= @@ -1991,6 +2006,7 @@ - traefik.http.services.http-0-referenceapplication0001-7-admin-2123.loadbalancer.server.port=8080 - traefik.http.services.https-0-referenceapplication0001-7-admin-2123.loadbalancer.server.port=8080 - 'caddy_0.encode=zstd gzip' + - caddy_0.handle_path.0_reverse_proxy.stream_close_delay=24h - 'caddy_0.handle_path.0_reverse_proxy={{upstreams 8080}}' - 'caddy_0.handle_path=/*' - caddy_0.header.0_-Server= @@ -2066,6 +2082,7 @@ - traefik.http.routers.https-0-referenceapplication0001-7-blog-126a.tls.certresolver=letsencrypt - traefik.http.routers.https-0-referenceapplication0001-7-blog-126a.tls=true - 'caddy_0.encode=zstd gzip' + - caddy_0.handle_path.0_reverse_proxy.stream_close_delay=24h - 'caddy_0.handle_path.0_reverse_proxy={{upstreams}}' - 'caddy_0.handle_path=/blog:2368*' - caddy_0.header.0_-Server= diff --git a/tests/Fixtures/parser/expected/reference-with-application-settings.yaml b/tests/Fixtures/parser/expected/reference-with-application-settings.yaml index 494375702c..e91538c13d 100644 --- a/tests/Fixtures/parser/expected/reference-with-application-settings.yaml +++ b/tests/Fixtures/parser/expected/reference-with-application-settings.yaml @@ -226,6 +226,7 @@ - 'traefik.http.routers.http-0-referenceservice00000001-web-2567.rule=Host(`web-referenceservice00000001.10.0.0.1.sslip.io`) && PathPrefix(`/`)' - traefik.http.routers.http-0-referenceservice00000001-web-2567.service=http-0-referenceservice00000001-web-2567 - traefik.http.services.http-0-referenceservice00000001-web-2567.loadbalancer.server.port=8080 + - caddy_0.handle_path.0_reverse_proxy.stream_close_delay=24h - 'caddy_0.handle_path.0_reverse_proxy={{upstreams 8080}}' - 'caddy_0.handle_path=/*' - caddy_0.header.0_-Server= @@ -348,6 +349,7 @@ - traefik.http.routers.http-0-referenceservice00000001-api-8a5d.service=http-0-referenceservice00000001-api-8a5d - traefik.http.services.http-0-referenceservice00000001-api-8a5d.loadbalancer.server.port=3000 - 'caddy_0.encode=zstd gzip' + - caddy_0.handle.0_reverse_proxy.stream_close_delay=24h - 'caddy_0.handle.0_reverse_proxy={{upstreams 3000}}' - 'caddy_0.handle=/api*' - caddy_0.header=-Server @@ -407,6 +409,7 @@ - traefik.http.routers.http-0-referenceservice00000001-my-app-4dcb.service=http-0-referenceservice00000001-my-app-4dcb - traefik.http.services.http-0-referenceservice00000001-my-app-4dcb.loadbalancer.server.port=80 - 'caddy_0.encode=zstd gzip' + - caddy_0.handle_path.0_reverse_proxy.stream_close_delay=24h - 'caddy_0.handle_path.0_reverse_proxy={{upstreams 80}}' - 'caddy_0.handle_path=/*' - caddy_0.header=-Server @@ -464,6 +467,7 @@ - traefik.http.routers.http-0-referenceservice00000001-www-4eae.middlewares=gzip-sse - 'traefik.http.routers.http-0-referenceservice00000001-www-4eae.rule=Host(`www-referenceservice00000001.10.0.0.1.sslip.io`) && PathPrefix(`/`)' - 'caddy_0.encode=zstd gzip' + - caddy_0.handle_path.0_reverse_proxy.stream_close_delay=24h - 'caddy_0.handle_path.0_reverse_proxy={{upstreams}}' - 'caddy_0.handle_path=/*' - caddy_0.header=-Server @@ -528,6 +532,7 @@ - traefik.http.routers.http-0-referenceservice00000001-blog-126a.service=http-0-referenceservice00000001-blog-126a - traefik.http.services.http-0-referenceservice00000001-blog-126a.loadbalancer.server.port=2368 - 'caddy_0.encode=zstd gzip' + - caddy_0.handle_path.0_reverse_proxy.stream_close_delay=24h - 'caddy_0.handle_path.0_reverse_proxy={{upstreams 2368}}' - 'caddy_0.handle_path=/blog*' - caddy_0.header=-Server @@ -585,6 +590,7 @@ - traefik.http.routers.http-0-referenceservice00000001-gateway-3e21.middlewares=gzip-sse - 'traefik.http.routers.http-0-referenceservice00000001-gateway-3e21.rule=Host(`gateway-referenceservice00000001.10.0.0.1.sslip.io`) && PathPrefix(`/`)' - 'caddy_0.encode=zstd gzip' + - caddy_0.handle_path.0_reverse_proxy.stream_close_delay=24h - 'caddy_0.handle_path.0_reverse_proxy={{upstreams}}' - 'caddy_0.handle_path=/*' - caddy_0.header=-Server @@ -643,6 +649,7 @@ - 'traefik.http.routers.http-0-referenceservice00000001-gateway-ws-d203.middlewares=http-0-referenceservice00000001-gateway-ws-d203-stripprefix,gzip-sse' - 'traefik.http.routers.http-0-referenceservice00000001-gateway-ws-d203.rule=Host(`gateway-referenceservice00000001.10.0.0.1.sslip.io`) && PathPrefix(`/ws`)' - 'caddy_0.encode=zstd gzip' + - caddy_0.handle_path.0_reverse_proxy.stream_close_delay=24h - 'caddy_0.handle_path.0_reverse_proxy={{upstreams}}' - 'caddy_0.handle_path=/ws*' - caddy_0.header=-Server @@ -1099,6 +1106,7 @@ - traefik.http.routers.https-0-referenceservice00000001-web-2567.tls=true - traefik.http.services.http-0-referenceservice00000001-web-2567.loadbalancer.server.port=8080 - traefik.http.services.https-0-referenceservice00000001-web-2567.loadbalancer.server.port=8080 + - caddy_0.handle_path.0_reverse_proxy.stream_close_delay=24h - 'caddy_0.handle_path.0_reverse_proxy={{upstreams 8080}}' - 'caddy_0.handle_path=/*' - caddy_0.header=-Server @@ -1227,6 +1235,7 @@ - traefik.http.services.http-0-referenceservice00000001-api-8a5d.loadbalancer.server.port=3000 - traefik.http.services.https-0-referenceservice00000001-api-8a5d.loadbalancer.server.port=3000 - 'caddy_0.encode=zstd gzip' + - caddy_0.handle.0_reverse_proxy.stream_close_delay=24h - 'caddy_0.handle.0_reverse_proxy={{upstreams 3000}}' - 'caddy_0.handle=/api*' - caddy_0.header=-Server @@ -1293,6 +1302,7 @@ - traefik.http.services.http-0-referenceservice00000001-my-app-4dcb.loadbalancer.server.port=80 - traefik.http.services.https-0-referenceservice00000001-my-app-4dcb.loadbalancer.server.port=80 - 'caddy_0.encode=zstd gzip' + - caddy_0.handle_path.0_reverse_proxy.stream_close_delay=24h - 'caddy_0.handle_path.0_reverse_proxy={{upstreams 80}}' - 'caddy_0.handle_path=/*' - caddy_0.header=-Server @@ -1358,6 +1368,7 @@ - traefik.http.routers.https-0-referenceservice00000001-www-4eae.tls.certresolver=letsencrypt - traefik.http.routers.https-0-referenceservice00000001-www-4eae.tls=true - 'caddy_0.encode=zstd gzip' + - caddy_0.handle_path.0_reverse_proxy.stream_close_delay=24h - 'caddy_0.handle_path.0_reverse_proxy={{upstreams}}' - 'caddy_0.handle_path=/*' - caddy_0.header=-Server @@ -1430,6 +1441,7 @@ - traefik.http.services.http-0-referenceservice00000001-blog-126a.loadbalancer.server.port=2368 - traefik.http.services.https-0-referenceservice00000001-blog-126a.loadbalancer.server.port=2368 - 'caddy_0.encode=zstd gzip' + - caddy_0.handle_path.0_reverse_proxy.stream_close_delay=24h - 'caddy_0.handle_path.0_reverse_proxy={{upstreams 2368}}' - 'caddy_0.handle_path=/blog*' - caddy_0.header=-Server @@ -1492,6 +1504,7 @@ - traefik.http.routers.https-0-referenceservice00000001-gateway-3e21.tls.certresolver=letsencrypt - traefik.http.routers.https-0-referenceservice00000001-gateway-3e21.tls=true - 'caddy_0.encode=zstd gzip' + - caddy_0.handle_path.0_reverse_proxy.stream_close_delay=24h - 'caddy_0.handle_path.0_reverse_proxy={{upstreams}}' - 'caddy_0.handle_path=/*' - caddy_0.header=-Server @@ -1555,6 +1568,7 @@ - traefik.http.routers.https-0-referenceservice00000001-gateway-ws-d203.tls.certresolver=letsencrypt - traefik.http.routers.https-0-referenceservice00000001-gateway-ws-d203.tls=true - 'caddy_0.encode=zstd gzip' + - caddy_0.handle_path.0_reverse_proxy.stream_close_delay=24h - 'caddy_0.handle_path.0_reverse_proxy={{upstreams}}' - 'caddy_0.handle_path=/ws*' - caddy_0.header=-Server @@ -2014,6 +2028,7 @@ - traefik.http.routers.https-0-referenceservice00000001-web-2567.tls=true - traefik.http.services.http-0-referenceservice00000001-web-2567.loadbalancer.server.port=8080 - traefik.http.services.https-0-referenceservice00000001-web-2567.loadbalancer.server.port=8080 + - caddy_0.handle_path.0_reverse_proxy.stream_close_delay=24h - 'caddy_0.handle_path.0_reverse_proxy={{upstreams 8080}}' - 'caddy_0.handle_path=/*' - caddy_0.header=-Server @@ -2142,6 +2157,7 @@ - traefik.http.services.http-0-referenceservice00000001-api-8a5d.loadbalancer.server.port=3000 - traefik.http.services.https-0-referenceservice00000001-api-8a5d.loadbalancer.server.port=3000 - 'caddy_0.encode=zstd gzip' + - caddy_0.handle.0_reverse_proxy.stream_close_delay=24h - 'caddy_0.handle.0_reverse_proxy={{upstreams 3000}}' - 'caddy_0.handle=/api*' - caddy_0.header=-Server @@ -2208,6 +2224,7 @@ - traefik.http.services.http-0-referenceservice00000001-my-app-4dcb.loadbalancer.server.port=80 - traefik.http.services.https-0-referenceservice00000001-my-app-4dcb.loadbalancer.server.port=80 - 'caddy_0.encode=zstd gzip' + - caddy_0.handle_path.0_reverse_proxy.stream_close_delay=24h - 'caddy_0.handle_path.0_reverse_proxy={{upstreams 80}}' - 'caddy_0.handle_path=/*' - caddy_0.header=-Server @@ -2273,6 +2290,7 @@ - traefik.http.routers.https-0-referenceservice00000001-www-4eae.tls.certresolver=letsencrypt - traefik.http.routers.https-0-referenceservice00000001-www-4eae.tls=true - 'caddy_0.encode=zstd gzip' + - caddy_0.handle_path.0_reverse_proxy.stream_close_delay=24h - 'caddy_0.handle_path.0_reverse_proxy={{upstreams}}' - 'caddy_0.handle_path=/*' - caddy_0.header=-Server @@ -2345,6 +2363,7 @@ - traefik.http.services.http-0-referenceservice00000001-blog-126a.loadbalancer.server.port=2368 - traefik.http.services.https-0-referenceservice00000001-blog-126a.loadbalancer.server.port=2368 - 'caddy_0.encode=zstd gzip' + - caddy_0.handle_path.0_reverse_proxy.stream_close_delay=24h - 'caddy_0.handle_path.0_reverse_proxy={{upstreams 2368}}' - 'caddy_0.handle_path=/blog*' - caddy_0.header=-Server @@ -2407,6 +2426,7 @@ - traefik.http.routers.https-0-referenceservice00000001-gateway-3e21.tls.certresolver=letsencrypt - traefik.http.routers.https-0-referenceservice00000001-gateway-3e21.tls=true - 'caddy_0.encode=zstd gzip' + - caddy_0.handle_path.0_reverse_proxy.stream_close_delay=24h - 'caddy_0.handle_path.0_reverse_proxy={{upstreams}}' - 'caddy_0.handle_path=/*' - caddy_0.header=-Server @@ -2470,6 +2490,7 @@ - traefik.http.routers.https-0-referenceservice00000001-gateway-ws-d203.tls.certresolver=letsencrypt - traefik.http.routers.https-0-referenceservice00000001-gateway-ws-d203.tls=true - 'caddy_0.encode=zstd gzip' + - caddy_0.handle_path.0_reverse_proxy.stream_close_delay=24h - 'caddy_0.handle_path.0_reverse_proxy={{upstreams}}' - 'caddy_0.handle_path=/ws*' - caddy_0.header=-Server @@ -2540,6 +2561,7 @@ - traefik.http.services.http-0-referenceservice00000001-worker-b618.loadbalancer.server.port=8080 - traefik.http.services.https-0-referenceservice00000001-worker-b618.loadbalancer.server.port=8080 - 'caddy_0.encode=zstd gzip' + - caddy_0.handle_path.0_reverse_proxy.stream_close_delay=24h - 'caddy_0.handle_path.0_reverse_proxy={{upstreams 8080}}' - 'caddy_0.handle_path=/*' - caddy_0.header=-Server @@ -2608,6 +2630,7 @@ - traefik.http.services.http-0-referenceservice00000001-scheduler-499f.loadbalancer.server.port=8080 - traefik.http.services.https-0-referenceservice00000001-scheduler-499f.loadbalancer.server.port=8080 - 'caddy_0.encode=zstd gzip' + - caddy_0.handle_path.0_reverse_proxy.stream_close_delay=24h - 'caddy_0.handle_path.0_reverse_proxy={{upstreams 8080}}' - 'caddy_0.handle_path=/*' - caddy_0.header=-Server @@ -2704,6 +2727,7 @@ - traefik.http.routers.https-0-referenceservice00000001-sidecar-9523.tls.certresolver=letsencrypt - traefik.http.routers.https-0-referenceservice00000001-sidecar-9523.tls=true - 'caddy_0.encode=zstd gzip' + - caddy_0.handle_path.0_reverse_proxy.stream_close_delay=24h - 'caddy_0.handle_path.0_reverse_proxy={{upstreams}}' - 'caddy_0.handle_path=/*' - caddy_0.header=-Server diff --git a/tests/Fixtures/parser/expected/reference-with-exact-caddy-labels.yaml b/tests/Fixtures/parser/expected/reference-with-exact-caddy-labels.yaml index 2042347003..08e0dd778e 100644 --- a/tests/Fixtures/parser/expected/reference-with-exact-caddy-labels.yaml +++ b/tests/Fixtures/parser/expected/reference-with-exact-caddy-labels.yaml @@ -215,6 +215,7 @@ - coolify.service.subType=application - coolify.service.subName=web - 'caddy_0.encode=zstd gzip' + - caddy_0.handle_path.0_reverse_proxy.stream_close_delay=24h - 'caddy_0.handle_path.0_reverse_proxy={{upstreams 8080}}' - 'caddy_0.handle_path=/*' - caddy_0.header=-Server @@ -324,6 +325,7 @@ - coolify.service.subType=application - coolify.service.subName=api - 'caddy_0.encode=zstd gzip' + - caddy_0.handle_path.0_reverse_proxy.stream_close_delay=24h - 'caddy_0.handle_path.0_reverse_proxy={{upstreams 3000}}' - 'caddy_0.handle_path=/api*' - caddy_0.header=-Server @@ -379,6 +381,7 @@ - coolify.service.subType=application - coolify.service.subName=my-app - 'caddy_0.encode=zstd gzip' + - caddy_0.handle_path.0_reverse_proxy.stream_close_delay=24h - 'caddy_0.handle_path.0_reverse_proxy={{upstreams 80}}' - 'caddy_0.handle_path=/*' - caddy_0.header=-Server @@ -434,6 +437,7 @@ - coolify.service.subType=application - coolify.service.subName=www - 'caddy_0.encode=zstd gzip' + - caddy_0.handle_path.0_reverse_proxy.stream_close_delay=24h - 'caddy_0.handle_path.0_reverse_proxy={{upstreams}}' - 'caddy_0.handle_path=/*' - caddy_0.header=-Server @@ -489,6 +493,7 @@ - coolify.service.subType=application - coolify.service.subName=blog - 'caddy_0.encode=zstd gzip' + - caddy_0.handle_path.0_reverse_proxy.stream_close_delay=24h - 'caddy_0.handle_path.0_reverse_proxy={{upstreams 2368}}' - 'caddy_0.handle_path=/blog*' - caddy_0.header=-Server @@ -544,6 +549,7 @@ - coolify.service.subType=application - coolify.service.subName=gateway - 'caddy_0.encode=zstd gzip' + - caddy_0.handle_path.0_reverse_proxy.stream_close_delay=24h - 'caddy_0.handle_path.0_reverse_proxy={{upstreams}}' - 'caddy_0.handle_path=/*' - caddy_0.header=-Server @@ -599,6 +605,7 @@ - coolify.service.subType=application - coolify.service.subName=gateway-ws - 'caddy_0.encode=zstd gzip' + - caddy_0.handle_path.0_reverse_proxy.stream_close_delay=24h - 'caddy_0.handle_path.0_reverse_proxy={{upstreams}}' - 'caddy_0.handle_path=/ws*' - caddy_0.header=-Server @@ -1043,6 +1050,7 @@ - coolify.service.subType=application - coolify.service.subName=web - 'caddy_0.encode=zstd gzip' + - caddy_0.handle_path.0_reverse_proxy.stream_close_delay=24h - 'caddy_0.handle_path.0_reverse_proxy={{upstreams 8080}}' - 'caddy_0.handle_path=/*' - caddy_0.header=-Server @@ -1152,6 +1160,7 @@ - coolify.service.subType=application - coolify.service.subName=api - 'caddy_0.encode=zstd gzip' + - caddy_0.handle_path.0_reverse_proxy.stream_close_delay=24h - 'caddy_0.handle_path.0_reverse_proxy={{upstreams 3000}}' - 'caddy_0.handle_path=/api*' - caddy_0.header=-Server @@ -1207,6 +1216,7 @@ - coolify.service.subType=application - coolify.service.subName=my-app - 'caddy_0.encode=zstd gzip' + - caddy_0.handle_path.0_reverse_proxy.stream_close_delay=24h - 'caddy_0.handle_path.0_reverse_proxy={{upstreams 80}}' - 'caddy_0.handle_path=/*' - caddy_0.header=-Server @@ -1262,6 +1272,7 @@ - coolify.service.subType=application - coolify.service.subName=www - 'caddy_0.encode=zstd gzip' + - caddy_0.handle_path.0_reverse_proxy.stream_close_delay=24h - 'caddy_0.handle_path.0_reverse_proxy={{upstreams}}' - 'caddy_0.handle_path=/*' - caddy_0.header=-Server @@ -1317,6 +1328,7 @@ - coolify.service.subType=application - coolify.service.subName=blog - 'caddy_0.encode=zstd gzip' + - caddy_0.handle_path.0_reverse_proxy.stream_close_delay=24h - 'caddy_0.handle_path.0_reverse_proxy={{upstreams 2368}}' - 'caddy_0.handle_path=/blog*' - caddy_0.header=-Server @@ -1372,6 +1384,7 @@ - coolify.service.subType=application - coolify.service.subName=gateway - 'caddy_0.encode=zstd gzip' + - caddy_0.handle_path.0_reverse_proxy.stream_close_delay=24h - 'caddy_0.handle_path.0_reverse_proxy={{upstreams}}' - 'caddy_0.handle_path=/*' - caddy_0.header=-Server @@ -1427,6 +1440,7 @@ - coolify.service.subType=application - coolify.service.subName=gateway-ws - 'caddy_0.encode=zstd gzip' + - caddy_0.handle_path.0_reverse_proxy.stream_close_delay=24h - 'caddy_0.handle_path.0_reverse_proxy={{upstreams}}' - 'caddy_0.handle_path=/ws*' - caddy_0.header=-Server @@ -1874,6 +1888,7 @@ - coolify.service.subType=application - coolify.service.subName=web - 'caddy_0.encode=zstd gzip' + - caddy_0.handle_path.0_reverse_proxy.stream_close_delay=24h - 'caddy_0.handle_path.0_reverse_proxy={{upstreams 8080}}' - 'caddy_0.handle_path=/*' - caddy_0.header=-Server @@ -1983,6 +1998,7 @@ - coolify.service.subType=application - coolify.service.subName=api - 'caddy_0.encode=zstd gzip' + - caddy_0.handle_path.0_reverse_proxy.stream_close_delay=24h - 'caddy_0.handle_path.0_reverse_proxy={{upstreams 3000}}' - 'caddy_0.handle_path=/api*' - caddy_0.header=-Server @@ -2038,6 +2054,7 @@ - coolify.service.subType=application - coolify.service.subName=my-app - 'caddy_0.encode=zstd gzip' + - caddy_0.handle_path.0_reverse_proxy.stream_close_delay=24h - 'caddy_0.handle_path.0_reverse_proxy={{upstreams 80}}' - 'caddy_0.handle_path=/*' - caddy_0.header=-Server @@ -2093,6 +2110,7 @@ - coolify.service.subType=application - coolify.service.subName=www - 'caddy_0.encode=zstd gzip' + - caddy_0.handle_path.0_reverse_proxy.stream_close_delay=24h - 'caddy_0.handle_path.0_reverse_proxy={{upstreams}}' - 'caddy_0.handle_path=/*' - caddy_0.header=-Server @@ -2148,6 +2166,7 @@ - coolify.service.subType=application - coolify.service.subName=blog - 'caddy_0.encode=zstd gzip' + - caddy_0.handle_path.0_reverse_proxy.stream_close_delay=24h - 'caddy_0.handle_path.0_reverse_proxy={{upstreams 2368}}' - 'caddy_0.handle_path=/blog*' - caddy_0.header=-Server @@ -2203,6 +2222,7 @@ - coolify.service.subType=application - coolify.service.subName=gateway - 'caddy_0.encode=zstd gzip' + - caddy_0.handle_path.0_reverse_proxy.stream_close_delay=24h - 'caddy_0.handle_path.0_reverse_proxy={{upstreams}}' - 'caddy_0.handle_path=/*' - caddy_0.header=-Server @@ -2258,6 +2278,7 @@ - coolify.service.subType=application - coolify.service.subName=gateway-ws - 'caddy_0.encode=zstd gzip' + - caddy_0.handle_path.0_reverse_proxy.stream_close_delay=24h - 'caddy_0.handle_path.0_reverse_proxy={{upstreams}}' - 'caddy_0.handle_path=/ws*' - caddy_0.header=-Server @@ -2317,6 +2338,7 @@ - coolify.service.subType=application - coolify.service.subName=worker - 'caddy_0.encode=zstd gzip' + - caddy_0.handle_path.0_reverse_proxy.stream_close_delay=24h - 'caddy_0.handle_path.0_reverse_proxy={{upstreams 8080}}' - 'caddy_0.handle_path=/*' - caddy_0.header=-Server @@ -2374,6 +2396,7 @@ - coolify.service.subType=application - coolify.service.subName=scheduler - 'caddy_0.encode=zstd gzip' + - caddy_0.handle_path.0_reverse_proxy.stream_close_delay=24h - 'caddy_0.handle_path.0_reverse_proxy={{upstreams 8080}}' - 'caddy_0.handle_path=/*' - caddy_0.header=-Server @@ -2464,6 +2487,7 @@ - coolify.service.subType=application - coolify.service.subName=sidecar - 'caddy_0.encode=zstd gzip' + - caddy_0.handle_path.0_reverse_proxy.stream_close_delay=24h - 'caddy_0.handle_path.0_reverse_proxy={{upstreams}}' - 'caddy_0.handle_path=/*' - caddy_0.header=-Server diff --git a/tests/Fixtures/parser/expected/reference-with-migrated-services.yaml b/tests/Fixtures/parser/expected/reference-with-migrated-services.yaml index 6509b31a64..779a29b110 100644 --- a/tests/Fixtures/parser/expected/reference-with-migrated-services.yaml +++ b/tests/Fixtures/parser/expected/reference-with-migrated-services.yaml @@ -226,6 +226,7 @@ - traefik.http.routers.http-0-referenceservice00000001-web-2567.service=http-0-referenceservice00000001-web-2567 - traefik.http.services.http-0-referenceservice00000001-web-2567.loadbalancer.server.port=8080 - 'caddy_0.encode=zstd gzip' + - caddy_0.handle_path.0_reverse_proxy.stream_close_delay=24h - 'caddy_0.handle_path.0_reverse_proxy={{upstreams 8080}}' - 'caddy_0.handle_path=/*' - caddy_0.header=-Server @@ -340,6 +341,7 @@ - traefik.http.routers.http-0-referenceservice00000001-api-8a5d.service=http-0-referenceservice00000001-api-8a5d - traefik.http.services.http-0-referenceservice00000001-api-8a5d.loadbalancer.server.port=3000 - 'caddy_0.encode=zstd gzip' + - caddy_0.handle_path.0_reverse_proxy.stream_close_delay=24h - 'caddy_0.handle_path.0_reverse_proxy={{upstreams 3000}}' - 'caddy_0.handle_path=/api*' - caddy_0.header=-Server @@ -399,6 +401,7 @@ - traefik.http.routers.http-0-referenceservice00000001-my-app-4dcb.service=http-0-referenceservice00000001-my-app-4dcb - traefik.http.services.http-0-referenceservice00000001-my-app-4dcb.loadbalancer.server.port=80 - 'caddy_0.encode=zstd gzip' + - caddy_0.handle_path.0_reverse_proxy.stream_close_delay=24h - 'caddy_0.handle_path.0_reverse_proxy={{upstreams 80}}' - 'caddy_0.handle_path=/*' - caddy_0.header=-Server @@ -456,6 +459,7 @@ - traefik.http.routers.http-0-referenceservice00000001-www-4eae.middlewares=gzip-sse - 'traefik.http.routers.http-0-referenceservice00000001-www-4eae.rule=Host(`www-referenceservice00000001.10.0.0.1.sslip.io`) && PathPrefix(`/`)' - 'caddy_0.encode=zstd gzip' + - caddy_0.handle_path.0_reverse_proxy.stream_close_delay=24h - 'caddy_0.handle_path.0_reverse_proxy={{upstreams}}' - 'caddy_0.handle_path=/*' - caddy_0.header=-Server @@ -520,6 +524,7 @@ - traefik.http.routers.http-0-referenceservice00000001-blog-126a.service=http-0-referenceservice00000001-blog-126a - traefik.http.services.http-0-referenceservice00000001-blog-126a.loadbalancer.server.port=2368 - 'caddy_0.encode=zstd gzip' + - caddy_0.handle_path.0_reverse_proxy.stream_close_delay=24h - 'caddy_0.handle_path.0_reverse_proxy={{upstreams 2368}}' - 'caddy_0.handle_path=/blog*' - caddy_0.header=-Server @@ -577,6 +582,7 @@ - traefik.http.routers.http-0-referenceservice00000001-gateway-3e21.middlewares=gzip-sse - 'traefik.http.routers.http-0-referenceservice00000001-gateway-3e21.rule=Host(`gateway-referenceservice00000001.10.0.0.1.sslip.io`) && PathPrefix(`/`)' - 'caddy_0.encode=zstd gzip' + - caddy_0.handle_path.0_reverse_proxy.stream_close_delay=24h - 'caddy_0.handle_path.0_reverse_proxy={{upstreams}}' - 'caddy_0.handle_path=/*' - caddy_0.header=-Server @@ -635,6 +641,7 @@ - 'traefik.http.routers.http-0-referenceservice00000001-gateway-ws-d203.middlewares=http-0-referenceservice00000001-gateway-ws-d203-stripprefix,gzip-sse' - 'traefik.http.routers.http-0-referenceservice00000001-gateway-ws-d203.rule=Host(`gateway-referenceservice00000001.10.0.0.1.sslip.io`) && PathPrefix(`/ws`)' - 'caddy_0.encode=zstd gzip' + - caddy_0.handle_path.0_reverse_proxy.stream_close_delay=24h - 'caddy_0.handle_path.0_reverse_proxy={{upstreams}}' - 'caddy_0.handle_path=/ws*' - caddy_0.header=-Server @@ -796,6 +803,7 @@ - traefik.http.routers.http-0-referenceservice00000001-db-d77d.service=http-0-referenceservice00000001-db-d77d - traefik.http.services.http-0-referenceservice00000001-db-d77d.loadbalancer.server.port=5432 - 'caddy_0.encode=zstd gzip' + - caddy_0.handle_path.0_reverse_proxy.stream_close_delay=24h - 'caddy_0.handle_path.0_reverse_proxy={{upstreams 5432}}' - 'caddy_0.handle_path=/*' - caddy_0.header=-Server @@ -1110,6 +1118,7 @@ - traefik.http.services.http-0-referenceservice00000001-web-2567.loadbalancer.server.port=8080 - traefik.http.services.https-0-referenceservice00000001-web-2567.loadbalancer.server.port=8080 - 'caddy_0.encode=zstd gzip' + - caddy_0.handle_path.0_reverse_proxy.stream_close_delay=24h - 'caddy_0.handle_path.0_reverse_proxy={{upstreams 8080}}' - 'caddy_0.handle_path=/*' - caddy_0.header=-Server @@ -1231,6 +1240,7 @@ - traefik.http.services.http-0-referenceservice00000001-api-8a5d.loadbalancer.server.port=3000 - traefik.http.services.https-0-referenceservice00000001-api-8a5d.loadbalancer.server.port=3000 - 'caddy_0.encode=zstd gzip' + - caddy_0.handle_path.0_reverse_proxy.stream_close_delay=24h - 'caddy_0.handle_path.0_reverse_proxy={{upstreams 3000}}' - 'caddy_0.handle_path=/api*' - caddy_0.header=-Server @@ -1297,6 +1307,7 @@ - traefik.http.services.http-0-referenceservice00000001-my-app-4dcb.loadbalancer.server.port=80 - traefik.http.services.https-0-referenceservice00000001-my-app-4dcb.loadbalancer.server.port=80 - 'caddy_0.encode=zstd gzip' + - caddy_0.handle_path.0_reverse_proxy.stream_close_delay=24h - 'caddy_0.handle_path.0_reverse_proxy={{upstreams 80}}' - 'caddy_0.handle_path=/*' - caddy_0.header=-Server @@ -1359,6 +1370,7 @@ - traefik.http.routers.https-0-referenceservice00000001-www-4eae.tls.certresolver=letsencrypt - traefik.http.routers.https-0-referenceservice00000001-www-4eae.tls=true - 'caddy_0.encode=zstd gzip' + - caddy_0.handle_path.0_reverse_proxy.stream_close_delay=24h - 'caddy_0.handle_path.0_reverse_proxy={{upstreams}}' - 'caddy_0.handle_path=/*' - caddy_0.header=-Server @@ -1430,6 +1442,7 @@ - traefik.http.services.http-0-referenceservice00000001-blog-126a.loadbalancer.server.port=2368 - traefik.http.services.https-0-referenceservice00000001-blog-126a.loadbalancer.server.port=2368 - 'caddy_0.encode=zstd gzip' + - caddy_0.handle_path.0_reverse_proxy.stream_close_delay=24h - 'caddy_0.handle_path.0_reverse_proxy={{upstreams 2368}}' - 'caddy_0.handle_path=/blog*' - caddy_0.header=-Server @@ -1492,6 +1505,7 @@ - traefik.http.routers.https-0-referenceservice00000001-gateway-3e21.tls.certresolver=letsencrypt - traefik.http.routers.https-0-referenceservice00000001-gateway-3e21.tls=true - 'caddy_0.encode=zstd gzip' + - caddy_0.handle_path.0_reverse_proxy.stream_close_delay=24h - 'caddy_0.handle_path.0_reverse_proxy={{upstreams}}' - 'caddy_0.handle_path=/*' - caddy_0.header=-Server @@ -1555,6 +1569,7 @@ - traefik.http.routers.https-0-referenceservice00000001-gateway-ws-d203.tls.certresolver=letsencrypt - traefik.http.routers.https-0-referenceservice00000001-gateway-ws-d203.tls=true - 'caddy_0.encode=zstd gzip' + - caddy_0.handle_path.0_reverse_proxy.stream_close_delay=24h - 'caddy_0.handle_path.0_reverse_proxy={{upstreams}}' - 'caddy_0.handle_path=/ws*' - caddy_0.header=-Server @@ -1723,6 +1738,7 @@ - traefik.http.services.http-0-referenceservice00000001-db-d77d.loadbalancer.server.port=5432 - traefik.http.services.https-0-referenceservice00000001-db-d77d.loadbalancer.server.port=5432 - 'caddy_0.encode=zstd gzip' + - caddy_0.handle_path.0_reverse_proxy.stream_close_delay=24h - 'caddy_0.handle_path.0_reverse_proxy={{upstreams 5432}}' - 'caddy_0.handle_path=/*' - caddy_0.header=-Server @@ -2039,6 +2055,7 @@ - traefik.http.services.http-0-referenceservice00000001-web-2567.loadbalancer.server.port=8080 - traefik.http.services.https-0-referenceservice00000001-web-2567.loadbalancer.server.port=8080 - 'caddy_0.encode=zstd gzip' + - caddy_0.handle_path.0_reverse_proxy.stream_close_delay=24h - 'caddy_0.handle_path.0_reverse_proxy={{upstreams 8080}}' - 'caddy_0.handle_path=/*' - caddy_0.header=-Server @@ -2160,6 +2177,7 @@ - traefik.http.services.http-0-referenceservice00000001-api-8a5d.loadbalancer.server.port=3000 - traefik.http.services.https-0-referenceservice00000001-api-8a5d.loadbalancer.server.port=3000 - 'caddy_0.encode=zstd gzip' + - caddy_0.handle_path.0_reverse_proxy.stream_close_delay=24h - 'caddy_0.handle_path.0_reverse_proxy={{upstreams 3000}}' - 'caddy_0.handle_path=/api*' - caddy_0.header=-Server @@ -2226,6 +2244,7 @@ - traefik.http.services.http-0-referenceservice00000001-my-app-4dcb.loadbalancer.server.port=80 - traefik.http.services.https-0-referenceservice00000001-my-app-4dcb.loadbalancer.server.port=80 - 'caddy_0.encode=zstd gzip' + - caddy_0.handle_path.0_reverse_proxy.stream_close_delay=24h - 'caddy_0.handle_path.0_reverse_proxy={{upstreams 80}}' - 'caddy_0.handle_path=/*' - caddy_0.header=-Server @@ -2288,6 +2307,7 @@ - traefik.http.routers.https-0-referenceservice00000001-www-4eae.tls.certresolver=letsencrypt - traefik.http.routers.https-0-referenceservice00000001-www-4eae.tls=true - 'caddy_0.encode=zstd gzip' + - caddy_0.handle_path.0_reverse_proxy.stream_close_delay=24h - 'caddy_0.handle_path.0_reverse_proxy={{upstreams}}' - 'caddy_0.handle_path=/*' - caddy_0.header=-Server @@ -2359,6 +2379,7 @@ - traefik.http.services.http-0-referenceservice00000001-blog-126a.loadbalancer.server.port=2368 - traefik.http.services.https-0-referenceservice00000001-blog-126a.loadbalancer.server.port=2368 - 'caddy_0.encode=zstd gzip' + - caddy_0.handle_path.0_reverse_proxy.stream_close_delay=24h - 'caddy_0.handle_path.0_reverse_proxy={{upstreams 2368}}' - 'caddy_0.handle_path=/blog*' - caddy_0.header=-Server @@ -2421,6 +2442,7 @@ - traefik.http.routers.https-0-referenceservice00000001-gateway-3e21.tls.certresolver=letsencrypt - traefik.http.routers.https-0-referenceservice00000001-gateway-3e21.tls=true - 'caddy_0.encode=zstd gzip' + - caddy_0.handle_path.0_reverse_proxy.stream_close_delay=24h - 'caddy_0.handle_path.0_reverse_proxy={{upstreams}}' - 'caddy_0.handle_path=/*' - caddy_0.header=-Server @@ -2484,6 +2506,7 @@ - traefik.http.routers.https-0-referenceservice00000001-gateway-ws-d203.tls.certresolver=letsencrypt - traefik.http.routers.https-0-referenceservice00000001-gateway-ws-d203.tls=true - 'caddy_0.encode=zstd gzip' + - caddy_0.handle_path.0_reverse_proxy.stream_close_delay=24h - 'caddy_0.handle_path.0_reverse_proxy={{upstreams}}' - 'caddy_0.handle_path=/ws*' - caddy_0.header=-Server @@ -2554,6 +2577,7 @@ - traefik.http.services.http-0-referenceservice00000001-worker-b618.loadbalancer.server.port=8080 - traefik.http.services.https-0-referenceservice00000001-worker-b618.loadbalancer.server.port=8080 - 'caddy_0.encode=zstd gzip' + - caddy_0.handle_path.0_reverse_proxy.stream_close_delay=24h - 'caddy_0.handle_path.0_reverse_proxy={{upstreams 8080}}' - 'caddy_0.handle_path=/*' - caddy_0.header=-Server @@ -2622,6 +2646,7 @@ - traefik.http.services.http-0-referenceservice00000001-scheduler-499f.loadbalancer.server.port=8080 - traefik.http.services.https-0-referenceservice00000001-scheduler-499f.loadbalancer.server.port=8080 - 'caddy_0.encode=zstd gzip' + - caddy_0.handle_path.0_reverse_proxy.stream_close_delay=24h - 'caddy_0.handle_path.0_reverse_proxy={{upstreams 8080}}' - 'caddy_0.handle_path=/*' - caddy_0.header=-Server @@ -2702,6 +2727,7 @@ - traefik.http.services.http-0-referenceservice00000001-db-d77d.loadbalancer.server.port=5432 - traefik.http.services.https-0-referenceservice00000001-db-d77d.loadbalancer.server.port=5432 - 'caddy_0.encode=zstd gzip' + - caddy_0.handle_path.0_reverse_proxy.stream_close_delay=24h - 'caddy_0.handle_path.0_reverse_proxy={{upstreams 5432}}' - 'caddy_0.handle_path=/*' - caddy_0.header=-Server diff --git a/tests/Fixtures/parser/expected/reference.yaml b/tests/Fixtures/parser/expected/reference.yaml index b16b231c8e..2d1af5c16a 100644 --- a/tests/Fixtures/parser/expected/reference.yaml +++ b/tests/Fixtures/parser/expected/reference.yaml @@ -224,6 +224,7 @@ - traefik.http.routers.http-0-referenceservice00000001-web-2567.service=http-0-referenceservice00000001-web-2567 - traefik.http.services.http-0-referenceservice00000001-web-2567.loadbalancer.server.port=8080 - 'caddy_0.encode=zstd gzip' + - caddy_0.handle_path.0_reverse_proxy.stream_close_delay=24h - 'caddy_0.handle_path.0_reverse_proxy={{upstreams 8080}}' - 'caddy_0.handle_path=/*' - caddy_0.header=-Server @@ -338,6 +339,7 @@ - traefik.http.routers.http-0-referenceservice00000001-api-8a5d.service=http-0-referenceservice00000001-api-8a5d - traefik.http.services.http-0-referenceservice00000001-api-8a5d.loadbalancer.server.port=3000 - 'caddy_0.encode=zstd gzip' + - caddy_0.handle_path.0_reverse_proxy.stream_close_delay=24h - 'caddy_0.handle_path.0_reverse_proxy={{upstreams 3000}}' - 'caddy_0.handle_path=/api*' - caddy_0.header=-Server @@ -397,6 +399,7 @@ - traefik.http.routers.http-0-referenceservice00000001-my-app-4dcb.service=http-0-referenceservice00000001-my-app-4dcb - traefik.http.services.http-0-referenceservice00000001-my-app-4dcb.loadbalancer.server.port=80 - 'caddy_0.encode=zstd gzip' + - caddy_0.handle_path.0_reverse_proxy.stream_close_delay=24h - 'caddy_0.handle_path.0_reverse_proxy={{upstreams 80}}' - 'caddy_0.handle_path=/*' - caddy_0.header=-Server @@ -454,6 +457,7 @@ - traefik.http.routers.http-0-referenceservice00000001-www-4eae.middlewares=gzip-sse - 'traefik.http.routers.http-0-referenceservice00000001-www-4eae.rule=Host(`www-referenceservice00000001.10.0.0.1.sslip.io`) && PathPrefix(`/`)' - 'caddy_0.encode=zstd gzip' + - caddy_0.handle_path.0_reverse_proxy.stream_close_delay=24h - 'caddy_0.handle_path.0_reverse_proxy={{upstreams}}' - 'caddy_0.handle_path=/*' - caddy_0.header=-Server @@ -518,6 +522,7 @@ - traefik.http.routers.http-0-referenceservice00000001-blog-126a.service=http-0-referenceservice00000001-blog-126a - traefik.http.services.http-0-referenceservice00000001-blog-126a.loadbalancer.server.port=2368 - 'caddy_0.encode=zstd gzip' + - caddy_0.handle_path.0_reverse_proxy.stream_close_delay=24h - 'caddy_0.handle_path.0_reverse_proxy={{upstreams 2368}}' - 'caddy_0.handle_path=/blog*' - caddy_0.header=-Server @@ -575,6 +580,7 @@ - traefik.http.routers.http-0-referenceservice00000001-gateway-3e21.middlewares=gzip-sse - 'traefik.http.routers.http-0-referenceservice00000001-gateway-3e21.rule=Host(`gateway-referenceservice00000001.10.0.0.1.sslip.io`) && PathPrefix(`/`)' - 'caddy_0.encode=zstd gzip' + - caddy_0.handle_path.0_reverse_proxy.stream_close_delay=24h - 'caddy_0.handle_path.0_reverse_proxy={{upstreams}}' - 'caddy_0.handle_path=/*' - caddy_0.header=-Server @@ -633,6 +639,7 @@ - 'traefik.http.routers.http-0-referenceservice00000001-gateway-ws-d203.middlewares=http-0-referenceservice00000001-gateway-ws-d203-stripprefix,gzip-sse' - 'traefik.http.routers.http-0-referenceservice00000001-gateway-ws-d203.rule=Host(`gateway-referenceservice00000001.10.0.0.1.sslip.io`) && PathPrefix(`/ws`)' - 'caddy_0.encode=zstd gzip' + - caddy_0.handle_path.0_reverse_proxy.stream_close_delay=24h - 'caddy_0.handle_path.0_reverse_proxy={{upstreams}}' - 'caddy_0.handle_path=/ws*' - caddy_0.header=-Server @@ -1088,6 +1095,7 @@ - traefik.http.services.http-0-referenceservice00000001-web-2567.loadbalancer.server.port=8080 - traefik.http.services.https-0-referenceservice00000001-web-2567.loadbalancer.server.port=8080 - 'caddy_0.encode=zstd gzip' + - caddy_0.handle_path.0_reverse_proxy.stream_close_delay=24h - 'caddy_0.handle_path.0_reverse_proxy={{upstreams 8080}}' - 'caddy_0.handle_path=/*' - caddy_0.header=-Server @@ -1209,6 +1217,7 @@ - traefik.http.services.http-0-referenceservice00000001-api-8a5d.loadbalancer.server.port=3000 - traefik.http.services.https-0-referenceservice00000001-api-8a5d.loadbalancer.server.port=3000 - 'caddy_0.encode=zstd gzip' + - caddy_0.handle_path.0_reverse_proxy.stream_close_delay=24h - 'caddy_0.handle_path.0_reverse_proxy={{upstreams 3000}}' - 'caddy_0.handle_path=/api*' - caddy_0.header=-Server @@ -1275,6 +1284,7 @@ - traefik.http.services.http-0-referenceservice00000001-my-app-4dcb.loadbalancer.server.port=80 - traefik.http.services.https-0-referenceservice00000001-my-app-4dcb.loadbalancer.server.port=80 - 'caddy_0.encode=zstd gzip' + - caddy_0.handle_path.0_reverse_proxy.stream_close_delay=24h - 'caddy_0.handle_path.0_reverse_proxy={{upstreams 80}}' - 'caddy_0.handle_path=/*' - caddy_0.header=-Server @@ -1337,6 +1347,7 @@ - traefik.http.routers.https-0-referenceservice00000001-www-4eae.tls.certresolver=letsencrypt - traefik.http.routers.https-0-referenceservice00000001-www-4eae.tls=true - 'caddy_0.encode=zstd gzip' + - caddy_0.handle_path.0_reverse_proxy.stream_close_delay=24h - 'caddy_0.handle_path.0_reverse_proxy={{upstreams}}' - 'caddy_0.handle_path=/*' - caddy_0.header=-Server @@ -1408,6 +1419,7 @@ - traefik.http.services.http-0-referenceservice00000001-blog-126a.loadbalancer.server.port=2368 - traefik.http.services.https-0-referenceservice00000001-blog-126a.loadbalancer.server.port=2368 - 'caddy_0.encode=zstd gzip' + - caddy_0.handle_path.0_reverse_proxy.stream_close_delay=24h - 'caddy_0.handle_path.0_reverse_proxy={{upstreams 2368}}' - 'caddy_0.handle_path=/blog*' - caddy_0.header=-Server @@ -1470,6 +1482,7 @@ - traefik.http.routers.https-0-referenceservice00000001-gateway-3e21.tls.certresolver=letsencrypt - traefik.http.routers.https-0-referenceservice00000001-gateway-3e21.tls=true - 'caddy_0.encode=zstd gzip' + - caddy_0.handle_path.0_reverse_proxy.stream_close_delay=24h - 'caddy_0.handle_path.0_reverse_proxy={{upstreams}}' - 'caddy_0.handle_path=/*' - caddy_0.header=-Server @@ -1533,6 +1546,7 @@ - traefik.http.routers.https-0-referenceservice00000001-gateway-ws-d203.tls.certresolver=letsencrypt - traefik.http.routers.https-0-referenceservice00000001-gateway-ws-d203.tls=true - 'caddy_0.encode=zstd gzip' + - caddy_0.handle_path.0_reverse_proxy.stream_close_delay=24h - 'caddy_0.handle_path.0_reverse_proxy={{upstreams}}' - 'caddy_0.handle_path=/ws*' - caddy_0.header=-Server @@ -1991,6 +2005,7 @@ - traefik.http.services.http-0-referenceservice00000001-web-2567.loadbalancer.server.port=8080 - traefik.http.services.https-0-referenceservice00000001-web-2567.loadbalancer.server.port=8080 - 'caddy_0.encode=zstd gzip' + - caddy_0.handle_path.0_reverse_proxy.stream_close_delay=24h - 'caddy_0.handle_path.0_reverse_proxy={{upstreams 8080}}' - 'caddy_0.handle_path=/*' - caddy_0.header=-Server @@ -2112,6 +2127,7 @@ - traefik.http.services.http-0-referenceservice00000001-api-8a5d.loadbalancer.server.port=3000 - traefik.http.services.https-0-referenceservice00000001-api-8a5d.loadbalancer.server.port=3000 - 'caddy_0.encode=zstd gzip' + - caddy_0.handle_path.0_reverse_proxy.stream_close_delay=24h - 'caddy_0.handle_path.0_reverse_proxy={{upstreams 3000}}' - 'caddy_0.handle_path=/api*' - caddy_0.header=-Server @@ -2178,6 +2194,7 @@ - traefik.http.services.http-0-referenceservice00000001-my-app-4dcb.loadbalancer.server.port=80 - traefik.http.services.https-0-referenceservice00000001-my-app-4dcb.loadbalancer.server.port=80 - 'caddy_0.encode=zstd gzip' + - caddy_0.handle_path.0_reverse_proxy.stream_close_delay=24h - 'caddy_0.handle_path.0_reverse_proxy={{upstreams 80}}' - 'caddy_0.handle_path=/*' - caddy_0.header=-Server @@ -2240,6 +2257,7 @@ - traefik.http.routers.https-0-referenceservice00000001-www-4eae.tls.certresolver=letsencrypt - traefik.http.routers.https-0-referenceservice00000001-www-4eae.tls=true - 'caddy_0.encode=zstd gzip' + - caddy_0.handle_path.0_reverse_proxy.stream_close_delay=24h - 'caddy_0.handle_path.0_reverse_proxy={{upstreams}}' - 'caddy_0.handle_path=/*' - caddy_0.header=-Server @@ -2311,6 +2329,7 @@ - traefik.http.services.http-0-referenceservice00000001-blog-126a.loadbalancer.server.port=2368 - traefik.http.services.https-0-referenceservice00000001-blog-126a.loadbalancer.server.port=2368 - 'caddy_0.encode=zstd gzip' + - caddy_0.handle_path.0_reverse_proxy.stream_close_delay=24h - 'caddy_0.handle_path.0_reverse_proxy={{upstreams 2368}}' - 'caddy_0.handle_path=/blog*' - caddy_0.header=-Server @@ -2373,6 +2392,7 @@ - traefik.http.routers.https-0-referenceservice00000001-gateway-3e21.tls.certresolver=letsencrypt - traefik.http.routers.https-0-referenceservice00000001-gateway-3e21.tls=true - 'caddy_0.encode=zstd gzip' + - caddy_0.handle_path.0_reverse_proxy.stream_close_delay=24h - 'caddy_0.handle_path.0_reverse_proxy={{upstreams}}' - 'caddy_0.handle_path=/*' - caddy_0.header=-Server @@ -2436,6 +2456,7 @@ - traefik.http.routers.https-0-referenceservice00000001-gateway-ws-d203.tls.certresolver=letsencrypt - traefik.http.routers.https-0-referenceservice00000001-gateway-ws-d203.tls=true - 'caddy_0.encode=zstd gzip' + - caddy_0.handle_path.0_reverse_proxy.stream_close_delay=24h - 'caddy_0.handle_path.0_reverse_proxy={{upstreams}}' - 'caddy_0.handle_path=/ws*' - caddy_0.header=-Server @@ -2506,6 +2527,7 @@ - traefik.http.services.http-0-referenceservice00000001-worker-b618.loadbalancer.server.port=8080 - traefik.http.services.https-0-referenceservice00000001-worker-b618.loadbalancer.server.port=8080 - 'caddy_0.encode=zstd gzip' + - caddy_0.handle_path.0_reverse_proxy.stream_close_delay=24h - 'caddy_0.handle_path.0_reverse_proxy={{upstreams 8080}}' - 'caddy_0.handle_path=/*' - caddy_0.header=-Server @@ -2574,6 +2596,7 @@ - traefik.http.services.http-0-referenceservice00000001-scheduler-499f.loadbalancer.server.port=8080 - traefik.http.services.https-0-referenceservice00000001-scheduler-499f.loadbalancer.server.port=8080 - 'caddy_0.encode=zstd gzip' + - caddy_0.handle_path.0_reverse_proxy.stream_close_delay=24h - 'caddy_0.handle_path.0_reverse_proxy={{upstreams 8080}}' - 'caddy_0.handle_path=/*' - caddy_0.header=-Server @@ -2670,6 +2693,7 @@ - traefik.http.routers.https-0-referenceservice00000001-sidecar-9523.tls.certresolver=letsencrypt - traefik.http.routers.https-0-referenceservice00000001-sidecar-9523.tls=true - 'caddy_0.encode=zstd gzip' + - caddy_0.handle_path.0_reverse_proxy.stream_close_delay=24h - 'caddy_0.handle_path.0_reverse_proxy={{upstreams}}' - 'caddy_0.handle_path=/*' - caddy_0.header=-Server