From d6fde84dc9aa4f551ec0d005674699656b3d6d16 Mon Sep 17 00:00:00 2001 From: ChengPlay <31820853+zhengkunwang223@users.noreply.github.com> Date: Mon, 28 Apr 2025 18:43:48 +0800 Subject: [PATCH] feat: add spaceship dns provider (#8501) Refs https://github.com/1Panel-dev/1Panel/issues/8494 --- agent/utils/ssl/client.go | 10 ++++++++++ frontend/src/global/mimetype.ts | 4 ++++ .../website/ssl/dns-account/create/index.vue | 20 ++++++++++++------- 3 files changed, 27 insertions(+), 7 deletions(-) diff --git a/agent/utils/ssl/client.go b/agent/utils/ssl/client.go index fc79d0b1e..760755554 100644 --- a/agent/utils/ssl/client.go +++ b/agent/utils/ssl/client.go @@ -15,6 +15,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/rainyun" + "github.com/go-acme/lego/v4/providers/dns/spaceship" "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" @@ -99,6 +100,7 @@ const ( HuaweiCloud DnsType = "HuaweiCloud" FreeMyIP DnsType = "FreeMyIP" Vercel DnsType = "Vercel" + Spaceship DnsType = "Spaceship" ) type DNSParam struct { @@ -240,6 +242,14 @@ func getDNSProviderConfig(dnsType DnsType, params string) (challenge.Provider, e vercelConfig.PropagationTimeout = propagationTimeout vercelConfig.PollingInterval = pollingInterval p, err = vercel.NewDNSProviderConfig(vercelConfig) + case Spaceship: + spaceshipConfig := spaceship.NewDefaultConfig() + spaceshipConfig.APIKey = param.APIkey + spaceshipConfig.APISecret = param.APISecret + spaceshipConfig.PropagationTimeout = propagationTimeout + spaceshipConfig.PollingInterval = pollingInterval + spaceshipConfig.TTL = ttl + p, err = spaceship.NewDNSProviderConfig(spaceshipConfig) } if err != nil { return nil, err diff --git a/frontend/src/global/mimetype.ts b/frontend/src/global/mimetype.ts index 853f1266c..3627fc318 100644 --- a/frontend/src/global/mimetype.ts +++ b/frontend/src/global/mimetype.ts @@ -220,6 +220,10 @@ export const DNSTypes = [ label: i18n.global.t('website.rainyun'), value: 'RainYun', }, + { + label: 'Spaceship', + value: 'Spaceship', + }, ]; 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 0704f9383..5af15d1c3 100644 --- a/frontend/src/views/website/ssl/dns-account/create/index.vue +++ b/frontend/src/views/website/ssl/dns-account/create/index.vue @@ -54,11 +54,6 @@ -
- - - -
@@ -84,14 +79,24 @@ - +
@@ -153,6 +158,7 @@ const rules = ref({ apiKey: [Rules.requiredInput], apiUser: [Rules.requiredInput], secretID: [Rules.requiredInput], + apiSecret: [Rules.requiredInput], }, }); const account = ref({