www/caddy: Mark DNS Providers optional that are not included per default (#4441)

* www/caddy: Mark DNS Providers optional that are not included in the shipped binary per default. These modules must be added on demand on the command line with caddy add-package. This lowers maintainance burden and deflates the binary of big unused structs and sdks, since providers like route53 or googleclouddns alone pull around 16MB into the binary. Remove duplicate Netcup.

* www/caddy: Make API Fields for DNS Providers clearer
This commit is contained in:
Monviech
2025-01-07 17:05:50 +01:00
committed by GitHub
parent 4f44f8337b
commit d5b7c364c7
2 changed files with 22 additions and 24 deletions
@@ -98,46 +98,45 @@
<id>caddy.general.TlsDnsProvider</id>
<label>DNS Provider</label>
<type>dropdown</type>
<help><![CDATA[Select the DNS provider for the DNS-01 Challenge and Dynamic DNS. This is mostly needed for Wildcard Certificates, and for Dynamic DNS. To use, enable the checkbox in a "Domain" or "Subdomain". For more information, visit https://github.com/caddy-dns where each module is community maintained.]]></help>
<help><![CDATA[Select the DNS Provider for the DNS-01 Challenge and Dynamic DNS. Providers marked as "optional" must be installed manually, see https://caddyserver.com/docs/command-line#caddy-add-package. For more information, visit https://github.com/caddy-dns where each module is community maintained.]]></help>
</field>
<field>
<type>header</type>
<label>API Fields</label>
</field>
<field>
<id>caddy.general.TlsDnsApiKey</id>
<label>DNS API Standard Field</label>
<label>API Field 1</label>
<type>text</type>
<help><![CDATA[This is the standard field for the API Key. Field can be left empty if optional: Cloudflare "api_token", Duckdns "api_token", DigitalOcean "auth_token", Godaddy "api_token", Gandi "bearer_token", IONOS "api_token", deSEC "token", Route53 "access_key_id", Porkbun "api_key", ACME-DNS "username", Netlify "personal_access_token", Njalla "api_token", Google Cloud DNS "gcp_project", Azure "tenant_id", OVH "endpoint", Namecheap "api_key", PowerDNS "server_url", DDNSS "api_token", Linode "api_token", Tencent Cloud "secret_id", Dinahosting "username", Hexonet "username", Mail-in-a-Box "api_url", DNS Made Easy "api_key", Bunny "access_key", Civo "api_token", Scaleway "secret_key", ACME Proxy "username", INWX "username", Netcup "customer_number", RFC2136 "key_name", Name.com "token", EasyDNS "api_token", Infomaniak "api_token", DirectAdmin "host", Hosttech "api_token", Vultr "api_token", Hetzner "api_token"]]></help>
</field>
<field>
<type>header</type>
<label>Additional Fields</label>
<collapse>true</collapse>
</field>
<field>
<id>caddy.general.TlsDnsSecretApiKey</id>
<label>DNS API Additional Field 1</label>
<label>API Field 2</label>
<type>text</type>
<help><![CDATA[Leave empty if your DNS Provider isn't specified here. Field can be left empty if optional: Duckdns "override_domain", Route53 "secret_access_key", Porkbun "api_secret_key", ACME-DNS "password", Azure "client_id", OVH "application_key", Namecheap "user", PowerDNS "api_token", DDNSS "username", Linode "api_url", Tencent Cloud "secret_key", Dinahosting "password", Hexonet "password", Mail-in-a-Box "email_address", DNS Made Easy "secret_key", Scaleway "organization_id", ACME Proxy "password", INWX "password", Netcup "api_key", RFC2136 "key_alg", Name.com "server", EasyDNS "api_key", DirectAdmin "user".]]></help>
</field>
<field>
<id>caddy.general.TlsDnsOptionalField1</id>
<label>DNS API Additional Field 2</label>
<label>API Field 3</label>
<type>text</type>
<help><![CDATA[Leave empty if your DNS Provider isn't specified here. Field can be left empty if optional: Route53 "hosted_zone_id", ACME-DNS "subdomain", Azure "client_secret", OVH "application_secret", Namecheap "api_endpoint", DDNSS "password", Linode "api_version", Mail-in-a-Box "password", DNS Made Easy "api_endpoint", ACME Proxy "endpoint", INWX "shared_secret", Netcup "api_password", Name.com "user", EasyDNS "api_url", DirectAdmin "login_key", RFC2136 "key".]]></help>
</field>
<field>
<id>caddy.general.TlsDnsOptionalField2</id>
<label>DNS API Additional Field 3</label>
<label>API Field 4</label>
<type>text</type>
<help><![CDATA[Leave empty if your DNS Provider isn't specified here. Field can be left empty if optional: Route53 "profile", ACME-DNS "server_url", Azure "subscription_id", OVH "consumer_key", Namecheap "client_ip", DDNS "password", INWX "endpoint_url", DirectAdmin "insecure_requests", RFC2136 "server".]]></help>
</field>
<field>
<id>caddy.general.TlsDnsOptionalField3</id>
<label>DNS API Additional Field 4</label>
<label>API Field 5</label>
<type>text</type>
<help><![CDATA[Leave empty if your DNS Provider isn't specified here. Field can be left empty if optional: Route53 "region", Azure "resource_group_name".]]></help>
</field>
<field>
<id>caddy.general.TlsDnsOptionalField4</id>
<label>DNS API Additional Field 5</label>
<label>API Field 6</label>
<type>text</type>
<help><![CDATA[Leave empty if your DNS Provider isn't specified here. Field can be left empty if optional: Route53 "session_token".]]></help>
</field>
@@ -26,42 +26,41 @@
<OptionValues>
<cloudflare>Cloudflare</cloudflare>
<duckdns>Duck DNS</duckdns>
<digitalocean>DigitalOcean</digitalocean>
<gandi>Gandi</gandi>
<ionos>IONOS</ionos>
<desec>Desec</desec>
<porkbun>Porkbun</porkbun>
<route53>Route53</route53>
<acmedns>ACME-DNS</acmedns>
<googleclouddns>Google Cloud DNS</googleclouddns>
<azure>Azure</azure>
<ovh>OVH</ovh>
<namecheap>Namecheap</namecheap>
<netlify>Netlify</netlify>
<powerdns>PowerDNS</powerdns>
<ddnss>DDNSS</ddnss>
<njalla>Njalla</njalla>
<linode>Linode</linode>
<tencentcloud>Tencent Cloud</tencentcloud>
<dinahosting>Dinahosting</dinahosting>
<hexonet>Hexonet</hexonet>
<mailinabox>Mail-in-a-Box</mailinabox>
<netcup>Netcup</netcup>
<rfc2136>RFC2136</rfc2136>
<dnsmadeeasy>DNS Made Easy</dnsmadeeasy>
<bunny>Bunny</bunny>
<civo>Civo</civo>
<scaleway>Scaleway</scaleway>
<acmeproxy>ACME Proxy</acmeproxy>
<inwx>INWX</inwx>
<netcup>Netcup</netcup>
<namedotcom>Name.com</namedotcom>
<easydns>EasyDNS</easydns>
<infomaniak>Infomaniak</infomaniak>
<directadmin>DirectAdmin</directadmin>
<hosttech>Hosttech</hosttech>
<vultr>Vultr</vultr>
<hetzner>Hetzner</hetzner>
<digitalocean>DigitalOcean (optional)</digitalocean>
<route53>Route53 (optional)</route53>
<googleclouddns>Google Cloud DNS (optional)</googleclouddns>
<netlify>Netlify (optional)</netlify>
<ddnss>DDNSS (optional)</ddnss>
<njalla>Njalla (optional)</njalla>
<tencentcloud>Tencent Cloud (optional)</tencentcloud>
<dinahosting>Dinahosting (optional)</dinahosting>
<civo>Civo (optional)</civo>
<easydns>EasyDNS (optional)</easydns>
<hosttech>Hosttech (optional)</hosttech>
</OptionValues>
</TlsDnsProvider>
<TlsDnsApiKey type="TextField"/>