- - - -
- - -
From fc0bf2d9f82fe34ad511132e047fd477ba106e55 Mon Sep 17 00:00:00 2001 From: Monviech <79600909+Monviech@users.noreply.github.com> Date: Mon, 2 Sep 2024 18:11:40 +0200 Subject: [PATCH] www/caddy: Refactor general.volt to base_tabs, Update DNS Providers (#4209) * Refactor general.volt from layout_partials/base_form to layout_partials/base_tabs * www/caddy: Refactor general.volt from layout_partials/base_form to layout_partials/base_tabs * Add Layer4 DNS matcher, Add DNS Provider Hetzner, Change DNS Providers Router53 max_retries to hosted_zone_id, Restructure general.xml to add Advanced Settings Tab. * Small tweak that message area starts at approximately the same spot as the Apply button * Adjust Makefile and pkg-descr * www/caddy: reverse_proxy.volt, adjust style to fit with general.volt. Make add buttons primary. Hide Wizard buttons in Subdomaintab. Print errors with alert-danger. * www/caddy: Remove useless help text in diagnostics.volt * www/caddy: Refactor views for ajaxGet and ajaxCall. Clean up some style. Add Comments to functions. Declare functions first before calling them. --- www/caddy/Makefile | 5 +- www/caddy/pkg-descr | 35 +- .../OPNsense/Caddy/GeneralController.php | 4 - .../OPNsense/Caddy/forms/authprovider.xml | 32 -- .../OPNsense/Caddy/forms/dnsprovider.xml | 66 ---- .../OPNsense/Caddy/forms/dynamicdns.xml | 44 --- .../OPNsense/Caddy/forms/general.xml | 302 ++++++++++++---- .../OPNsense/Caddy/forms/logsettings.xml | 27 -- .../mvc/app/models/OPNsense/Caddy/Caddy.xml | 2 + .../app/views/OPNsense/Caddy/diagnostics.volt | 76 ++-- .../mvc/app/views/OPNsense/Caddy/general.volt | 333 +++++------------- .../views/OPNsense/Caddy/reverse_proxy.volt | 256 ++++++++------ .../OPNsense/Caddy/includeDnsProvider | 2 +- 13 files changed, 516 insertions(+), 668 deletions(-) delete mode 100644 www/caddy/src/opnsense/mvc/app/controllers/OPNsense/Caddy/forms/authprovider.xml delete mode 100644 www/caddy/src/opnsense/mvc/app/controllers/OPNsense/Caddy/forms/dnsprovider.xml delete mode 100644 www/caddy/src/opnsense/mvc/app/controllers/OPNsense/Caddy/forms/dynamicdns.xml delete mode 100644 www/caddy/src/opnsense/mvc/app/controllers/OPNsense/Caddy/forms/logsettings.xml diff --git a/www/caddy/Makefile b/www/caddy/Makefile index f8fe5bf0d..d1427802e 100644 --- a/www/caddy/Makefile +++ b/www/caddy/Makefile @@ -1,8 +1,7 @@ PLUGIN_NAME= caddy -PLUGIN_VERSION= 1.6.3 -PLUGIN_REVISION= 1 +PLUGIN_VERSION= 1.7.0 PLUGIN_DEPENDS= caddy-custom -PLUGIN_COMMENT= Easy to configure Reverse Proxy with Automatic HTTPS and Dynamic DNS +PLUGIN_COMMENT= Modern Reverse Proxy with Automatic HTTPS, Dynamic DNS and Layer4 Routing PLUGIN_MAINTAINER= cedrik@pischem.com .include "../../Mk/plugins.mk" diff --git a/www/caddy/pkg-descr b/www/caddy/pkg-descr index edcee0664..650aa8ef9 100644 --- a/www/caddy/pkg-descr +++ b/www/caddy/pkg-descr @@ -1,33 +1,28 @@ Caddy - The Ultimate Server - makes your sites more secure, more reliable, and more scalable than any other solution. -By default, Caddy automatically obtains and renews TLS certificates for all your sites. +By default, Caddy automatically obtains and renews TLS certificates (Let's Encrypt and ZeroSSL) for all your sites. It's the most advanced HTTPS server in the world. -Reverse Proxy HTTP, HTTPS, FastCGI, WebSockets, gRPC, FastCGI (usually PHP), and more! +* Reverse Proxy HTTP, HTTPS and WebSockets +* Route UDP/TCP traffic with the included Layer4 module: https://github.com/mholt/caddy-l4 +* Dynamic DNS module included: https://github.com/mholt/caddy-dynamicdns +* Large selection of DNS Providers available: https://github.com/caddy-dns WWW: https://caddyserver.com/ - -Main features of this plugin: - -* Easy to configure and reliable! Reverse Proxy any HTTP/HTTPS or WebSocket application in minutes. -* Automatic Let's Encrypt and ZeroSSL certificates with HTTP-01 and TLS-ALPN-01 challenge -* DNS-01 challenge and Dynamic DNS with supported DNS Providers built right in -* Use custom certificates from OPNsense certificate store -* Wildcard Domain and Subdomain support -* Access Lists to restrict access based on static networks -* Basic Auth to restrict access by username and password -* Forward Auth with Authelia -* Syslog-ng integration and HTTP Access Log -* NTLM Transport -* Header manipulation -* Simple load balancing with passive health check -* Widgets for OPNsense Dashboard (24.7 and later) -* Layer4 SNI based routing of TCP/UDP - DOC: https://docs.opnsense.org/manual/how-tos/caddy.html Plugin Changelog ================ +1.7.0 + +* Add: Layer4 protocols: DNS +* Add: DNS Providers: Hetzner +* Change: DNS Providers: Route53 field "max_retries" has been renamed to "hosted_zone_id" +* Cleanup: Refactor "general.volt" from "layout_partials/base_form" to "layout_partials/base_tabs" +* Cleanup: Refactor "general.volt", "reverse_proxy.volt" and "diagnostics.volt" to imported ajaxGet() and ajaxCall() +* Cleanup: Adjust style of all views +* Cleanup: Restructure "general.xml" to include tabs, add new "Advanced Settings" Tab + 1.6.3 * Add: Disable Propagation Timeout in DNS Provider Tab. This can help if the DNS Challenge fails due to DNS Propagation being too slow. diff --git a/www/caddy/src/opnsense/mvc/app/controllers/OPNsense/Caddy/GeneralController.php b/www/caddy/src/opnsense/mvc/app/controllers/OPNsense/Caddy/GeneralController.php index 7cc6639f6..0986a01df 100644 --- a/www/caddy/src/opnsense/mvc/app/controllers/OPNsense/Caddy/GeneralController.php +++ b/www/caddy/src/opnsense/mvc/app/controllers/OPNsense/Caddy/GeneralController.php @@ -40,9 +40,5 @@ class GeneralController extends IndexController // Assign the general settings form to the view $this->view->pick('OPNsense/Caddy/general'); $this->view->generalForm = $this->getForm("general"); - $this->view->dnsproviderForm = $this->getForm("dnsprovider"); - $this->view->dynamicdnsForm = $this->getForm("dynamicdns"); - $this->view->authproviderForm = $this->getForm("authprovider"); - $this->view->logsettingsForm = $this->getForm("logsettings"); } } diff --git a/www/caddy/src/opnsense/mvc/app/controllers/OPNsense/Caddy/forms/authprovider.xml b/www/caddy/src/opnsense/mvc/app/controllers/OPNsense/Caddy/forms/authprovider.xml deleted file mode 100644 index 29527af13..000000000 --- a/www/caddy/src/opnsense/mvc/app/controllers/OPNsense/Caddy/forms/authprovider.xml +++ /dev/null @@ -1,32 +0,0 @@ -
diff --git a/www/caddy/src/opnsense/mvc/app/controllers/OPNsense/Caddy/forms/dnsprovider.xml b/www/caddy/src/opnsense/mvc/app/controllers/OPNsense/Caddy/forms/dnsprovider.xml deleted file mode 100644 index b296f9117..000000000 --- a/www/caddy/src/opnsense/mvc/app/controllers/OPNsense/Caddy/forms/dnsprovider.xml +++ /dev/null @@ -1,66 +0,0 @@ - diff --git a/www/caddy/src/opnsense/mvc/app/controllers/OPNsense/Caddy/forms/dynamicdns.xml b/www/caddy/src/opnsense/mvc/app/controllers/OPNsense/Caddy/forms/dynamicdns.xml deleted file mode 100644 index e465103ba..000000000 --- a/www/caddy/src/opnsense/mvc/app/controllers/OPNsense/Caddy/forms/dynamicdns.xml +++ /dev/null @@ -1,44 +0,0 @@ - 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 36e3a2c58..e76e34a2c 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 @@ -1,72 +1,234 @@ diff --git a/www/caddy/src/opnsense/mvc/app/controllers/OPNsense/Caddy/forms/logsettings.xml b/www/caddy/src/opnsense/mvc/app/controllers/OPNsense/Caddy/forms/logsettings.xml deleted file mode 100644 index 7c0f1a5ac..000000000 --- a/www/caddy/src/opnsense/mvc/app/controllers/OPNsense/Caddy/forms/logsettings.xml +++ /dev/null @@ -1,27 +0,0 @@ - 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 4b3e91a56..324e6069e 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 @@ -61,6 +61,7 @@{{ lang._("This is the generated configuration located at %sCaddyfile%s. It's the main configuration file to get support with. The validation button triggers a manual check for any configuration errors, which is the same check that is triggered by the Apply buttons automatically.") | format('/usr/local/etc/caddy/', '') }}
{{ lang._("Shows the running Caddy configuration located in %sautosave.json%s. It is automatically adapted from the Caddyfile and also includes any custom imported configurations from %scaddy.d%s.") | format('/var/db/caddy/config/caddy/', '', '/usr/local/etc/caddy/', '') }}