Skip to content

Commit 7c5b2f4

Browse files
authored
feat: add support for Porkbun DNS provider (#11233)
* update: ssl add porkbun platform * fix: some noise
1 parent abd3c24 commit 7c5b2f4

File tree

5 files changed

+30
-9
lines changed

5 files changed

+30
-9
lines changed

backend/utils/ssl/client.go

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,10 @@ package ssl
33
import (
44
"crypto"
55
"encoding/json"
6-
"github.com/go-acme/lego/v4/providers/dns/westcn"
76
"os"
87
"strings"
98
"time"
109

11-
"github.com/go-acme/lego/v4/providers/dns/freemyip"
12-
"github.com/go-acme/lego/v4/providers/dns/rainyun"
13-
1410
"github.com/1Panel-dev/1Panel/backend/app/model"
1511
"github.com/go-acme/lego/v4/acme"
1612
"github.com/go-acme/lego/v4/acme/api"
@@ -23,13 +19,17 @@ import (
2319
"github.com/go-acme/lego/v4/providers/dns/cloudflare"
2420
"github.com/go-acme/lego/v4/providers/dns/cloudns"
2521
"github.com/go-acme/lego/v4/providers/dns/dnspod"
22+
"github.com/go-acme/lego/v4/providers/dns/freemyip"
2623
"github.com/go-acme/lego/v4/providers/dns/godaddy"
2724
"github.com/go-acme/lego/v4/providers/dns/huaweicloud"
2825
"github.com/go-acme/lego/v4/providers/dns/namecheap"
2926
"github.com/go-acme/lego/v4/providers/dns/namedotcom"
3027
"github.com/go-acme/lego/v4/providers/dns/namesilo"
28+
"github.com/go-acme/lego/v4/providers/dns/porkbun"
29+
"github.com/go-acme/lego/v4/providers/dns/rainyun"
3130
"github.com/go-acme/lego/v4/providers/dns/tencentcloud"
3231
"github.com/go-acme/lego/v4/providers/dns/volcengine"
32+
"github.com/go-acme/lego/v4/providers/dns/westcn"
3333
"github.com/go-acme/lego/v4/providers/http/webroot"
3434
"github.com/go-acme/lego/v4/registration"
3535
"github.com/pkg/errors"
@@ -87,6 +87,7 @@ const (
8787
HuaweiCloud DnsType = "HuaweiCloud"
8888
RainYun DnsType = "RainYun"
8989
WestCN DnsType = "WestCN"
90+
PorkBun DnsType = "PorkBun"
9091
)
9192

9293
type DNSParam struct {
@@ -244,6 +245,14 @@ func (c *AcmeClient) UseDns(dnsType DnsType, params string, websiteSSL model.Web
244245
westcnConfig.PollingInterval = pollingInterval
245246
westcnConfig.TTL = ttl
246247
p, err = westcn.NewDNSProviderConfig(westcnConfig)
248+
case PorkBun:
249+
porkbunConfig := porkbun.NewDefaultConfig()
250+
porkbunConfig.APIKey = param.APIkey
251+
porkbunConfig.SecretAPIKey = param.SecretKey
252+
porkbunConfig.PropagationTimeout = propagationTimeout
253+
porkbunConfig.PollingInterval = pollingInterval
254+
porkbunConfig.TTL = ttl
255+
p, err = porkbun.NewDNSProviderConfig(porkbunConfig)
247256
}
248257
if err != nil {
249258
return err

frontend/src/global/mimetype.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -212,6 +212,10 @@ export const DNSTypes = [
212212
label: i18n.global.t('website.westCN'),
213213
value: 'WestCN',
214214
},
215+
{
216+
label: 'PorkBun',
217+
value: 'PorkBun',
218+
},
215219
{
216220
label: i18n.global.t('website.volcengine'),
217221
value: 'Volcengine',

frontend/src/views/website/ssl/dns-account/create/index.vue

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -138,6 +138,14 @@
138138
<el-input v-model.trim="account.authorization['password']"></el-input>
139139
</el-form-item>
140140
</div>
141+
<div v-if="account.type === 'PorkBun'">
142+
<el-form-item label="API Key" prop="authorization.apiKey">
143+
<el-input v-model.trim="account.authorization['apiKey']"></el-input>
144+
</el-form-item>
145+
<el-form-item label="Secret Key" prop="authorization.secretKey">
146+
<el-input v-model.trim="account.authorization['secretKey']"></el-input>
147+
</el-form-item>
148+
</div>
141149
</el-form>
142150
</el-col>
143151
</el-row>

go.mod

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -52,8 +52,6 @@ require (
5252
github.com/swaggo/files v1.0.1
5353
github.com/swaggo/gin-swagger v1.6.0
5454
github.com/swaggo/swag v1.16.3
55-
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cloudapp v1.0.1115
56-
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1115
5755
github.com/tencentyun/cos-go-sdk-v5 v0.7.46
5856
github.com/xlzd/gotp v0.1.0
5957
go4.org v0.0.0-20230225012048-214862532bf5
@@ -64,7 +62,6 @@ require (
6462
golang.org/x/sys v0.30.0
6563
golang.org/x/term v0.29.0
6664
golang.org/x/text v0.22.0
67-
google.golang.org/genproto v0.0.0-20241021214115-324edc3d5d38
6865
gopkg.in/ini.v1 v1.67.0
6966
gopkg.in/yaml.v3 v3.0.1
7067
gorm.io/gorm v1.25.7
@@ -203,6 +200,7 @@ require (
203200
github.com/nrdcg/freemyip v0.3.0 // indirect
204201
github.com/nrdcg/mailinabox v0.2.0 // indirect
205202
github.com/nrdcg/namesilo v0.2.1 // indirect
203+
github.com/nrdcg/porkbun v0.4.0 // indirect
206204
github.com/nwaples/rardecode/v2 v2.0.0-beta.2 // indirect
207205
github.com/opencontainers/go-digest v1.0.0 // indirect
208206
github.com/opentracing/opentracing-go v1.2.1-0.20220228012449-10b1cf09e00b // indirect
@@ -226,6 +224,7 @@ require (
226224
github.com/spf13/cast v1.6.0 // indirect
227225
github.com/spf13/pflag v1.0.5 // indirect
228226
github.com/stretchr/testify v1.10.0 // indirect
227+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1115 // indirect
229228
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/dnspod v1.0.1065 // indirect
230229
github.com/therootcompany/xz v1.0.1 // indirect
231230
github.com/theupdateframework/notary v0.7.0 // indirect
@@ -263,6 +262,7 @@ require (
263262
golang.org/x/mod v0.22.0 // indirect
264263
golang.org/x/time v0.8.0 // indirect
265264
golang.org/x/tools v0.28.0 // indirect
265+
google.golang.org/genproto v0.0.0-20241021214115-324edc3d5d38 // indirect
266266
google.golang.org/genproto/googleapis/api v0.0.0-20241118233622-e639e219e697 // indirect
267267
google.golang.org/genproto/googleapis/rpc v0.0.0-20241209162323-e6fa225c2576 // indirect
268268
google.golang.org/grpc v1.67.1 // indirect

go.sum

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -762,6 +762,8 @@ github.com/nrdcg/mailinabox v0.2.0 h1:IKq8mfKiVwNW2hQii/ng1dJ4yYMMv3HAP3fMFIq2CF
762762
github.com/nrdcg/mailinabox v0.2.0/go.mod h1:0yxqeYOiGyxAu7Sb94eMxHPIOsPYXAjTeA9ZhePhGnc=
763763
github.com/nrdcg/namesilo v0.2.1 h1:kLjCjsufdW/IlC+iSfAqj0iQGgKjlbUUeDJio5Y6eMg=
764764
github.com/nrdcg/namesilo v0.2.1/go.mod h1:lwMvfQTyYq+BbjJd30ylEG4GPSS6PII0Tia4rRpRiyw=
765+
github.com/nrdcg/porkbun v0.4.0 h1:rWweKlwo1PToQ3H+tEO9gPRW0wzzgmI/Ob3n2Guticw=
766+
github.com/nrdcg/porkbun v0.4.0/go.mod h1:/QMskrHEIM0IhC/wY7iTCUgINsxdT2WcOphktJ9+Q54=
765767
github.com/nwaples/rardecode/v2 v2.0.0-beta.2 h1:e3mzJFJs4k83GXBEiTaQ5HgSc/kOK8q0rDaRO0MPaOk=
766768
github.com/nwaples/rardecode/v2 v2.0.0-beta.2/go.mod h1:yntwv/HfMc/Hbvtq9I19D1n58te3h6KsqCf3GxyfBGY=
767769
github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A=
@@ -962,8 +964,6 @@ github.com/swaggo/gin-swagger v1.6.0 h1:y8sxvQ3E20/RCyrXeFfg60r6H0Z+SwpTjMYsMm+z
962964
github.com/swaggo/gin-swagger v1.6.0/go.mod h1:BG00cCEy294xtVpyIAHG6+e2Qzj/xKlRdOqDkvq0uzo=
963965
github.com/swaggo/swag v1.16.3 h1:PnCYjPCah8FK4I26l2F/KQ4yz3sILcVUN3cTlBFA9Pg=
964966
github.com/swaggo/swag v1.16.3/go.mod h1:DImHIuOFXKpMFAQjcC7FG4m3Dg4+QuUgUzJmKjI/gRk=
965-
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cloudapp v1.0.1115 h1:y0GrxBKOgY697oJbybR+WBrukZb/RB9bU06BtlPSWVA=
966-
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cloudapp v1.0.1115/go.mod h1:V1xvKmdqEnfD9cfA3z4v/XKxftR4Gdz7Jyp3Oi+UAtM=
967967
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.563/go.mod h1:7sCQWVkxcsR38nffDW057DRGk8mUjK1Ing/EFOK8s8Y=
968968
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1065/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0=
969969
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1115 h1:lYeFC379r76seyzN7PHmSxv1ji9knmsXQJglDB/K0WE=

0 commit comments

Comments
 (0)