From 508864dd891a8f618fa3e8ec0a8db6627fdec08f Mon Sep 17 00:00:00 2001 From: Monviech Date: Thu, 6 Jun 2024 15:38:20 +0000 Subject: [PATCH] www/caddy: Add dns providers: dnsmadeeasy, bunny, civo, scaleway, acmeproxy, inwx, namedotcom, easydns, infomaniak, directadmin, hosttech, vultr, Remove dns providers: godaddy --- www/caddy/pkg-descr | 2 + .../OPNsense/Caddy/forms/dnsprovider.xml | 8 +- .../mvc/app/models/OPNsense/Caddy/Caddy.xml | 16 ++- .../templates/OPNsense/Caddy/Caddyfile | 114 +++++++++++++++++- 4 files changed, 132 insertions(+), 8 deletions(-) diff --git a/www/caddy/pkg-descr b/www/caddy/pkg-descr index b29f9461b..e0b12623d 100644 --- a/www/caddy/pkg-descr +++ b/www/caddy/pkg-descr @@ -34,6 +34,8 @@ Plugin Changelog * 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 * 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 1.5.6 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 index 7f469d4e9..39d36919c 100644 --- 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 @@ -9,7 +9,7 @@ caddy.general.TlsDnsApiKey text - + header @@ -20,19 +20,19 @@ caddy.general.TlsDnsSecretApiKey text - + caddy.general.TlsDnsOptionalField1 text - + caddy.general.TlsDnsOptionalField2 text - + caddy.general.TlsDnsOptionalField3 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 a65ba0e4b..d65186476 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/caddy A GUI model for configuring a reverse proxy in the Caddy web server. - 1.2.0 + 1.2.1 @@ -26,7 +26,6 @@ Cloudflare Duck DNS DigitalOcean - GoDaddy Gandi IONOS Desec @@ -48,6 +47,19 @@ Mail-in-a-Box Netcup RFC2136 + DNS Made Easy + Bunny + Civo + Scaleway + ACME Proxy + INWX + Netcup + Name.com + EasyDNS + Infomaniak + DirectAdmin + Hosttech + Vultr diff --git a/www/caddy/src/opnsense/service/templates/OPNsense/Caddy/Caddyfile b/www/caddy/src/opnsense/service/templates/OPNsense/Caddy/Caddyfile index db183733c..63598f962 100644 --- a/www/caddy/src/opnsense/service/templates/OPNsense/Caddy/Caddyfile +++ b/www/caddy/src/opnsense/service/templates/OPNsense/Caddy/Caddyfile @@ -143,7 +143,7 @@ {% if dnsProvider and dnsProvider != "acmedns" and dynDnsDomains|length > 0 %} dynamic_dns { - {% if dnsProvider in ['porkbun', 'desec', 'route53', 'googleclouddns', 'azure', 'ovh', 'namecheap', 'powerdns', 'ddnss', 'linode', 'tencentcloud', 'dinahosting', 'hexonet', 'mailinabox', 'netcup', 'rfc2136'] %} + {% if dnsProvider in ['porkbun', 'desec', 'route53', 'googleclouddns', 'azure', 'ovh', 'namecheap', 'powerdns', 'ddnss', 'linode', 'tencentcloud', 'dinahosting', 'hexonet', 'mailinabox', 'netcup', 'rfc2136', 'dnsmadeeasy', 'civo', 'scaleway', 'acmeproxy', 'inwx', 'netcup', 'namedotcom', 'easydns', 'directadmin'] %} provider {{ dnsProvider }} { {% if dnsProvider == 'porkbun' %} {% if dnsApiKey %}api_key {{ dnsApiKey }} @@ -254,9 +254,64 @@ {% endif %} {% if dnsOptionalField2 %}server {{ dnsOptionalField2 }} {% endif %} + {% elif dnsProvider == 'dnsmadeeasy' %} + {% if dnsApiKey %}api_key {{ dnsApiKey }} + {% endif %} + {% if dnsSecretApiKey %}secret_key {{ dnsSecretApiKey }} + {% endif %} + {% if dnsOptionalField1 %}api_endpoint {{ dnsOptionalField1 }} + {% endif %} + {% elif dnsProvider == 'civo' %} + {% if dnsApiKey %}api_token {{ dnsApiKey }} + {% endif %} + {% elif dnsProvider == 'scaleway' %} + {% if dnsApiKey %}secret_key {{ dnsApiKey }} + {% endif %} + {% if dnsSecretApiKey %}organization_id {{ dnsSecretApiKey }} + {% endif %} + {% elif dnsProvider == 'acmeproxy' %} + {% if dnsApiKey %}username {{ dnsApiKey }} + {% endif %} + {% if dnsSecretApiKey %}password {{ dnsSecretApiKey }} + {% endif %} + {% if dnsOptionalField1 %}endpoint {{ dnsOptionalField1 }} + {% endif %} + {% elif dnsProvider == 'inwx' %} + {% if dnsApiKey %}username {{ dnsApiKey }} + {% endif %} + {% if dnsSecretApiKey %}password {{ dnsSecretApiKey }} + {% endif %} + {% if dnsOptionalField1 %}shared_secret {{ dnsOptionalField1 }} + {% endif %} + {% if dnsOptionalField2 %}endpoint_url {{ dnsOptionalField2 }} + {% endif %} + {% elif dnsProvider == 'namedotcom' %} + {% if dnsApiKey %}token {{ dnsApiKey }} + {% endif %} + {% if dnsSecretApiKey %}server {{ dnsSecretApiKey }} + {% endif %} + {% if dnsOptionalField1 %}user {{ dnsOptionalField1 }} + {% endif %} + {% elif dnsProvider == 'easydns' %} + {% if dnsApiKey %}api_token {{ dnsApiKey }} + {% endif %} + {% if dnsSecretApiKey %}api_key {{ dnsSecretApiKey }} + {% endif %} + {% if dnsOptionalField1 %}api_url {{ dnsOptionalField1 }} + {% endif %} + {% elif dnsProvider == 'directadmin' %} + {% if dnsApiKey %}host {{ dnsApiKey }} + {% endif %} + {% if dnsSecretApiKey %}user {{ dnsSecretApiKey }} + {% endif %} + {% if dnsOptionalField1 %}login_key {{ dnsOptionalField1 }} + {% endif %} + {% if dnsOptionalField2 %}insecure_requests {{ dnsOptionalField2 }} + {% endif %} {% endif %} } {% else %} + {# Other DNS Providers fall under this default #} provider {{ dnsProvider }} {{ dnsApiKey }} {% endif %} domains { @@ -358,7 +413,7 @@ #} {% macro tls_configuration(dnsProvider, dnsApiKey, customCert, dnsChallenge, dnsSecretApiKey, TlsDnsOptionalField1, TlsDnsOptionalField2, TlsDnsOptionalField3, TlsDnsOptionalField4) %} {% if dnsChallenge == "1" and dnsProvider %} - {% if dnsProvider in ['duckdns', 'porkbun', 'desec', 'route53', 'acmedns', 'googleclouddns', 'azure', 'ovh', 'namecheap', 'powerdns', 'ddnss', 'linode', 'tencentcloud', 'dinahosting', 'hexonet', 'mailinabox', 'netcup', 'rfc2136'] %} + {% if dnsProvider in ['duckdns', 'porkbun', 'desec', 'route53', 'acmedns', 'googleclouddns', 'azure', 'ovh', 'namecheap', 'powerdns', 'ddnss', 'linode', 'tencentcloud', 'dinahosting', 'hexonet', 'mailinabox', 'netcup', 'rfc2136', 'dnsmadeeasy', 'civo', 'scaleway', 'acmeproxy', 'inwx', 'netcup', 'namedotcom', 'easydns', 'directadmin'] %} tls { dns {{ dnsProvider }} { {% if dnsProvider == 'duckdns' %} @@ -484,11 +539,66 @@ {% endif %} {% if dnsOptionalField2 %}server {{ dnsOptionalField2 }} {% endif %} + {% elif dnsProvider == 'dnsmadeeasy' %} + {% if dnsApiKey %}api_key {{ dnsApiKey }} + {% endif %} + {% if dnsSecretApiKey %}secret_key {{ dnsSecretApiKey }} + {% endif %} + {% if dnsOptionalField1 %}api_endpoint {{ dnsOptionalField1 }} + {% endif %} + {% elif dnsProvider == 'civo' %} + {% if dnsApiKey %}api_token {{ dnsApiKey }} + {% endif %} + {% elif dnsProvider == 'scaleway' %} + {% if dnsApiKey %}secret_key {{ dnsApiKey }} + {% endif %} + {% if dnsSecretApiKey %}organization_id {{ dnsSecretApiKey }} + {% endif %} + {% elif dnsProvider == 'acmeproxy' %} + {% if dnsApiKey %}username {{ dnsApiKey }} + {% endif %} + {% if dnsSecretApiKey %}password {{ dnsSecretApiKey }} + {% endif %} + {% if dnsOptionalField1 %}endpoint {{ dnsOptionalField1 }} + {% endif %} + {% elif dnsProvider == 'inwx' %} + {% if dnsApiKey %}username {{ dnsApiKey }} + {% endif %} + {% if dnsSecretApiKey %}password {{ dnsSecretApiKey }} + {% endif %} + {% if dnsOptionalField1 %}shared_secret {{ dnsOptionalField1 }} + {% endif %} + {% if dnsOptionalField2 %}endpoint_url {{ dnsOptionalField2 }} + {% endif %} + {% elif dnsProvider == 'namedotcom' %} + {% if dnsApiKey %}token {{ dnsApiKey }} + {% endif %} + {% if dnsSecretApiKey %}server {{ dnsSecretApiKey }} + {% endif %} + {% if dnsOptionalField1 %}user {{ dnsOptionalField1 }} + {% endif %} + {% elif dnsProvider == 'easydns' %} + {% if dnsApiKey %}api_token {{ dnsApiKey }} + {% endif %} + {% if dnsSecretApiKey %}api_key {{ dnsSecretApiKey }} + {% endif %} + {% if dnsOptionalField1 %}api_url {{ dnsOptionalField1 }} + {% endif %} + {% elif dnsProvider == 'directadmin' %} + {% if dnsApiKey %}host {{ dnsApiKey }} + {% endif %} + {% if dnsSecretApiKey %}user {{ dnsSecretApiKey }} + {% endif %} + {% if dnsOptionalField1 %}login_key {{ dnsOptionalField1 }} + {% endif %} + {% if dnsOptionalField2 %}insecure_requests {{ dnsOptionalField2 }} + {% endif %} {% endif %} } } {% else %} tls { + {# Other DNS Providers fall under this default #} dns {{ dnsProvider }} {{ dnsApiKey }} } {% endif %}