From c590eef1e27d54a3844f34c8476bd7a64a17936c Mon Sep 17 00:00:00 2001 From: Monviech <79600909+Monviech@users.noreply.github.com> Date: Mon, 30 Jun 2025 10:06:10 +0200 Subject: [PATCH] www/caddy: Add global servers timeouts options (#4778) * www/caddy: Add global servers timeouts options * www/caddy: Bump version and changelog * www/caddy: Add changelog --- www/caddy/Makefile | 2 +- www/caddy/pkg-descr | 6 +++ .../OPNsense/Caddy/forms/general.xml | 40 +++++++++++++++++++ .../mvc/app/models/OPNsense/Caddy/Caddy.xml | 16 ++++++++ .../templates/OPNsense/Caddy/Caddyfile | 20 ++++++++++ 5 files changed, 83 insertions(+), 1 deletion(-) diff --git a/www/caddy/Makefile b/www/caddy/Makefile index 08f8f247a..5b9504ba7 100644 --- a/www/caddy/Makefile +++ b/www/caddy/Makefile @@ -1,5 +1,5 @@ PLUGIN_NAME= caddy -PLUGIN_VERSION= 2.0.1 +PLUGIN_VERSION= 2.0.2 PLUGIN_DEPENDS= caddy-custom PLUGIN_COMMENT= Modern Reverse Proxy with Automatic HTTPS, Dynamic DNS and Layer4 Routing PLUGIN_MAINTAINER= cedrik@pischem.com diff --git a/www/caddy/pkg-descr b/www/caddy/pkg-descr index 6eb887b28..9845f3f37 100644 --- a/www/caddy/pkg-descr +++ b/www/caddy/pkg-descr @@ -6,6 +6,12 @@ DOC: https://docs.opnsense.org/manual/how-tos/caddy.html Plugin Changelog ================ +2.0.2 + +Add: Global server timeout options (opnsense/plugins/pull/4778) +Cleanup: Change all camelCase to snake_case in api notations (opnsense/plugins/pull/4767,4768,4776) +Cleanup: Use SimpleActionButton in general.volt (opnsense/plugins/pull/4779) + 2.0.1 Add: Active health checks to handlers (contributed by zaben903) (opnsense/plugins/pull/4721) diff --git a/www/caddy/src/opnsense/mvc/app/controllers/OPNsense/Caddy/forms/general.xml b/www/caddy/src/opnsense/mvc/app/controllers/OPNsense/Caddy/forms/general.xml index 849ea61d7..bb7d29b7b 100644 --- a/www/caddy/src/opnsense/mvc/app/controllers/OPNsense/Caddy/forms/general.xml +++ b/www/caddy/src/opnsense/mvc/app/controllers/OPNsense/Caddy/forms/general.xml @@ -26,12 +26,20 @@ + + header + + caddy.general.DisableSuperuser dropdown + + header + + caddy.general.HttpVersions @@ -52,6 +60,10 @@ 443 + + header + + caddy.general.accesslist @@ -75,6 +87,34 @@ 10 + + caddy.general.timeout_read_body + + text + no timout + + + + caddy.general.timeout_read_header + + text + no timout + + + + caddy.general.timeout_write + + text + no timout + + + + caddy.general.timeout_idle + + text + 300 + + diff --git a/www/caddy/src/opnsense/mvc/app/models/OPNsense/Caddy/Caddy.xml b/www/caddy/src/opnsense/mvc/app/models/OPNsense/Caddy/Caddy.xml index 3bf5aa4c3..a1b829a4a 100644 --- a/www/caddy/src/opnsense/mvc/app/models/OPNsense/Caddy/Caddy.xml +++ b/www/caddy/src/opnsense/mvc/app/models/OPNsense/Caddy/Caddy.xml @@ -89,6 +89,22 @@

HTTP/3

+ + 0 + Please enter a minimum value of 0 or leave empty for defaults. + + + 0 + Please enter a minimum value of 0 or leave empty for defaults. + + + 0 + Please enter a minimum value of 0 or leave empty for defaults. + + + 0 + Please enter a minimum value of 0 or leave empty for defaults. + diff --git a/www/caddy/src/opnsense/service/templates/OPNsense/Caddy/Caddyfile b/www/caddy/src/opnsense/service/templates/OPNsense/Caddy/Caddyfile index 7c30c2f68..997a746f4 100644 --- a/www/caddy/src/opnsense/service/templates/OPNsense/Caddy/Caddyfile +++ b/www/caddy/src/opnsense/service/templates/OPNsense/Caddy/Caddyfile @@ -93,9 +93,29 @@ {% endif %} {% endfor %} {% endif %} + {% if generalSettings.LogCredentials|default("0") == "1" %} log_credentials {% endif %} + {% if generalSettings.timeout_read_body or + generalSettings.timeout_read_header or + generalSettings.timeout_write or + generalSettings.timeout_idle %} + timeouts { + {% if generalSettings.timeout_read_body %} + read_body {{ generalSettings.timeout_read_body }}s + {% endif %} + {% if generalSettings.timeout_read_header %} + read_header {{ generalSettings.timeout_read_header }}s + {% endif %} + {% if generalSettings.timeout_write %} + write {{ generalSettings.timeout_write }}s + {% endif %} + {% if generalSettings.timeout_idle %} + idle {{ generalSettings.timeout_idle }}s + {% endif %} + } + {% endif %} {% if generalSettings.EnableLayer4|default("0") == "1" %} listener_wrappers { layer4 {