add cloudflare and documentation
This commit is contained in:
@@ -7,6 +7,7 @@ type DNSProviderConfig struct {
|
||||
HuaweiCloud `json:"HuaweiCloud,omitempty"`
|
||||
WestCN `json:"WestCN,omitempty"`
|
||||
RainYun `json:"RainYun,omitempty"`
|
||||
Cloudflare `json:"Cloudflare,omitempty"`
|
||||
Dode `json:"Dode,omitempty"`
|
||||
}
|
||||
|
||||
@@ -40,3 +41,9 @@ type RainYun struct {
|
||||
type Dode struct {
|
||||
Token string `json:"Token,omitempty"`
|
||||
}
|
||||
|
||||
type Cloudflare struct {
|
||||
APIToken string `json:"APIToken,omitempty"`
|
||||
APIKey string `json:"APIKey,omitempty"`
|
||||
Email string `json:"Email,omitempty"`
|
||||
}
|
||||
|
||||
@@ -2,6 +2,7 @@ package config
|
||||
|
||||
import (
|
||||
"github.com/go-acme/lego/v4/challenge"
|
||||
"github.com/go-acme/lego/v4/providers/dns/cloudflare"
|
||||
"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"
|
||||
@@ -52,6 +53,24 @@ func (rain RainYun) Provider() (challenge.Provider, error) {
|
||||
return p, err
|
||||
}
|
||||
|
||||
func (cloud Cloudflare) Provider() (challenge.Provider, error) {
|
||||
cfg := cloudflare.NewDefaultConfig()
|
||||
// lego's cloudflare.Config uses AuthToken / AuthKey / AuthEmail / ZoneToken
|
||||
if cloud.APIToken != "" {
|
||||
cfg.AuthToken = cloud.APIToken
|
||||
}
|
||||
if cloud.APIKey != "" {
|
||||
cfg.AuthKey = cloud.APIKey
|
||||
}
|
||||
if cloud.Email != "" {
|
||||
cfg.AuthEmail = cloud.Email
|
||||
}
|
||||
// support ZoneToken if provided in future (keep empty if not set)
|
||||
// if you add ZoneToken to the config struct, map it here: cfg.ZoneToken = cloud.ZoneToken
|
||||
p, err := cloudflare.NewDNSProviderConfig(cfg)
|
||||
return p, err
|
||||
}
|
||||
|
||||
func (Dode Dode) Provider() (challenge.Provider, error) {
|
||||
cfg := dode.NewDefaultConfig()
|
||||
cfg.Token = Dode.Token
|
||||
|
||||
Reference in New Issue
Block a user