diff --git a/agent/utils/ssl/dns_provider.go b/agent/utils/ssl/dns_provider.go
index 11fd5909bd6e..08b9d253dc75 100644
--- a/agent/utils/ssl/dns_provider.go
+++ b/agent/utils/ssl/dns_provider.go
@@ -20,6 +20,8 @@ import (
"github.com/go-acme/lego/v5/providers/dns/freemyip"
"github.com/go-acme/lego/v5/providers/dns/godaddy"
"github.com/go-acme/lego/v5/providers/dns/huaweicloud"
+ "github.com/go-acme/lego/v5/providers/dns/ionos"
+ "github.com/go-acme/lego/v5/providers/dns/ionoscloud"
"github.com/go-acme/lego/v5/providers/dns/namecheap"
"github.com/go-acme/lego/v5/providers/dns/namedotcom"
"github.com/go-acme/lego/v5/providers/dns/namesilo"
@@ -37,34 +39,35 @@ import (
)
type DnsType string
-
const (
+ AcmeDNS DnsType = "AcmeDNS"
AliYun DnsType = "AliYun"
AliESA DnsType = "AliESA"
- AWSRoute53 DnsType = "AWSRoute53"
- CloudFlare DnsType = "CloudFlare"
+ BaiduCloud DnsType = "BaiduCloud"
CloudDns DnsType = "CloudDns"
- NameSilo DnsType = "NameSilo"
- NameCheap DnsType = "NameCheap"
- NameCom DnsType = "NameCom"
- Godaddy DnsType = "Godaddy"
- TencentCloud DnsType = "TencentCloud"
- RainYun DnsType = "RainYun"
- Volcengine DnsType = "Volcengine"
- HuaweiCloud DnsType = "HuaweiCloud"
- FreeMyIP DnsType = "FreeMyIP"
- Vercel DnsType = "Vercel"
- Spaceship DnsType = "Spaceship"
- WestCN DnsType = "WestCN"
+ CloudFlare DnsType = "CloudFlare"
ClouDNS DnsType = "ClouDNS"
- RegRu DnsType = "RegRu"
- Dynu DnsType = "Dynu"
Dynadot DnsType = "Dynadot"
- BaiduCloud DnsType = "BaiduCloud"
+ Dynu DnsType = "Dynu"
+ FreeMyIP DnsType = "FreeMyIP"
+ Godaddy DnsType = "Godaddy"
+ HuaweiCloud DnsType = "HuaweiCloud"
+ Ionos DnsType = "Ionos"
+ IonosCloud DnsType = "IonosCloud"
+ NameCheap DnsType = "NameCheap"
+ NameCom DnsType = "NameCom"
+ NameSilo DnsType = "NameSilo"
Ovh DnsType = "Ovh"
- AcmeDNS DnsType = "AcmeDNS"
PorkBun DnsType = "PorkBun"
+ RainYun DnsType = "RainYun"
+ RegRu DnsType = "RegRu"
+ AWSRoute53 DnsType = "AWSRoute53"
+ Spaceship DnsType = "Spaceship"
Technitium DnsType = "Technitium"
+ TencentCloud DnsType = "TencentCloud"
+ Vercel DnsType = "Vercel"
+ Volcengine DnsType = "Volcengine"
+ WestCN DnsType = "WestCN"
)
type DNSParam struct {
@@ -76,6 +79,7 @@ type DNSParam struct {
APIkey string `json:"apiKey"`
APIUser string `json:"apiUser"`
APISecret string `json:"apiSecret"`
+ APIPrefix string `json:"apiPrefix"`
SecretID string `json:"secretID"`
ClientID string `json:"clientID"`
Password string `json:"password"`
@@ -219,6 +223,20 @@ func getDNSProviderConfig(dnsType DnsType, params string, httpClient *http.Clien
config.PollingInterval = pollingInterval
config.TTL = int32(ttl)
p, err = huaweicloud.NewDNSProviderConfig(config)
+ case Ionos:
+ config := newDNSProviderConfig(ionos.NewDefaultConfig(), httpClient)
+ config.APIKey = param.APIPrefix + "." + param.APISecret
+ config.PropagationTimeout = propagationTimeout
+ config.PollingInterval = pollingInterval
+ config.TTL = ttl
+ p, err = ionos.NewDNSProviderConfig(config)
+ case IonosCloud:
+ config := newDNSProviderConfig(ionoscloud.NewDefaultConfig(), httpClient)
+ config.APIToken = param.Token
+ config.PropagationTimeout = propagationTimeout
+ config.PollingInterval = pollingInterval
+ config.TTL = ttl
+ p, err = ionoscloud.NewDNSProviderConfig(config)
case FreeMyIP:
config := newDNSProviderConfig(freemyip.NewDefaultConfig(), httpClient)
config.Token = param.Token
diff --git a/frontend/src/global/mimetype.ts b/frontend/src/global/mimetype.ts
index 32cb89e07c22..2e0612264c4b 100644
--- a/frontend/src/global/mimetype.ts
+++ b/frontend/src/global/mimetype.ts
@@ -285,6 +285,14 @@ export const DNSTypes = [
label: 'Technitium',
value: 'Technitium',
},
+ {
+ label: 'Ionos',
+ value: 'Ionos',
+ },
+ {
+ label: 'Ionos Cloud',
+ value: 'IonosCloud',
+ },
];
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 707dfe0c4eb4..bcd180aaa106 100644
--- a/frontend/src/views/website/ssl/dns-account/create/index.vue
+++ b/frontend/src/views/website/ssl/dns-account/create/index.vue
@@ -110,11 +110,19 @@