diff --git a/README.md b/README.md
index 6324ece67..800aad958 100644
--- a/README.md
+++ b/README.md
@@ -136,165 +136,165 @@ If your DNS provider is not supported, please open an [issue](https://github.com
Efficient IP |
Epik |
+ | EUserv |
Exoscale |
External program |
F5 XC |
- freemyip.com |
+ | freemyip.com |
G-Core |
Gandi |
Gandi Live DNS (v5) |
- Gigahost.no |
+ | Gigahost.no |
Glesys |
Go Daddy |
Google Cloud |
- Google Domains |
+ | Google Domains |
Gravity |
Hetzner |
Hosting.de |
- Hosting.nl |
+ | Hosting.nl |
Hostinger |
Hosttech |
HTTP request |
- http.net |
+ | http.net |
Huawei Cloud |
Hurricane Electric DNS |
HyperOne |
- IBM Cloud (SoftLayer) |
+ | IBM Cloud (SoftLayer) |
IIJ DNS Platform Service |
Infoblox |
Infomaniak |
- Internet Initiative Japan |
+ | Internet Initiative Japan |
Internet.bs |
INWX |
Ionos |
- Ionos Cloud |
+ | Ionos Cloud |
IPv64 |
ISPConfig 3 |
ISPConfig 3 - Dynamic DNS (DDNS) Module |
- iwantmyname (Deprecated) |
+ | iwantmyname (Deprecated) |
JD Cloud |
Joker |
Joohoi's ACME-DNS |
- KeyHelp |
+ | KeyHelp |
Liara |
Lima-City |
Linode (v4) |
- Liquid Web |
+ | Liquid Web |
Loopia |
LuaDNS |
Mail-in-a-Box |
- ManageEngine CloudDNS |
+ | ManageEngine CloudDNS |
Manual |
Metaname |
Metaregistrar |
- mijn.host |
+ | mijn.host |
Mittwald |
myaddr.{tools,dev,io} |
MyDNS.jp |
- MythicBeasts |
+ | MythicBeasts |
Name.com |
Namecheap |
Namesilo |
- NearlyFreeSpeech.NET |
+ | NearlyFreeSpeech.NET |
Neodigit |
Netcup |
Netlify |
- Nicmanager |
+ | Nicmanager |
NIFCloud |
Njalla |
Nodion |
- NS1 |
+ | NS1 |
Octenium |
Open Telekom Cloud |
Oracle Cloud |
- OVH |
+ | OVH |
plesk.com |
Porkbun |
PowerDNS |
- Rackspace |
+ | Rackspace |
Rain Yun/雨云 |
RcodeZero |
reg.ru |
- Regfish |
+ | Regfish |
RFC2136 |
RimuHosting |
RU CENTER |
- Sakura Cloud |
+ | Sakura Cloud |
Scaleway |
Selectel |
Selectel v2 |
- SelfHost.(de|eu) |
+ | SelfHost.(de|eu) |
Servercow |
Shellrent |
Simply.com |
- Sonic |
+ | Sonic |
Spaceship |
Stackpath |
Syse |
- Technitium |
+ | Technitium |
Tencent Cloud DNS |
Tencent EdgeOne |
Timeweb Cloud |
- TodayNIC/时代互联 |
+ | TodayNIC/时代互联 |
TransIP |
UKFast SafeDNS |
Ultradns |
- United-Domains |
+ | United-Domains |
Variomedia |
VegaDNS |
Vercel |
- Versio.[nl|eu|uk] |
+ | Versio.[nl|eu|uk] |
VinylDNS |
Virtualname |
VK Cloud |
- Volcano Engine/火山引擎 |
+ | Volcano Engine/火山引擎 |
Vscale |
Vultr |
webnames.ca |
- webnames.ru |
+ | webnames.ru |
Websupport |
WEDOS |
West.cn/西部数码 |
- Yandex 360 |
+ | Yandex 360 |
Yandex Cloud |
Yandex PDD |
Zone.ee |
- ZoneEdit |
+ | ZoneEdit |
Zonomi |
|
|
- |
diff --git a/cmd/zz_gen_cmd_dnshelp.go b/cmd/zz_gen_cmd_dnshelp.go
index 600e49753..473d07287 100644
--- a/cmd/zz_gen_cmd_dnshelp.go
+++ b/cmd/zz_gen_cmd_dnshelp.go
@@ -72,6 +72,7 @@ func allDNSCodes() string {
"edgeone",
"efficientip",
"epik",
+ "euserv",
"exec",
"exoscale",
"f5xc",
@@ -1515,6 +1516,28 @@ func displayDNSHelp(w io.Writer, name string) error {
ew.writeln()
ew.writeln(`More information: https://go-acme.github.io/lego/dns/epik`)
+ case "euserv":
+ // generated from: providers/dns/euserv/euserv.toml
+ ew.writeln(`Configuration for EUserv.`)
+ ew.writeln(`Code: 'euserv'`)
+ ew.writeln(`Since: 'v4.32.0'`)
+ ew.writeln()
+
+ ew.writeln(`Credentials:`)
+ ew.writeln(` - "EUSERV_EMAIL": The customer email address. You can also use the customer id instead.`)
+ ew.writeln(` - "EUSERV_ORDER_ID": The order ID of the API contract that you want to use for this login session.`)
+ ew.writeln(` - "EUSERV_PASSWORD": The customer account password.`)
+ ew.writeln()
+
+ ew.writeln(`Additional Configuration:`)
+ ew.writeln(` - "EUSERV_HTTP_TIMEOUT": API request timeout in seconds (Default: 30)`)
+ ew.writeln(` - "EUSERV_POLLING_INTERVAL": Time between DNS propagation check in seconds (Default: 2)`)
+ ew.writeln(` - "EUSERV_PROPAGATION_TIMEOUT": Maximum waiting time for DNS propagation in seconds (Default: 60)`)
+ ew.writeln(` - "EUSERV_TTL": The TTL of the TXT record used for the DNS challenge in seconds (Default: 120)`)
+
+ ew.writeln()
+ ew.writeln(`More information: https://go-acme.github.io/lego/dns/euserv`)
+
case "exec":
// generated from: providers/dns/exec/exec.toml
ew.writeln(`Configuration for External program.`)
diff --git a/docs/content/dns/zz_gen_euserv.md b/docs/content/dns/zz_gen_euserv.md
new file mode 100644
index 000000000..a1116cdd3
--- /dev/null
+++ b/docs/content/dns/zz_gen_euserv.md
@@ -0,0 +1,71 @@
+---
+title: "EUserv"
+date: 2019-03-03T16:39:46+01:00
+draft: false
+slug: euserv
+dnsprovider:
+ since: "v4.32.0"
+ code: "euserv"
+ url: "https://www.euserv.com/en/"
+---
+
+
+
+
+
+
+Configuration for [EUserv](https://www.euserv.com/en/).
+
+
+
+
+- Code: `euserv`
+- Since: v4.32.0
+
+
+Here is an example bash command using the EUserv provider:
+
+```bash
+EUSERV_EMAIL="user@example.com" \
+EUSERV_PASSWORD="xxx" \
+EUSERV_ORDER_ID="yyy" \
+lego --email you@example.com --dns euserv -d '*.example.com' -d example.com run
+```
+
+
+
+
+## Credentials
+
+| Environment Variable Name | Description |
+|-----------------------|-------------|
+| `EUSERV_EMAIL` | The customer email address. You can also use the customer id instead. |
+| `EUSERV_ORDER_ID` | The order ID of the API contract that you want to use for this login session. |
+| `EUSERV_PASSWORD` | The customer account password. |
+
+The environment variable names can be suffixed by `_FILE` to reference a file instead of a value.
+More information [here]({{% ref "dns#configuration-and-credentials" %}}).
+
+
+## Additional Configuration
+
+| Environment Variable Name | Description |
+|--------------------------------|-------------|
+| `EUSERV_HTTP_TIMEOUT` | API request timeout in seconds (Default: 30) |
+| `EUSERV_POLLING_INTERVAL` | Time between DNS propagation check in seconds (Default: 2) |
+| `EUSERV_PROPAGATION_TIMEOUT` | Maximum waiting time for DNS propagation in seconds (Default: 60) |
+| `EUSERV_TTL` | The TTL of the TXT record used for the DNS challenge in seconds (Default: 120) |
+
+The environment variable names can be suffixed by `_FILE` to reference a file instead of a value.
+More information [here]({{% ref "dns#configuration-and-credentials" %}}).
+
+
+
+
+## More information
+
+- [API documentation](https://support.euserv.com/api-doc/)
+
+
+
+
diff --git a/docs/data/zz_cli_help.toml b/docs/data/zz_cli_help.toml
index e31633567..7572703a1 100644
--- a/docs/data/zz_cli_help.toml
+++ b/docs/data/zz_cli_help.toml
@@ -152,7 +152,7 @@ To display the documentation for a specific DNS provider, run:
$ lego dnshelp -c code
Supported DNS providers:
- acme-dns, active24, alidns, aliesa, allinkl, alwaysdata, anexia, arvancloud, auroradns, autodns, axelname, azion, azure, azuredns, baiducloud, beget, binarylane, bindman, bluecat, bluecatv2, bookmyname, brandit, bunny, checkdomain, civo, clouddns, cloudflare, cloudns, cloudru, cloudxns, com35, conoha, conohav3, constellix, corenetworks, cpanel, ddnss, derak, desec, designate, digitalocean, directadmin, dnsexit, dnshomede, dnsimple, dnsmadeeasy, dnspod, dode, domeneshop, dreamhost, duckdns, dyn, dyndnsfree, dynu, easydns, edgecenter, edgedns, edgeone, efficientip, epik, exec, exoscale, f5xc, freemyip, gandi, gandiv5, gcloud, gcore, gigahostno, glesys, godaddy, googledomains, gravity, hetzner, hostingde, hostinger, hostingnl, hosttech, httpnet, httpreq, huaweicloud, hurricane, hyperone, ibmcloud, iij, iijdpf, infoblox, infomaniak, internetbs, inwx, ionos, ionoscloud, ipv64, ispconfig, ispconfigddns, iwantmyname, jdcloud, joker, keyhelp, liara, lightsail, limacity, linode, liquidweb, loopia, luadns, mailinabox, manageengine, manual, metaname, metaregistrar, mijnhost, mittwald, myaddr, mydnsjp, mythicbeasts, namecheap, namedotcom, namesilo, nearlyfreespeech, neodigit, netcup, netlify, nicmanager, nicru, nifcloud, njalla, nodion, ns1, octenium, oraclecloud, otc, ovh, pdns, plesk, porkbun, rackspace, rainyun, rcodezero, regfish, regru, rfc2136, rimuhosting, route53, safedns, sakuracloud, scaleway, selectel, selectelv2, selfhostde, servercow, shellrent, simply, sonic, spaceship, stackpath, syse, technitium, tencentcloud, timewebcloud, todaynic, transip, ultradns, uniteddomains, variomedia, vegadns, vercel, versio, vinyldns, virtualname, vkcloud, volcengine, vscale, vultr, webnames, webnamesca, websupport, wedos, westcn, yandex, yandex360, yandexcloud, zoneedit, zoneee, zonomi
+ acme-dns, active24, alidns, aliesa, allinkl, alwaysdata, anexia, arvancloud, auroradns, autodns, axelname, azion, azure, azuredns, baiducloud, beget, binarylane, bindman, bluecat, bluecatv2, bookmyname, brandit, bunny, checkdomain, civo, clouddns, cloudflare, cloudns, cloudru, cloudxns, com35, conoha, conohav3, constellix, corenetworks, cpanel, ddnss, derak, desec, designate, digitalocean, directadmin, dnsexit, dnshomede, dnsimple, dnsmadeeasy, dnspod, dode, domeneshop, dreamhost, duckdns, dyn, dyndnsfree, dynu, easydns, edgecenter, edgedns, edgeone, efficientip, epik, euserv, exec, exoscale, f5xc, freemyip, gandi, gandiv5, gcloud, gcore, gigahostno, glesys, godaddy, googledomains, gravity, hetzner, hostingde, hostinger, hostingnl, hosttech, httpnet, httpreq, huaweicloud, hurricane, hyperone, ibmcloud, iij, iijdpf, infoblox, infomaniak, internetbs, inwx, ionos, ionoscloud, ipv64, ispconfig, ispconfigddns, iwantmyname, jdcloud, joker, keyhelp, liara, lightsail, limacity, linode, liquidweb, loopia, luadns, mailinabox, manageengine, manual, metaname, metaregistrar, mijnhost, mittwald, myaddr, mydnsjp, mythicbeasts, namecheap, namedotcom, namesilo, nearlyfreespeech, neodigit, netcup, netlify, nicmanager, nicru, nifcloud, njalla, nodion, ns1, octenium, oraclecloud, otc, ovh, pdns, plesk, porkbun, rackspace, rainyun, rcodezero, regfish, regru, rfc2136, rimuhosting, route53, safedns, sakuracloud, scaleway, selectel, selectelv2, selfhostde, servercow, shellrent, simply, sonic, spaceship, stackpath, syse, technitium, tencentcloud, timewebcloud, todaynic, transip, ultradns, uniteddomains, variomedia, vegadns, vercel, versio, vinyldns, virtualname, vkcloud, volcengine, vscale, vultr, webnames, webnamesca, websupport, wedos, westcn, yandex, yandex360, yandexcloud, zoneedit, zoneee, zonomi
More information: https://go-acme.github.io/lego/dns
"""
diff --git a/providers/dns/zz_gen_dns_providers.go b/providers/dns/zz_gen_dns_providers.go
index ae41f6a20..24031d643 100644
--- a/providers/dns/zz_gen_dns_providers.go
+++ b/providers/dns/zz_gen_dns_providers.go
@@ -66,6 +66,7 @@ import (
"github.com/go-acme/lego/v4/providers/dns/edgeone"
"github.com/go-acme/lego/v4/providers/dns/efficientip"
"github.com/go-acme/lego/v4/providers/dns/epik"
+ "github.com/go-acme/lego/v4/providers/dns/euserv"
"github.com/go-acme/lego/v4/providers/dns/exec"
"github.com/go-acme/lego/v4/providers/dns/exoscale"
"github.com/go-acme/lego/v4/providers/dns/f5xc"
@@ -316,6 +317,8 @@ func NewDNSChallengeProviderByName(name string) (challenge.Provider, error) {
return efficientip.NewDNSProvider()
case "epik":
return epik.NewDNSProvider()
+ case "euserv":
+ return euserv.NewDNSProvider()
case "exec":
return exec.NewDNSProvider()
case "exoscale":