diff --git a/agent/utils/ssl/dns_provider.go b/agent/utils/ssl/dns_provider.go index c4d0f46a09db..141c2287e34c 100644 --- a/agent/utils/ssl/dns_provider.go +++ b/agent/utils/ssl/dns_provider.go @@ -24,6 +24,7 @@ import ( "github.com/go-acme/lego/v4/providers/dns/regru" "github.com/go-acme/lego/v4/providers/dns/route53" "github.com/go-acme/lego/v4/providers/dns/spaceship" + "github.com/go-acme/lego/v4/providers/dns/technitium" "github.com/go-acme/lego/v4/providers/dns/tencentcloud" "github.com/go-acme/lego/v4/providers/dns/vercel" "github.com/go-acme/lego/v4/providers/dns/volcengine" @@ -59,6 +60,7 @@ const ( Ovh DnsType = "Ovh" AcmeDNS DnsType = "AcmeDNS" PorkBun DnsType = "PorkBun" + Technitium DnsType = "Technitium" ) type DNSParam struct { @@ -301,6 +303,14 @@ func getDNSProviderConfig(dnsType DnsType, params string) (challenge.Provider, e config.PollingInterval = pollingInterval config.TTL = ttl p, err = porkbun.NewDNSProviderConfig(config) + case Technitium: + config := technitium.NewDefaultConfig() + config.BaseURL = param.BaseURL + config.APIToken = param.Token + config.PropagationTimeout = propagationTimeout + config.PollingInterval = pollingInterval + config.TTL = ttl + p, err = technitium.NewDNSProviderConfig(config) } if err != nil { diff --git a/frontend/src/global/mimetype.ts b/frontend/src/global/mimetype.ts index 2aecfbb946fd..feed9bcf2ee9 100644 --- a/frontend/src/global/mimetype.ts +++ b/frontend/src/global/mimetype.ts @@ -272,6 +272,10 @@ export const DNSTypes = [ label: 'DNSPod (' + i18n.global.t('ssl.deprecated') + ')', value: 'DnsPod', }, + { + label: 'Technitium', + value: 'Technitium', + }, ]; export const Fields = [ diff --git a/frontend/src/views/website/ssl/dns-account/create/index.vue b/frontend/src/views/website/ssl/dns-account/create/index.vue index 231e6a77e50a..f67db22471d5 100644 --- a/frontend/src/views/website/ssl/dns-account/create/index.vue +++ b/frontend/src/views/website/ssl/dns-account/create/index.vue @@ -183,6 +183,14 @@ +
+ + + + + + +