mirror of
https://github.com/netbirdio/plugins.git
synced 2026-05-22 18:44:07 -07:00
www/caddy: Remove dns provider duplication in Caddyfile (#4034)
* www/caddy: Remove dns provider duplication in Caddyfile, move to single source of truth to file includeDnsProvider.
* Refactor DNS Providers that require special configuration into one array to avoid duplication.
* Remove redundant dnsProvider check before tls { } block. Make comments better to explain special cases and how to maintain dns providers in the template.
* Improve comment a bit more
* Add changelog
This commit is contained in:
@@ -38,6 +38,7 @@ Plugin Changelog
|
||||
* 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
|
||||
* Cleanup: Refactor dns provider configuration in Caddyfile template
|
||||
|
||||
1.5.6
|
||||
|
||||
|
||||
@@ -143,174 +143,20 @@
|
||||
{% endfor %}
|
||||
{% endfor %}
|
||||
|
||||
{% if dnsProvider and dnsProvider != "acmedns" and dynDnsDomains|length > 0 %}
|
||||
{#
|
||||
# Define special DNS Providers that have more than one API key, or special requirements that do not allow the use of the default.
|
||||
# The same providers have to be added to "OPNsense/Caddy/includeDnsProvider", best in the same order as in this array for maintainability.
|
||||
# For a new provider to work, it has to be compiled into the caddy binary.
|
||||
#}
|
||||
{% set dnsProviderSpecialConfig = ['duckdns', 'porkbun', 'desec', 'route53', 'acmedns', 'googleclouddns', 'azure', 'ovh', 'namecheap', 'powerdns', 'ddnss', 'linode', 'tencentcloud', 'dinahosting', 'hexonet', 'mailinabox', 'netcup', 'rfc2136', 'dnsmadeeasy', 'civo', 'scaleway', 'acmeproxy', 'inwx', 'namedotcom', 'easydns', 'directadmin'] %}
|
||||
|
||||
{# Conditionally add the dynamic_dns section, acmedns provider is special, it does not support dynamic_dns. #}
|
||||
{% if dnsProvider and dynDnsDomains|length > 0 and dnsProvider != "acmedns" %}
|
||||
dynamic_dns {
|
||||
{% 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'] %}
|
||||
{# duckdns provider is special, it has a different configuration for dynamic dns than for the dns-01 challenge. #}
|
||||
{% if dnsProvider in dnsProviderSpecialConfig and dnsProvider != "duckdns" %}
|
||||
provider {{ dnsProvider }} {
|
||||
{% if dnsProvider == 'porkbun' %}
|
||||
{% if dnsApiKey %}api_key {{ dnsApiKey }}
|
||||
{% endif %}
|
||||
{% if dnsSecretApiKey %}api_secret_key {{ dnsSecretApiKey }}
|
||||
{% endif %}
|
||||
{% elif dnsProvider == 'desec' %}
|
||||
{% if dnsApiKey %}token {{ dnsApiKey }}
|
||||
{% endif %}
|
||||
{% elif dnsProvider == 'route53' %}
|
||||
{% if dnsApiKey %}access_key_id {{ dnsApiKey }}
|
||||
{% endif %}
|
||||
{% if dnsSecretApiKey %}secret_access_key {{ dnsSecretApiKey }}
|
||||
{% endif %}
|
||||
{% if dnsOptionalField1 %}max_retries {{ dnsOptionalField1 }}
|
||||
{% endif %}
|
||||
{% if dnsOptionalField2 %}aws_profile {{ dnsOptionalField2 }}
|
||||
{% endif %}
|
||||
{% if dnsOptionalField3 %}region {{ dnsOptionalField3 }}
|
||||
{% endif %}
|
||||
{% if dnsOptionalField4 %}token {{ dnsOptionalField4 }}
|
||||
{% endif %}
|
||||
{% elif dnsProvider == 'googleclouddns' %}
|
||||
{% if dnsApiKey %}gcp_project {{ dnsApiKey }}
|
||||
{% endif %}
|
||||
{% elif dnsProvider == 'azure' %}
|
||||
{% if dnsApiKey %}tenant_id {{ dnsApiKey }}
|
||||
{% endif %}
|
||||
{% if dnsSecretApiKey %}client_id {{ dnsSecretApiKey }}
|
||||
{% endif %}
|
||||
{% if dnsOptionalField1 %}client_secret {{ dnsOptionalField1 }}
|
||||
{% endif %}
|
||||
{% if dnsOptionalField2 %}subscription_id {{ dnsOptionalField2 }}
|
||||
{% endif %}
|
||||
{% if dnsOptionalField3 %}resource_group_name {{ dnsOptionalField3 }}
|
||||
{% endif %}
|
||||
{% elif dnsProvider == 'ovh' %}
|
||||
{% if dnsApiKey %}endpoint {{ dnsApiKey }}
|
||||
{% endif %}
|
||||
{% if dnsSecretApiKey %}application_key {{ dnsSecretApiKey }}
|
||||
{% endif %}
|
||||
{% if dnsOptionalField1 %}application_secret {{ dnsOptionalField1 }}
|
||||
{% endif %}
|
||||
{% if dnsOptionalField2 %}consumer_key {{ dnsOptionalField2 }}
|
||||
{% endif %}
|
||||
{% elif dnsProvider == 'namecheap' %}
|
||||
{% if dnsApiKey %}api_key {{ dnsApiKey }}
|
||||
{% endif %}
|
||||
{% if dnsSecretApiKey %}user {{ dnsSecretApiKey }}
|
||||
{% endif %}
|
||||
{% if dnsOptionalField1 %}api_endpoint {{ dnsOptionalField1 }}
|
||||
{% endif %}
|
||||
{% if dnsOptionalField2 %}client_ip {{ dnsOptionalField2 }}
|
||||
{% endif %}
|
||||
{% elif dnsProvider == 'powerdns' %}
|
||||
{% if dnsApiKey %}server_url {{ dnsApiKey }}
|
||||
{% endif %}
|
||||
{% if dnsSecretApiKey %}api_token {{ dnsSecretApiKey }}
|
||||
{% endif %}
|
||||
{% elif dnsProvider == 'ddnss' %}
|
||||
{% if dnsApiKey %}api_token {{ dnsApiKey }}
|
||||
{% endif %}
|
||||
{% if dnsSecretApiKey %}username {{ dnsSecretApiKey }}
|
||||
{% endif %}
|
||||
password {{ dnsOptionalField1 }}
|
||||
{% elif dnsProvider == 'linode' %}
|
||||
{% if dnsApiKey %}api_token {{ dnsApiKey }}
|
||||
{% endif %}
|
||||
{% if dnsSecretApiKey %}api_url {{ dnsSecretApiKey }}
|
||||
{% endif %}
|
||||
{% if dnsOptionalField1 %}api_version {{ dnsOptionalField1 }}
|
||||
{% endif %}
|
||||
{% elif dnsProvider == 'tencentcloud' %}
|
||||
{% if dnsApiKey %}secret_id {{ dnsApiKey }}
|
||||
{% endif %}
|
||||
{% if dnsSecretApiKey %}secret_key {{ dnsSecretApiKey }}
|
||||
{% endif %}
|
||||
{% elif dnsProvider == 'dinahosting' %}
|
||||
{% if dnsApiKey %}username {{ dnsApiKey }}
|
||||
{% endif %}
|
||||
{% if dnsSecretApiKey %}password {{ dnsSecretApiKey }}
|
||||
{% endif %}
|
||||
{% elif dnsProvider == 'hexonet' %}
|
||||
{% if dnsApiKey %}username {{ dnsApiKey }}
|
||||
{% endif %}
|
||||
{% if dnsSecretApiKey %}password {{ dnsSecretApiKey }}
|
||||
{% endif %}
|
||||
{% elif dnsProvider == 'mailinabox' %}
|
||||
{% if dnsApiKey %}api_url {{ dnsApiKey }}
|
||||
{% endif %}
|
||||
{% if dnsSecretApiKey %}email_address {{ dnsSecretApiKey }}
|
||||
{% endif %}
|
||||
{% if dnsOptionalField1 %}password {{ dnsOptionalField1 }}
|
||||
{% endif %}
|
||||
{% elif dnsProvider == 'netcup' %}
|
||||
{% if dnsApiKey %}customer_number {{ dnsApiKey }}
|
||||
{% endif %}
|
||||
{% if dnsSecretApiKey %}api_key {{ dnsSecretApiKey }}
|
||||
{% endif %}
|
||||
{% if dnsOptionalField1 %}api_password {{ dnsOptionalField1 }}
|
||||
{% endif %}
|
||||
{% elif dnsProvider == 'rfc2136' %}
|
||||
{% if dnsApiKey %}key_name {{ dnsApiKey }}
|
||||
{% endif %}
|
||||
{% if dnsSecretApiKey %}key_alg {{ dnsSecretApiKey }}
|
||||
{% endif %}
|
||||
{% if dnsOptionalField1 %}key {{ dnsOptionalField1 }}
|
||||
{% 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 %}
|
||||
{% include "OPNsense/Caddy/includeDnsProvider" %}
|
||||
}
|
||||
{% else %}
|
||||
{# Other DNS Providers fall under this default #}
|
||||
@@ -418,187 +264,10 @@
|
||||
#}
|
||||
{% 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', 'dnsmadeeasy', 'civo', 'scaleway', 'acmeproxy', 'inwx', 'netcup', 'namedotcom', 'easydns', 'directadmin'] %}
|
||||
{% if dnsProvider in dnsProviderSpecialConfig %}
|
||||
tls {
|
||||
dns {{ dnsProvider }} {
|
||||
{% if dnsProvider == 'duckdns' %}
|
||||
{% if dnsApiKey %}api_token {{ dnsApiKey }}
|
||||
{% endif %}
|
||||
{% if dnsSecretApiKey %}override_domain {{ dnsSecretApiKey }}
|
||||
{% endif %}
|
||||
{% elif dnsProvider == 'porkbun' %}
|
||||
{% if dnsApiKey %}api_key {{ dnsApiKey }}
|
||||
{% endif %}
|
||||
{% if dnsSecretApiKey %}api_secret_key {{ dnsSecretApiKey }}
|
||||
{% endif %}
|
||||
{% elif dnsProvider == 'desec' %}
|
||||
{% if dnsApiKey %}token {{ dnsApiKey }}
|
||||
{% endif %}
|
||||
{% elif dnsProvider == 'route53' %}
|
||||
{% if dnsApiKey %}access_key_id {{ dnsApiKey }}
|
||||
{% endif %}
|
||||
{% if dnsSecretApiKey %}secret_access_key {{ dnsSecretApiKey }}
|
||||
{% endif %}
|
||||
{% if dnsOptionalField1 %}max_retries {{ dnsOptionalField1 }}
|
||||
{% endif %}
|
||||
{% if dnsOptionalField2 %}aws_profile {{ dnsOptionalField2 }}
|
||||
{% endif %}
|
||||
{% if dnsOptionalField3 %}region {{ dnsOptionalField3 }}
|
||||
{% endif %}
|
||||
{% if dnsOptionalField4 %}token {{ dnsOptionalField4 }}
|
||||
{% endif %}
|
||||
{% elif dnsProvider == 'acmedns' %}
|
||||
{% if dnsApiKey %}username {{ dnsApiKey }}
|
||||
{% endif %}
|
||||
{% if dnsSecretApiKey %}password {{ dnsSecretApiKey }}
|
||||
{% endif %}
|
||||
{% if dnsOptionalField1 %}subdomain {{ dnsOptionalField1 }}
|
||||
{% endif %}
|
||||
{% if dnsOptionalField2 %}server_url {{ dnsOptionalField2 }}
|
||||
{% endif %}
|
||||
{% elif dnsProvider == 'googleclouddns' %}
|
||||
{% if dnsApiKey %}gcp_project {{ dnsApiKey }}
|
||||
{% endif %}
|
||||
{% elif dnsProvider == 'azure' %}
|
||||
{% if dnsApiKey %}tenant_id {{ dnsApiKey }}
|
||||
{% endif %}
|
||||
{% if dnsSecretApiKey %}client_id {{ dnsSecretApiKey }}
|
||||
{% endif %}
|
||||
{% if dnsOptionalField1 %}client_secret {{ dnsOptionalField1 }}
|
||||
{% endif %}
|
||||
{% if dnsOptionalField2 %}subscription_id {{ dnsOptionalField2 }}
|
||||
{% endif %}
|
||||
{% if dnsOptionalField3 %}resource_group_name {{ dnsOptionalField3 }}
|
||||
{% endif %}
|
||||
{% elif dnsProvider == 'ovh' %}
|
||||
{% if dnsApiKey %}endpoint {{ dnsApiKey }}
|
||||
{% endif %}
|
||||
{% if dnsSecretApiKey %}application_key {{ dnsSecretApiKey }}
|
||||
{% endif %}
|
||||
{% if dnsOptionalField1 %}application_secret {{ dnsOptionalField1 }}
|
||||
{% endif %}
|
||||
{% if dnsOptionalField2 %}consumer_key {{ dnsOptionalField2 }}
|
||||
{% endif %}
|
||||
{% elif dnsProvider == 'namecheap' %}
|
||||
{% if dnsApiKey %}api_key {{ dnsApiKey }}
|
||||
{% endif %}
|
||||
{% if dnsSecretApiKey %}user {{ dnsSecretApiKey }}
|
||||
{% endif %}
|
||||
{% if dnsOptionalField1 %}api_endpoint {{ dnsOptionalField1 }}
|
||||
{% endif %}
|
||||
{% if dnsOptionalField2 %}client_ip {{ dnsOptionalField2 }}
|
||||
{% endif %}
|
||||
{% elif dnsProvider == 'powerdns' %}
|
||||
{% if dnsApiKey %}server_url {{ dnsApiKey }}
|
||||
{% endif %}
|
||||
{% if dnsSecretApiKey %}api_token {{ dnsSecretApiKey }}
|
||||
{% endif %}
|
||||
{% elif dnsProvider == 'ddnss' %}
|
||||
{% if dnsApiKey %}api_token {{ dnsApiKey }}
|
||||
{% endif %}
|
||||
{% if dnsSecretApiKey %}username {{ dnsSecretApiKey }}
|
||||
{% endif %}
|
||||
password {{ dnsOptionalField1 }}
|
||||
{% elif dnsProvider == 'linode' %}
|
||||
{% if dnsApiKey %}api_token {{ dnsApiKey }}
|
||||
{% endif %}
|
||||
{% if dnsSecretApiKey %}api_url {{ dnsSecretApiKey }}
|
||||
{% endif %}
|
||||
{% if dnsOptionalField1 %}api_version {{ dnsOptionalField1 }}
|
||||
{% endif %}
|
||||
{% elif dnsProvider == 'tencentcloud' %}
|
||||
{% if dnsApiKey %}secret_id {{ dnsApiKey }}
|
||||
{% endif %}
|
||||
{% if dnsSecretApiKey %}secret_key {{ dnsSecretApiKey }}
|
||||
{% endif %}
|
||||
{% elif dnsProvider == 'dinahosting' %}
|
||||
{% if dnsApiKey %}username {{ dnsApiKey }}
|
||||
{% endif %}
|
||||
{% if dnsSecretApiKey %}password {{ dnsSecretApiKey }}
|
||||
{% endif %}
|
||||
{% elif dnsProvider == 'hexonet' %}
|
||||
{% if dnsApiKey %}username {{ dnsApiKey }}
|
||||
{% endif %}
|
||||
{% if dnsSecretApiKey %}password {{ dnsSecretApiKey }}
|
||||
{% endif %}
|
||||
{% elif dnsProvider == 'mailinabox' %}
|
||||
{% if dnsApiKey %}api_url {{ dnsApiKey }}
|
||||
{% endif %}
|
||||
{% if dnsSecretApiKey %}email_address {{ dnsSecretApiKey }}
|
||||
{% endif %}
|
||||
{% if dnsOptionalField1 %}password {{ dnsOptionalField1 }}
|
||||
{% endif %}
|
||||
{% elif dnsProvider == 'netcup' %}
|
||||
{% if dnsApiKey %}customer_number {{ dnsApiKey }}
|
||||
{% endif %}
|
||||
{% if dnsSecretApiKey %}api_key {{ dnsSecretApiKey }}
|
||||
{% endif %}
|
||||
{% if dnsOptionalField1 %}api_password {{ dnsOptionalField1 }}
|
||||
{% endif %}
|
||||
{% elif dnsProvider == 'rfc2136' %}
|
||||
{% if dnsApiKey %}key_name {{ dnsApiKey }}
|
||||
{% endif %}
|
||||
{% if dnsSecretApiKey %}key_alg {{ dnsSecretApiKey }}
|
||||
{% endif %}
|
||||
{% if dnsOptionalField1 %}key {{ dnsOptionalField1 }}
|
||||
{% 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 %}
|
||||
{% include "OPNsense/Caddy/includeDnsProvider" %}
|
||||
}
|
||||
}
|
||||
{% else %}
|
||||
|
||||
@@ -0,0 +1,186 @@
|
||||
{#
|
||||
# This file gets imported in two sections of the Caddyfile template
|
||||
# - Section: Dynamic DNS Global Configuration
|
||||
# - Macro: tls_configuration
|
||||
#
|
||||
# It only includes DNS Providers that need specific settings and do not default to
|
||||
# "dns {{ dnsProvider }} {{ dnsApiKey }}"
|
||||
#}
|
||||
{% if dnsProvider == 'duckdns' %}
|
||||
{% if dnsApiKey %}api_token {{ dnsApiKey }}
|
||||
{% endif %}
|
||||
{% if dnsSecretApiKey %}override_domain {{ dnsSecretApiKey }}
|
||||
{% endif %}
|
||||
{% elif dnsProvider == 'porkbun' %}
|
||||
{% if dnsApiKey %}api_key {{ dnsApiKey }}
|
||||
{% endif %}
|
||||
{% if dnsSecretApiKey %}api_secret_key {{ dnsSecretApiKey }}
|
||||
{% endif %}
|
||||
{% elif dnsProvider == 'desec' %}
|
||||
{% if dnsApiKey %}token {{ dnsApiKey }}
|
||||
{% endif %}
|
||||
{% elif dnsProvider == 'route53' %}
|
||||
{% if dnsApiKey %}access_key_id {{ dnsApiKey }}
|
||||
{% endif %}
|
||||
{% if dnsSecretApiKey %}secret_access_key {{ dnsSecretApiKey }}
|
||||
{% endif %}
|
||||
{% if dnsOptionalField1 %}max_retries {{ dnsOptionalField1 }}
|
||||
{% endif %}
|
||||
{% if dnsOptionalField2 %}aws_profile {{ dnsOptionalField2 }}
|
||||
{% endif %}
|
||||
{% if dnsOptionalField3 %}region {{ dnsOptionalField3 }}
|
||||
{% endif %}
|
||||
{% if dnsOptionalField4 %}token {{ dnsOptionalField4 }}
|
||||
{% endif %}
|
||||
{% elif dnsProvider == 'acmedns' %}
|
||||
{% if dnsApiKey %}username {{ dnsApiKey }}
|
||||
{% endif %}
|
||||
{% if dnsSecretApiKey %}password {{ dnsSecretApiKey }}
|
||||
{% endif %}
|
||||
{% if dnsOptionalField1 %}subdomain {{ dnsOptionalField1 }}
|
||||
{% endif %}
|
||||
{% if dnsOptionalField2 %}server_url {{ dnsOptionalField2 }}
|
||||
{% endif %}
|
||||
{% elif dnsProvider == 'googleclouddns' %}
|
||||
{% if dnsApiKey %}gcp_project {{ dnsApiKey }}
|
||||
{% endif %}
|
||||
{% elif dnsProvider == 'azure' %}
|
||||
{% if dnsApiKey %}tenant_id {{ dnsApiKey }}
|
||||
{% endif %}
|
||||
{% if dnsSecretApiKey %}client_id {{ dnsSecretApiKey }}
|
||||
{% endif %}
|
||||
{% if dnsOptionalField1 %}client_secret {{ dnsOptionalField1 }}
|
||||
{% endif %}
|
||||
{% if dnsOptionalField2 %}subscription_id {{ dnsOptionalField2 }}
|
||||
{% endif %}
|
||||
{% if dnsOptionalField3 %}resource_group_name {{ dnsOptionalField3 }}
|
||||
{% endif %}
|
||||
{% elif dnsProvider == 'ovh' %}
|
||||
{% if dnsApiKey %}endpoint {{ dnsApiKey }}
|
||||
{% endif %}
|
||||
{% if dnsSecretApiKey %}application_key {{ dnsSecretApiKey }}
|
||||
{% endif %}
|
||||
{% if dnsOptionalField1 %}application_secret {{ dnsOptionalField1 }}
|
||||
{% endif %}
|
||||
{% if dnsOptionalField2 %}consumer_key {{ dnsOptionalField2 }}
|
||||
{% endif %}
|
||||
{% elif dnsProvider == 'namecheap' %}
|
||||
{% if dnsApiKey %}api_key {{ dnsApiKey }}
|
||||
{% endif %}
|
||||
{% if dnsSecretApiKey %}user {{ dnsSecretApiKey }}
|
||||
{% endif %}
|
||||
{% if dnsOptionalField1 %}api_endpoint {{ dnsOptionalField1 }}
|
||||
{% endif %}
|
||||
{% if dnsOptionalField2 %}client_ip {{ dnsOptionalField2 }}
|
||||
{% endif %}
|
||||
{% elif dnsProvider == 'powerdns' %}
|
||||
{% if dnsApiKey %}server_url {{ dnsApiKey }}
|
||||
{% endif %}
|
||||
{% if dnsSecretApiKey %}api_token {{ dnsSecretApiKey }}
|
||||
{% endif %}
|
||||
{% elif dnsProvider == 'ddnss' %}
|
||||
{% if dnsApiKey %}api_token {{ dnsApiKey }}
|
||||
{% endif %}
|
||||
{% if dnsSecretApiKey %}username {{ dnsSecretApiKey }}
|
||||
{% endif %}
|
||||
password {{ dnsOptionalField1 }}
|
||||
{% elif dnsProvider == 'linode' %}
|
||||
{% if dnsApiKey %}api_token {{ dnsApiKey }}
|
||||
{% endif %}
|
||||
{% if dnsSecretApiKey %}api_url {{ dnsSecretApiKey }}
|
||||
{% endif %}
|
||||
{% if dnsOptionalField1 %}api_version {{ dnsOptionalField1 }}
|
||||
{% endif %}
|
||||
{% elif dnsProvider == 'tencentcloud' %}
|
||||
{% if dnsApiKey %}secret_id {{ dnsApiKey }}
|
||||
{% endif %}
|
||||
{% if dnsSecretApiKey %}secret_key {{ dnsSecretApiKey }}
|
||||
{% endif %}
|
||||
{% elif dnsProvider == 'dinahosting' %}
|
||||
{% if dnsApiKey %}username {{ dnsApiKey }}
|
||||
{% endif %}
|
||||
{% if dnsSecretApiKey %}password {{ dnsSecretApiKey }}
|
||||
{% endif %}
|
||||
{% elif dnsProvider == 'hexonet' %}
|
||||
{% if dnsApiKey %}username {{ dnsApiKey }}
|
||||
{% endif %}
|
||||
{% if dnsSecretApiKey %}password {{ dnsSecretApiKey }}
|
||||
{% endif %}
|
||||
{% elif dnsProvider == 'mailinabox' %}
|
||||
{% if dnsApiKey %}api_url {{ dnsApiKey }}
|
||||
{% endif %}
|
||||
{% if dnsSecretApiKey %}email_address {{ dnsSecretApiKey }}
|
||||
{% endif %}
|
||||
{% if dnsOptionalField1 %}password {{ dnsOptionalField1 }}
|
||||
{% endif %}
|
||||
{% elif dnsProvider == 'netcup' %}
|
||||
{% if dnsApiKey %}customer_number {{ dnsApiKey }}
|
||||
{% endif %}
|
||||
{% if dnsSecretApiKey %}api_key {{ dnsSecretApiKey }}
|
||||
{% endif %}
|
||||
{% if dnsOptionalField1 %}api_password {{ dnsOptionalField1 }}
|
||||
{% endif %}
|
||||
{% elif dnsProvider == 'rfc2136' %}
|
||||
{% if dnsApiKey %}key_name {{ dnsApiKey }}
|
||||
{% endif %}
|
||||
{% if dnsSecretApiKey %}key_alg {{ dnsSecretApiKey }}
|
||||
{% endif %}
|
||||
{% if dnsOptionalField1 %}key {{ dnsOptionalField1 }}
|
||||
{% 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 %}
|
||||
Reference in New Issue
Block a user