diff --git a/config.json b/config.json index 92c06db..51ab9e0 100644 --- a/config.json +++ b/config.json @@ -33,6 +33,9 @@ }, "RainYun": { "ApiKey": "xxx" + }, + "Dode": { + "Token": "xxx" } } } diff --git a/internal/app/config/DNSProvider.go b/internal/app/config/DNSProvider.go index 1890ef1..06e35ee 100644 --- a/internal/app/config/DNSProvider.go +++ b/internal/app/config/DNSProvider.go @@ -7,6 +7,7 @@ type DNSProviderConfig struct { HuaweiCloud `json:"HuaweiCloud,omitempty"` WestCN `json:"WestCN,omitempty"` RainYun `json:"RainYun,omitempty"` + Dode `json:"Dode,omitempty"` } type TencentCloud struct { @@ -35,3 +36,7 @@ type WestCN struct { type RainYun struct { ApiKey string `json:"ApiKey,omitempty"` } + +type Dode struct { + Token string `json:"Token,omitempty"` +} diff --git a/internal/app/config/DNSProviderMethod.go b/internal/app/config/DNSProviderMethod.go index b2bf93b..400dae1 100644 --- a/internal/app/config/DNSProviderMethod.go +++ b/internal/app/config/DNSProviderMethod.go @@ -3,6 +3,7 @@ package config import ( "github.com/go-acme/lego/v4/challenge" "github.com/go-acme/lego/v4/providers/dns/alidns" + "github.com/go-acme/lego/v4/providers/dns/dode" "github.com/go-acme/lego/v4/providers/dns/huaweicloud" "github.com/go-acme/lego/v4/providers/dns/rainyun" "github.com/go-acme/lego/v4/providers/dns/tencentcloud" @@ -50,3 +51,10 @@ func (rain RainYun) Provider() (challenge.Provider, error) { p, err := rainyun.NewDNSProviderConfig(cfg) return p, err } + +func (Dode Dode) Provider() (challenge.Provider, error) { + cfg := dode.NewDefaultConfig() + cfg.Token = Dode.Token + p, err := dode.NewDNSProviderConfig(cfg) + return p, err +} diff --git a/pkg/moudle/chooseDNSProvider.go b/pkg/moudle/chooseDNSProvider.go index cc5f077..0f9e908 100644 --- a/pkg/moudle/chooseDNSProvider.go +++ b/pkg/moudle/chooseDNSProvider.go @@ -17,6 +17,8 @@ func ChooseDNSProvider(config config.DNSProviderConfig) (challenge.Provider, err return config.WestCN.Provider() } else if config.DNSProvider == "RainYun" { return config.RainYun.Provider() + } else if config.DNSProvider == "Dode" { + return config.Dode.Provider() } return nil, errors.New("未正确设置 DNS 服务提供商") }