Toby Chui 5f64b622b5 Fixed #353 and #327
- Added user defined polling and propagation timeout option in ACME
- Updated lego and added a few new DNS challenge providers
- Updated code gen to support new parameters
2024-10-27 16:17:44 +08:00
..
2024-10-27 16:17:44 +08:00
2024-10-27 16:17:44 +08:00
2024-05-18 14:48:55 +08:00
2024-10-27 15:40:53 +08:00

DNS Challenge Update Data Structure Code Generator

This script is designed to automatically pull lego, update the acmedns module with new json file and create a function for automatically create a provider based on the given providers name and config json.

Usage

To update the module, simply run update.sh

./update.sh

The updated files will be written into the acmedns folder. Then, you can copy it to the ACME module folder (or later-on a CICD pipeline will be made to do this automatically, but for now you have to manually copy it into the module under src/mod/acme/)

Build for Windows 7 (NT6.1)

If you want to build Zoraxy with NT6.1, the lego version must be kept on or below 4.15.0. To build acmedns module for win7, add -- "win7" as go run paramter as follows.

go run ./extract.go -- "win7"

After moving the generated modules into the acmedns folder, you will also need to force override the version of the lego in the go.mod file under src/. by adding this line at the bottom of the go.mod file

replace github.com/go-acme/lego/v4 v4.16.1 => github.com/go-acme/lego/v4 v4.15.0

Make sure your Go version is on or below 1.20 for Windows 7 support.

Module Usage

To use the module, you can call to the following function inside the acmedns

func GetDNSProviderByJsonConfig(name string, js string)(challenge.Provider, error)

//For example
providersdef.GetDNSProviderByJsonConfig("gandi", "{\"Username\":\"far\",\"Password\":\"boo\"}")

This should be able to replace the default lego v4 build in one (the one attached below) that requires the use of environment variables

// NewDNSChallengeProviderByName Factory for DNS providers.
func NewDNSChallengeProviderByName(name string) (challenge.Provider, error)