diff --git a/agent/go.mod b/agent/go.mod index 5ffdc5705db2..fe8373f8ac76 100644 --- a/agent/go.mod +++ b/agent/go.mod @@ -195,6 +195,7 @@ require ( github.com/nrdcg/freemyip v0.3.0 // indirect github.com/nrdcg/goacmedns v0.2.0 // indirect github.com/nrdcg/namesilo v0.5.0 // indirect + github.com/nrdcg/porkbun v0.4.0 // indirect github.com/nwaples/rardecode/v2 v2.2.0 // indirect github.com/opencontainers/go-digest v1.0.0 // indirect github.com/ovh/go-ovh v1.9.0 // indirect diff --git a/agent/go.sum b/agent/go.sum index 3151f73d6540..2310f0271c28 100644 --- a/agent/go.sum +++ b/agent/go.sum @@ -764,6 +764,8 @@ github.com/nrdcg/goacmedns v0.2.0 h1:ADMbThobzEMnr6kg2ohs4KGa3LFqmgiBA22/6jUWJR0 github.com/nrdcg/goacmedns v0.2.0/go.mod h1:T5o6+xvSLrQpugmwHvrSNkzWht0UGAwj2ACBMhh73Cg= github.com/nrdcg/namesilo v0.5.0 h1:6QNxT/XxE+f5B+7QlfWorthNzOzcGlBLRQxqi6YeBrE= github.com/nrdcg/namesilo v0.5.0/go.mod h1:4UkwlwQfDt74kSGmhLaDylnBrD94IfflnpoEaj6T2qw= +github.com/nrdcg/porkbun v0.4.0 h1:rWweKlwo1PToQ3H+tEO9gPRW0wzzgmI/Ob3n2Guticw= +github.com/nrdcg/porkbun v0.4.0/go.mod h1:/QMskrHEIM0IhC/wY7iTCUgINsxdT2WcOphktJ9+Q54= github.com/nwaples/rardecode/v2 v2.2.0 h1:4ufPGHiNe1rYJxYfehALLjup4Ls3ck42CWwjKiOqu0A= github.com/nwaples/rardecode/v2 v2.2.0/go.mod h1:7uz379lSxPe6j9nvzxUZ+n7mnJNgjsRNb6IbvGVHRmw= github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A= diff --git a/agent/utils/ssl/dns_provider.go b/agent/utils/ssl/dns_provider.go index 7b45e401b6ea..c4d0f46a09db 100644 --- a/agent/utils/ssl/dns_provider.go +++ b/agent/utils/ssl/dns_provider.go @@ -19,6 +19,7 @@ import ( "github.com/go-acme/lego/v4/providers/dns/namedotcom" "github.com/go-acme/lego/v4/providers/dns/namesilo" "github.com/go-acme/lego/v4/providers/dns/ovh" + "github.com/go-acme/lego/v4/providers/dns/porkbun" "github.com/go-acme/lego/v4/providers/dns/rainyun" "github.com/go-acme/lego/v4/providers/dns/regru" "github.com/go-acme/lego/v4/providers/dns/route53" @@ -57,6 +58,7 @@ const ( BaiduCloud DnsType = "BaiduCloud" Ovh DnsType = "Ovh" AcmeDNS DnsType = "AcmeDNS" + PorkBun DnsType = "PorkBun" ) type DNSParam struct { @@ -291,6 +293,14 @@ func getDNSProviderConfig(dnsType DnsType, params string) (challenge.Provider, e config.APIBase = param.Endpoint config.StorageBaseURL = param.BaseURL p, err = acmedns.NewDNSProviderConfig(config) + case PorkBun: + config := porkbun.NewDefaultConfig() + config.APIKey = param.APIkey + config.SecretAPIKey = param.SecretKey + config.PropagationTimeout = propagationTimeout + config.PollingInterval = pollingInterval + config.TTL = ttl + p, err = porkbun.NewDNSProviderConfig(config) } if err != nil { diff --git a/frontend/src/global/mimetype.ts b/frontend/src/global/mimetype.ts index be8acde88238..2aecfbb946fd 100644 --- a/frontend/src/global/mimetype.ts +++ b/frontend/src/global/mimetype.ts @@ -264,6 +264,10 @@ export const DNSTypes = [ label: i18n.global.t('website.volcengine'), value: 'Volcengine', }, + { + label: 'PorkBun', + value: 'PorkBun', + }, { label: 'DNSPod (' + i18n.global.t('ssl.deprecated') + ')', value: 'DnsPod', 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 b6407a3160f5..231e6a77e50a 100644 --- a/frontend/src/views/website/ssl/dns-account/create/index.vue +++ b/frontend/src/views/website/ssl/dns-account/create/index.vue @@ -175,6 +175,14 @@ +
+ + + + + + +