diff --git a/www/caddy/pkg-descr b/www/caddy/pkg-descr
index e0b12623d..85d66a474 100644
--- a/www/caddy/pkg-descr
+++ b/www/caddy/pkg-descr
@@ -33,6 +33,8 @@ Plugin Changelog
* Add: Error message when Auto HTTPS is enabled, and ACME email field is empty, for caddy v2.8.4
* Cleanup: Fix crash of searchAction when reverseUuids is null
* Cleanup: basicauth directive is now basic_auth in the Caddyfile template, for caddy v2.8.4
+* Change: Dynamic DNS "TTL" and "Check Interval" have been changed to seconds. Existing values have been reset to use the defaults of the implementation.
+* Add: Dynamic DNS now supports "Update Only", only updating existing records without creating new ones.
* Fix: The subdomain port field has been removed, since it is unsupported. Subdomains track their ports from their parent wildcard domain.
* Add: DNS Providers: dnsmadeeasy, bunny, civo, scaleway, acmeproxy, inwx, namedotcom, easydns, infomaniak, directadmin, hosttech, vultr
* Remove: DNS Providers: godaddy
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
index 3304ac080..e465103ba 100644
--- 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
@@ -6,16 +6,23 @@
- caddy.general.DynDnsCheckInterval
-
- text
-
+ caddy.general.DynDnsUpdateOnly
+
+ checkbox
+
- caddy.general.DynDnsTTL
+ caddy.general.DynDnsInterval
+
+ text
+ 1800
+
+
+
+ caddy.general.DynDnsTtltext
-
+ header
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 d65186476..eab9054cd 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
@@ -1,7 +1,7 @@
//Pischem/caddyA GUI model for configuring a reverse proxy in the Caddy web server.
- 1.2.1
+ 1.2.2
@@ -108,13 +108,11 @@
Please enter a valid URL, starting with http or https.
-
- 5
+ 1
- 1440
- Please enter a valid number from 1 to 1440 minutes.
- Y
-
+ 2147483647
+ Please enter a valid number from 1 to 2147483647 seconds or leave empty for default.
+
IPv4+IPv6
@@ -122,13 +120,12 @@
IPv6 only
-
- 1
- 1
- 24
- Please enter a valid number from 1 to 24 hours.
- Y
-
+
+ 0
+ 2147483647
+ Please enter a valid number from 0 to 2147483647 seconds or leave empty for default.
+
+
diff --git a/www/caddy/src/opnsense/service/templates/OPNsense/Caddy/Caddyfile b/www/caddy/src/opnsense/service/templates/OPNsense/Caddy/Caddyfile
index 63598f962..6640f0c4e 100644
--- a/www/caddy/src/opnsense/service/templates/OPNsense/Caddy/Caddyfile
+++ b/www/caddy/src/opnsense/service/templates/OPNsense/Caddy/Caddyfile
@@ -101,10 +101,11 @@
# - @param dnsOptionalField1 to 4 (string): Optional configuration field for the DNS provider.
# - @param dynDnsSimpleHttp (string): URL for a simple HTTP-based service to discover the server's public IP.
# - @param dynDnsInterface (string): Network interface(s) to use for IP discovery.
- # - @param dynDnsCheckInterval (integer): Interval in minutes to check for IP changes.
+ # - @param dynDnsCheckInterval (integer): Interval in seconds to check for IP changes. Can be empty for defaults.
# - @param dynDnsIpVersions (string): The IP version(s) (IPv4, IPv6) for the DDNS update.
- # - @param dynDnsTTL (integer): Time-To-Live for the DNS records, in hours.
+ # - @param dynDnsTtl (integer): Time-To-Live for the DNS records, in seconds. Can be empty for defaults.
# - @param dynDnsDomains (list): Domains and subdomains list for which DDNS updates are enabled.
+ # - @param dynDnsUpdateOnly (boolean): If set, only updates DNS records, not creating new ones.
#}
{% set dnsProvider = helpers.toList('Pischem.caddy.general.TlsDnsProvider') | first %}
{% set dnsApiKey = generalSettings.TlsDnsApiKey %}
@@ -115,9 +116,10 @@
{% set dnsOptionalField4 = generalSettings.TlsDnsOptionalField4 %}
{% set dynDnsSimpleHttp = generalSettings.DynDnsSimpleHttp %}
{% set dynDnsInterface = generalSettings.DynDnsInterface %}
- {% set dynDnsCheckInterval = generalSettings.DynDnsCheckInterval %}
+ {% set dynDnsUpdateOnly = generalSettings.DynDnsUpdateOnly %}
+ {% set dynDnsCheckInterval = generalSettings.DynDnsInterval %}
{% set dynDnsIpVersions = generalSettings.DynDnsIpVersions %}
- {% set dynDnsTTL = generalSettings.DynDnsTTL %}
+ {% set dynDnsTtl = generalSettings.DynDnsTtl %}
{% set dynDnsDomains = [] %}
{% for reverse in helpers.toList('Pischem.caddy.reverseproxy.reverse') %}
@@ -330,13 +332,16 @@
ip_source interface {{ physicalInterfaceNames | join(',') }}
{% endif %}
{% if dynDnsCheckInterval %}
- check_interval {{ dynDnsCheckInterval }}m
+ check_interval {{ dynDnsCheckInterval }}s
{% endif %}
{% if dynDnsIpVersions %}
versions {{ dynDnsIpVersions }}
{% endif %}
- {% if dynDnsTTL %}
- ttl {{ dynDnsTTL }}h
+ {% if dynDnsTtl %}
+ ttl {{ dynDnsTtl }}s
+ {% endif %}
+ {% if dynDnsUpdateOnly|default("0") == "1" %}
+ update_only
{% endif %}
}
{% endif %}