From 2a2b0abc1010798aa6ac375cacbcb8146e8809db Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 12 Jul 2023 18:05:37 +0000 Subject: [PATCH] Deploy to GitHub pages --- 404.html | 59 + categories/index.html | 5195 +++++++++++++ categories/index.xml | 10 + css/atom-one-dark-reasonable.css | 77 + css/auto-complete.css | 47 + css/featherlight.min.css | 8 + css/fontawesome-all.min.css | 1 + css/hugo-theme.css | 241 + css/hybrid.css | 102 + css/nucleus.css | 615 ++ css/perfect-scrollbar.min.css | 2 + css/tabs.css | 43 + css/tags.css | 49 + css/theme-blue.css | 128 + css/theme-custom.css | 6 + css/theme-green.css | 128 + css/theme-red.css | 128 + css/theme.css | 1143 +++ dns/acme-dns/index.html | 5249 +++++++++++++ dns/alidns/index.html | 5293 +++++++++++++ dns/allinkl/index.html | 5274 +++++++++++++ dns/arvancloud/index.html | 5273 +++++++++++++ dns/auroradns/index.html | 5279 +++++++++++++ dns/autodns/index.html | 5286 +++++++++++++ dns/azure/index.html | 5307 +++++++++++++ dns/azuredns/index.html | 5345 +++++++++++++ dns/bindman/index.html | 5270 +++++++++++++ dns/bluecat/index.html | 5294 +++++++++++++ dns/brandit/index.html | 5278 +++++++++++++ dns/bunny/index.html | 5269 +++++++++++++ dns/checkdomain/index.html | 5277 +++++++++++++ dns/civo/index.html | 5269 +++++++++++++ dns/clouddns/index.html | 5283 +++++++++++++ dns/cloudflare/index.html | 5344 +++++++++++++ dns/cloudns/index.html | 5282 +++++++++++++ dns/cloudxns/index.html | 5278 +++++++++++++ dns/conoha/index.html | 5287 +++++++++++++ dns/constellix/index.html | 5278 +++++++++++++ dns/derak/index.html | 5272 +++++++++++++ dns/desec/index.html | 5273 +++++++++++++ dns/designate/index.html | 5343 +++++++++++++ dns/digitalocean/index.html | 5277 +++++++++++++ dns/dnshomede/index.html | 5241 +++++++++++++ dns/dnsimple/index.html | 5289 +++++++++++++ dns/dnsmadeeasy/index.html | 5282 +++++++++++++ dns/dnspod/index.html | 5274 +++++++++++++ dns/dode/index.html | 5277 +++++++++++++ dns/domeneshop/index.html | 5281 +++++++++++++ dns/dreamhost/index.html | 5273 +++++++++++++ dns/duckdns/index.html | 5277 +++++++++++++ dns/dyn/index.html | 5283 +++++++++++++ dns/dynu/index.html | 5273 +++++++++++++ dns/easydns/index.html | 5287 +++++++++++++ dns/edgedns/index.html | 5331 +++++++++++++ dns/efficientip/index.html | 5287 +++++++++++++ dns/epik/index.html | 5273 +++++++++++++ dns/exec/index.html | 5339 +++++++++++++ dns/exoscale/index.html | 5287 +++++++++++++ dns/freemyip/index.html | 5277 +++++++++++++ dns/gandi/index.html | 5273 +++++++++++++ dns/gandiv5/index.html | 5273 +++++++++++++ dns/gcloud/index.html | 5290 +++++++++++++ dns/gcore/index.html | 5273 +++++++++++++ dns/glesys/index.html | 5278 +++++++++++++ dns/godaddy/index.html | 5278 +++++++++++++ dns/googledomains/index.html | 5269 +++++++++++++ dns/hetzner/index.html | 5273 +++++++++++++ dns/hostingde/index.html | 5277 +++++++++++++ dns/hosttech/index.html | 5277 +++++++++++++ dns/httpreq/index.html | 5312 +++++++++++++ dns/hurricane/index.html | 5258 +++++++++++++ dns/hyperone/index.html | 5286 +++++++++++++ dns/ibmcloud/index.html | 5279 +++++++++++++ dns/iij/index.html | 5280 +++++++++++++ dns/iijdpf/index.html | 5279 +++++++++++++ dns/index.html | 6592 +++++++++++++++++ dns/index.xml | 1463 ++++ dns/infoblox/index.html | 5301 +++++++++++++ dns/infomaniak/index.html | 5281 +++++++++++++ dns/internetbs/index.html | 5278 +++++++++++++ dns/inwx/index.html | 5289 +++++++++++++ dns/ionos/index.html | 5273 +++++++++++++ dns/iwantmyname/index.html | 5278 +++++++++++++ dns/joker/index.html | 5325 +++++++++++++ dns/liara/index.html | 5273 +++++++++++++ dns/lightsail/index.html | 5308 +++++++++++++ dns/linode/index.html | 5274 +++++++++++++ dns/liquidweb/index.html | 5288 +++++++++++++ dns/loopia/index.html | 5295 +++++++++++++ dns/luadns/index.html | 5278 +++++++++++++ dns/manual/index.html | 5248 +++++++++++++ dns/mydnsjp/index.html | 5278 +++++++++++++ dns/mythicbeasts/index.html | 5288 +++++++++++++ dns/namecheap/index.html | 5285 +++++++++++++ dns/namedotcom/index.html | 5279 +++++++++++++ dns/namesilo/index.html | 5270 +++++++++++++ dns/nearlyfreespeech/index.html | 5282 +++++++++++++ dns/netcup/index.html | 5283 +++++++++++++ dns/netlify/index.html | 5273 +++++++++++++ dns/nicmanager/index.html | 5315 +++++++++++++ dns/nifcloud/index.html | 5278 +++++++++++++ dns/njalla/index.html | 5273 +++++++++++++ dns/nodion/index.html | 5273 +++++++++++++ dns/ns1/index.html | 5274 +++++++++++++ dns/oraclecloud/index.html | 5300 +++++++++++++ dns/otc/index.html | 5290 +++++++++++++ dns/ovh/index.html | 5305 +++++++++++++ dns/pdns/index.html | 5290 +++++++++++++ dns/plesk/index.html | 5283 +++++++++++++ dns/porkbun/index.html | 5278 +++++++++++++ dns/rackspace/index.html | 5278 +++++++++++++ dns/rcodezero/index.html | 5278 +++++++++++++ dns/regru/index.html | 5278 +++++++++++++ dns/rfc2136/index.html | 5302 +++++++++++++ dns/rimuhosting/index.html | 5273 +++++++++++++ dns/route53/index.html | 5410 ++++++++++++++ dns/safedns/index.html | 5273 +++++++++++++ dns/sakuracloud/index.html | 5279 +++++++++++++ dns/scaleway/index.html | 5273 +++++++++++++ dns/selectel/index.html | 5277 +++++++++++++ dns/servercow/index.html | 5278 +++++++++++++ dns/simply/index.html | 5278 +++++++++++++ dns/sonic/index.html | 5291 +++++++++++++ dns/stackpath/index.html | 5279 +++++++++++++ dns/tencentcloud/index.html | 5287 +++++++++++++ dns/transip/index.html | 5275 +++++++++++++ dns/ultradns/index.html | 5279 +++++++++++++ dns/variomedia/index.html | 5277 +++++++++++++ dns/vegadns/index.html | 5279 +++++++++++++ dns/vercel/index.html | 5277 +++++++++++++ dns/versio/index.html | 5287 +++++++++++++ dns/vinyldns/index.html | 5282 +++++++++++++ dns/vkcloud/index.html | 5320 +++++++++++++ dns/vscale/index.html | 5277 +++++++++++++ dns/vultr/index.html | 5274 +++++++++++++ dns/websupport/index.html | 5282 +++++++++++++ dns/wedos/index.html | 5278 +++++++++++++ dns/yandex/index.html | 5273 +++++++++++++ dns/yandexcloud/index.html | 5293 +++++++++++++ dns/zoneee/index.html | 5282 +++++++++++++ dns/zonomi/index.html | 5270 +++++++++++++ fonts/Inconsolata.eot | Bin 0 -> 35620 bytes fonts/Inconsolata.svg | 1 + fonts/Inconsolata.ttf | Bin 0 -> 63184 bytes fonts/Inconsolata.woff | Bin 0 -> 38248 bytes fonts/Novecentosanswide-Normal-webfont.eot | Bin 0 -> 22446 bytes fonts/Novecentosanswide-Normal-webfont.svg | 1 + fonts/Novecentosanswide-Normal-webfont.ttf | Bin 0 -> 56884 bytes fonts/Novecentosanswide-Normal-webfont.woff | Bin 0 -> 24772 bytes fonts/Novecentosanswide-Normal-webfont.woff2 | Bin 0 -> 19760 bytes .../Novecentosanswide-UltraLight-webfont.eot | Bin 0 -> 21080 bytes .../Novecentosanswide-UltraLight-webfont.svg | 1 + .../Novecentosanswide-UltraLight-webfont.ttf | Bin 0 -> 55600 bytes .../Novecentosanswide-UltraLight-webfont.woff | Bin 0 -> 23476 bytes ...Novecentosanswide-UltraLight-webfont.woff2 | Bin 0 -> 18716 bytes fonts/Work_Sans_200.eot | Bin 0 -> 24290 bytes fonts/Work_Sans_200.svg | 1 + fonts/Work_Sans_200.ttf | Bin 0 -> 49752 bytes fonts/Work_Sans_200.woff | Bin 0 -> 25896 bytes fonts/Work_Sans_200.woff2 | Bin 0 -> 21128 bytes fonts/Work_Sans_300.eot | Bin 0 -> 24817 bytes fonts/Work_Sans_300.svg | 1 + fonts/Work_Sans_300.ttf | Bin 0 -> 50784 bytes fonts/Work_Sans_300.woff | Bin 0 -> 26392 bytes fonts/Work_Sans_300.woff2 | Bin 0 -> 21548 bytes fonts/Work_Sans_500.eot | Bin 0 -> 26481 bytes fonts/Work_Sans_500.svg | 1 + fonts/Work_Sans_500.ttf | Bin 0 -> 54232 bytes fonts/Work_Sans_500.woff | Bin 0 -> 27900 bytes fonts/Work_Sans_500.woff2 | Bin 0 -> 22884 bytes images/clippy.svg | 1 + images/favicon.png | Bin 0 -> 608 bytes images/gopher-404.jpg | Bin 0 -> 206249 bytes images/lego-logo-white.min.svg | 1 + images/lego-logo.min.svg | 1 + index.html | 5174 +++++++++++++ index.json | 946 +++ index.xml | 1519 ++++ installation/index.html | 5238 +++++++++++++ installation/index.xml | 11 + js/auto-complete.js | 3 + js/clipboard.min.js | 7 + js/featherlight.min.js | 9 + js/highlight.pack.js | 6 + js/hugo-learn.js | 94 + js/jquery-3.3.1.min.js | 2 + js/jquery.sticky.js | 288 + js/learn.js | 496 ++ js/lunr.min.js | 6 + js/modernizr.custom-3.6.0.js | 3 + js/perfect-scrollbar.jquery.min.js | 2 + js/perfect-scrollbar.min.js | 2 + js/search.js | 96 + mermaid/mermaid.js | 32 + sitemap.xml | 408 + tags/index.html | 5195 +++++++++++++ tags/index.xml | 10 + usage/cli/examples/index.html | 5240 +++++++++++++ usage/cli/general-instructions/index.html | 5215 +++++++++++++ usage/cli/index.html | 5306 +++++++++++++ usage/cli/index.xml | 58 + usage/cli/obtain-a-certificate/index.html | 5296 +++++++++++++ usage/cli/options/index.html | 5493 ++++++++++++++ usage/cli/renew-a-certificate/index.html | 5288 +++++++++++++ usage/index.html | 5265 +++++++++++++ usage/index.xml | 11 + usage/library/index.html | 5312 +++++++++++++ usage/library/index.xml | 20 + .../writing-a-challenge-solver/index.html | 5276 +++++++++++++ webfonts/fa-brands-400.eot | Bin 0 -> 134396 bytes webfonts/fa-brands-400.svg | 1 + webfonts/fa-brands-400.ttf | Bin 0 -> 134160 bytes webfonts/fa-brands-400.woff | Bin 0 -> 87048 bytes webfonts/fa-brands-400.woff2 | Bin 0 -> 74288 bytes webfonts/fa-regular-400.eot | Bin 0 -> 40308 bytes webfonts/fa-regular-400.svg | 1 + webfonts/fa-regular-400.ttf | Bin 0 -> 40080 bytes webfonts/fa-regular-400.woff | Bin 0 -> 18164 bytes webfonts/fa-regular-400.woff2 | Bin 0 -> 14872 bytes webfonts/fa-solid-900.eot | Bin 0 -> 209012 bytes webfonts/fa-solid-900.svg | 1 + webfonts/fa-solid-900.ttf | Bin 0 -> 208792 bytes webfonts/fa-solid-900.woff | Bin 0 -> 102224 bytes webfonts/fa-solid-900.woff2 | Bin 0 -> 79100 bytes 224 files changed, 722767 insertions(+) create mode 100644 404.html create mode 100644 categories/index.html create mode 100644 categories/index.xml create mode 100644 css/atom-one-dark-reasonable.css create mode 100644 css/auto-complete.css create mode 100644 css/featherlight.min.css create mode 100644 css/fontawesome-all.min.css create mode 100644 css/hugo-theme.css create mode 100644 css/hybrid.css create mode 100644 css/nucleus.css create mode 100644 css/perfect-scrollbar.min.css create mode 100644 css/tabs.css create mode 100644 css/tags.css create mode 100644 css/theme-blue.css create mode 100644 css/theme-custom.css create mode 100644 css/theme-green.css create mode 100644 css/theme-red.css create mode 100644 css/theme.css create mode 100644 dns/acme-dns/index.html create mode 100644 dns/alidns/index.html create mode 100644 dns/allinkl/index.html create mode 100644 dns/arvancloud/index.html create mode 100644 dns/auroradns/index.html create mode 100644 dns/autodns/index.html create mode 100644 dns/azure/index.html create mode 100644 dns/azuredns/index.html create mode 100644 dns/bindman/index.html create mode 100644 dns/bluecat/index.html create mode 100644 dns/brandit/index.html create mode 100644 dns/bunny/index.html create mode 100644 dns/checkdomain/index.html create mode 100644 dns/civo/index.html create mode 100644 dns/clouddns/index.html create mode 100644 dns/cloudflare/index.html create mode 100644 dns/cloudns/index.html create mode 100644 dns/cloudxns/index.html create mode 100644 dns/conoha/index.html create mode 100644 dns/constellix/index.html create mode 100644 dns/derak/index.html create mode 100644 dns/desec/index.html create mode 100644 dns/designate/index.html create mode 100644 dns/digitalocean/index.html create mode 100644 dns/dnshomede/index.html create mode 100644 dns/dnsimple/index.html create mode 100644 dns/dnsmadeeasy/index.html create mode 100644 dns/dnspod/index.html create mode 100644 dns/dode/index.html create mode 100644 dns/domeneshop/index.html create mode 100644 dns/dreamhost/index.html create mode 100644 dns/duckdns/index.html create mode 100644 dns/dyn/index.html create mode 100644 dns/dynu/index.html create mode 100644 dns/easydns/index.html create mode 100644 dns/edgedns/index.html create mode 100644 dns/efficientip/index.html create mode 100644 dns/epik/index.html create mode 100644 dns/exec/index.html create mode 100644 dns/exoscale/index.html create mode 100644 dns/freemyip/index.html create mode 100644 dns/gandi/index.html create mode 100644 dns/gandiv5/index.html create mode 100644 dns/gcloud/index.html create mode 100644 dns/gcore/index.html create mode 100644 dns/glesys/index.html create mode 100644 dns/godaddy/index.html create mode 100644 dns/googledomains/index.html create mode 100644 dns/hetzner/index.html create mode 100644 dns/hostingde/index.html create mode 100644 dns/hosttech/index.html create mode 100644 dns/httpreq/index.html create mode 100644 dns/hurricane/index.html create mode 100644 dns/hyperone/index.html create mode 100644 dns/ibmcloud/index.html create mode 100644 dns/iij/index.html create mode 100644 dns/iijdpf/index.html create mode 100644 dns/index.html create mode 100644 dns/index.xml create mode 100644 dns/infoblox/index.html create mode 100644 dns/infomaniak/index.html create mode 100644 dns/internetbs/index.html create mode 100644 dns/inwx/index.html create mode 100644 dns/ionos/index.html create mode 100644 dns/iwantmyname/index.html create mode 100644 dns/joker/index.html create mode 100644 dns/liara/index.html create mode 100644 dns/lightsail/index.html create mode 100644 dns/linode/index.html create mode 100644 dns/liquidweb/index.html create mode 100644 dns/loopia/index.html create mode 100644 dns/luadns/index.html create mode 100644 dns/manual/index.html create mode 100644 dns/mydnsjp/index.html create mode 100644 dns/mythicbeasts/index.html create mode 100644 dns/namecheap/index.html create mode 100644 dns/namedotcom/index.html create mode 100644 dns/namesilo/index.html create mode 100644 dns/nearlyfreespeech/index.html create mode 100644 dns/netcup/index.html create mode 100644 dns/netlify/index.html create mode 100644 dns/nicmanager/index.html create mode 100644 dns/nifcloud/index.html create mode 100644 dns/njalla/index.html create mode 100644 dns/nodion/index.html create mode 100644 dns/ns1/index.html create mode 100644 dns/oraclecloud/index.html create mode 100644 dns/otc/index.html create mode 100644 dns/ovh/index.html create mode 100644 dns/pdns/index.html create mode 100644 dns/plesk/index.html create mode 100644 dns/porkbun/index.html create mode 100644 dns/rackspace/index.html create mode 100644 dns/rcodezero/index.html create mode 100644 dns/regru/index.html create mode 100644 dns/rfc2136/index.html create mode 100644 dns/rimuhosting/index.html create mode 100644 dns/route53/index.html create mode 100644 dns/safedns/index.html create mode 100644 dns/sakuracloud/index.html create mode 100644 dns/scaleway/index.html create mode 100644 dns/selectel/index.html create mode 100644 dns/servercow/index.html create mode 100644 dns/simply/index.html create mode 100644 dns/sonic/index.html create mode 100644 dns/stackpath/index.html create mode 100644 dns/tencentcloud/index.html create mode 100644 dns/transip/index.html create mode 100644 dns/ultradns/index.html create mode 100644 dns/variomedia/index.html create mode 100644 dns/vegadns/index.html create mode 100644 dns/vercel/index.html create mode 100644 dns/versio/index.html create mode 100644 dns/vinyldns/index.html create mode 100644 dns/vkcloud/index.html create mode 100644 dns/vscale/index.html create mode 100644 dns/vultr/index.html create mode 100644 dns/websupport/index.html create mode 100644 dns/wedos/index.html create mode 100644 dns/yandex/index.html create mode 100644 dns/yandexcloud/index.html create mode 100644 dns/zoneee/index.html create mode 100644 dns/zonomi/index.html create mode 100644 fonts/Inconsolata.eot create mode 100644 fonts/Inconsolata.svg create mode 100644 fonts/Inconsolata.ttf create mode 100644 fonts/Inconsolata.woff create mode 100644 fonts/Novecentosanswide-Normal-webfont.eot create mode 100644 fonts/Novecentosanswide-Normal-webfont.svg create mode 100644 fonts/Novecentosanswide-Normal-webfont.ttf create mode 100644 fonts/Novecentosanswide-Normal-webfont.woff create mode 100644 fonts/Novecentosanswide-Normal-webfont.woff2 create mode 100644 fonts/Novecentosanswide-UltraLight-webfont.eot create mode 100644 fonts/Novecentosanswide-UltraLight-webfont.svg create mode 100644 fonts/Novecentosanswide-UltraLight-webfont.ttf create mode 100644 fonts/Novecentosanswide-UltraLight-webfont.woff create mode 100644 fonts/Novecentosanswide-UltraLight-webfont.woff2 create mode 100644 fonts/Work_Sans_200.eot create mode 100644 fonts/Work_Sans_200.svg create mode 100644 fonts/Work_Sans_200.ttf create mode 100644 fonts/Work_Sans_200.woff create mode 100644 fonts/Work_Sans_200.woff2 create mode 100644 fonts/Work_Sans_300.eot create mode 100644 fonts/Work_Sans_300.svg create mode 100644 fonts/Work_Sans_300.ttf create mode 100644 fonts/Work_Sans_300.woff create mode 100644 fonts/Work_Sans_300.woff2 create mode 100644 fonts/Work_Sans_500.eot create mode 100644 fonts/Work_Sans_500.svg create mode 100644 fonts/Work_Sans_500.ttf create mode 100644 fonts/Work_Sans_500.woff create mode 100644 fonts/Work_Sans_500.woff2 create mode 100644 images/clippy.svg create mode 100644 images/favicon.png create mode 100644 images/gopher-404.jpg create mode 100644 images/lego-logo-white.min.svg create mode 100644 images/lego-logo.min.svg create mode 100644 index.html create mode 100644 index.json create mode 100644 index.xml create mode 100644 installation/index.html create mode 100644 installation/index.xml create mode 100644 js/auto-complete.js create mode 100644 js/clipboard.min.js create mode 100644 js/featherlight.min.js create mode 100644 js/highlight.pack.js create mode 100644 js/hugo-learn.js create mode 100644 js/jquery-3.3.1.min.js create mode 100755 js/jquery.sticky.js create mode 100644 js/learn.js create mode 100644 js/lunr.min.js create mode 100644 js/modernizr.custom-3.6.0.js create mode 100644 js/perfect-scrollbar.jquery.min.js create mode 100644 js/perfect-scrollbar.min.js create mode 100644 js/search.js create mode 100644 mermaid/mermaid.js create mode 100644 sitemap.xml create mode 100644 tags/index.html create mode 100644 tags/index.xml create mode 100644 usage/cli/examples/index.html create mode 100644 usage/cli/general-instructions/index.html create mode 100644 usage/cli/index.html create mode 100644 usage/cli/index.xml create mode 100644 usage/cli/obtain-a-certificate/index.html create mode 100644 usage/cli/options/index.html create mode 100644 usage/cli/renew-a-certificate/index.html create mode 100644 usage/index.html create mode 100644 usage/index.xml create mode 100644 usage/library/index.html create mode 100644 usage/library/index.xml create mode 100644 usage/library/writing-a-challenge-solver/index.html create mode 100644 webfonts/fa-brands-400.eot create mode 100644 webfonts/fa-brands-400.svg create mode 100644 webfonts/fa-brands-400.ttf create mode 100644 webfonts/fa-brands-400.woff create mode 100644 webfonts/fa-brands-400.woff2 create mode 100644 webfonts/fa-regular-400.eot create mode 100644 webfonts/fa-regular-400.svg create mode 100644 webfonts/fa-regular-400.ttf create mode 100644 webfonts/fa-regular-400.woff create mode 100644 webfonts/fa-regular-400.woff2 create mode 100644 webfonts/fa-solid-900.eot create mode 100644 webfonts/fa-solid-900.svg create mode 100644 webfonts/fa-solid-900.ttf create mode 100644 webfonts/fa-solid-900.woff create mode 100644 webfonts/fa-solid-900.woff2 diff --git a/404.html b/404.html new file mode 100644 index 00000000..f0f0516a --- /dev/null +++ b/404.html @@ -0,0 +1,59 @@ + + + +
+ + + + +Configuration for Joohoi’s ACME-DNS.
+acme-dns
Here is an example bash command using the Joohoi’s ACME-DNS provider:
+ACME_DNS_API_BASE=http://10.0.0.8:4443 \
+ACME_DNS_STORAGE_PATH=/root/.lego-acme-dns-accounts.json \
+lego --email you@example.com --dns acme-dns --domains my.example.org run
+
Environment Variable Name | +Description | +
---|---|
ACME_DNS_API_BASE |
+The ACME-DNS API address | +
ACME_DNS_STORAGE_PATH |
+The ACME-DNS JSON account data file. A per-domain account will be registered/persisted to this file and used for TXT updates. | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Configuration for Alibaba Cloud DNS.
+alidns
Here is an example bash command using the Alibaba Cloud DNS provider:
+# Setup using instance RAM role
+ALICLOUD_RAM_ROLE=lego \
+lego --email you@example.com --dns alidns --domains my.example.org run
+
+# Or, using credentials
+ALICLOUD_ACCESS_KEY=abcdefghijklmnopqrstuvwx \
+ALICLOUD_SECRET_KEY=your-secret-key \
+ALICLOUD_SECURITY_TOKEN=your-sts-token \
+lego --email you@example.com --dns alidns --domains my.example.org run
+
Environment Variable Name | +Description | +
---|---|
ALICLOUD_ACCESS_KEY |
+Access key ID | +
ALICLOUD_RAM_ROLE |
+Your instance RAM role (https://www.alibabacloud.com/help/doc-detail/54579.htm) | +
ALICLOUD_SECRET_KEY |
+Access Key secret | +
ALICLOUD_SECURITY_TOKEN |
+STS Security Token (optional) | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Environment Variable Name | +Description | +
---|---|
ALICLOUD_HTTP_TIMEOUT |
+API request timeout | +
ALICLOUD_POLLING_INTERVAL |
+Time between DNS propagation check | +
ALICLOUD_PROPAGATION_TIMEOUT |
+Maximum waiting time for DNS propagation | +
ALICLOUD_TTL |
+The TTL of the TXT record used for the DNS challenge | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Configuration for all-inkl.
+allinkl
Here is an example bash command using the all-inkl provider:
+ALL_INKL_LOGIN=xxxxxxxxxxxxxxxxxxxxxxxxxx \
+ALL_INKL_PASSWORD=yyyyyyyyyyyyyyyyyyyyyyyyyy \
+lego --email you@example.com --dns allinkl --domains my.example.org run
+
Environment Variable Name | +Description | +
---|---|
ALL_INKL_LOGIN |
+KAS login | +
ALL_INKL_PASSWORD |
+KAS password | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Environment Variable Name | +Description | +
---|---|
ALL_INKL_HTTP_TIMEOUT |
+API request timeout | +
ALL_INKL_POLLING_INTERVAL |
+Time between DNS propagation check | +
ALL_INKL_PROPAGATION_TIMEOUT |
+Maximum waiting time for DNS propagation | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Configuration for ArvanCloud.
+arvancloud
Here is an example bash command using the ArvanCloud provider:
+ARVANCLOUD_API_KEY="Apikey xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" \
+lego --email you@example.com --dns arvancloud --domains my.example.org run
+
Environment Variable Name | +Description | +
---|---|
ARVANCLOUD_API_KEY |
+API key | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Environment Variable Name | +Description | +
---|---|
ARVANCLOUD_HTTP_TIMEOUT |
+API request timeout | +
ARVANCLOUD_POLLING_INTERVAL |
+Time between DNS propagation check | +
ARVANCLOUD_PROPAGATION_TIMEOUT |
+Maximum waiting time for DNS propagation | +
ARVANCLOUD_TTL |
+The TTL of the TXT record used for the DNS challenge | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Configuration for Aurora DNS.
+auroradns
Here is an example bash command using the Aurora DNS provider:
+AURORA_API_KEY=xxxxx \
+AURORA_SECRET=yyyyyy \
+lego --email you@example.com --dns auroradns --domains my.example.org run
+
Environment Variable Name | +Description | +
---|---|
AURORA_API_KEY |
+API key or username to used | +
AURORA_SECRET |
+Secret password to be used | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Environment Variable Name | +Description | +
---|---|
AURORA_ENDPOINT |
+API endpoint URL | +
AURORA_POLLING_INTERVAL |
+Time between DNS propagation check | +
AURORA_PROPAGATION_TIMEOUT |
+Maximum waiting time for DNS propagation | +
AURORA_TTL |
+The TTL of the TXT record used for the DNS challenge | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Configuration for Autodns.
+autodns
Here is an example bash command using the Autodns provider:
+AUTODNS_API_USER=username \
+AUTODNS_API_PASSWORD=supersecretpassword \
+lego --email you@example.com --dns autodns --domains my.example.org run
+
Environment Variable Name | +Description | +
---|---|
AUTODNS_API_PASSWORD |
+User Password | +
AUTODNS_API_USER |
+Username | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Environment Variable Name | +Description | +
---|---|
AUTODNS_CONTEXT |
+API context (4 for production, 1 for testing. Defaults to 4) | +
AUTODNS_ENDPOINT |
+API endpoint URL, defaults to https://api.autodns.com/v1/ | +
AUTODNS_HTTP_TIMEOUT |
+API request timeout, defaults to 30 seconds | +
AUTODNS_POLLING_INTERVAL |
+Time between DNS propagation check | +
AUTODNS_PROPAGATION_TIMEOUT |
+Maximum waiting time for DNS propagation | +
AUTODNS_TTL |
+The TTL of the TXT record used for the DNS challenge | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Configuration for Azure (deprecated).
+azure
Please contribute by adding a CLI example.
+Environment Variable Name | +Description | +
---|---|
AZURE_CLIENT_ID |
+Client ID | +
AZURE_CLIENT_SECRET |
+Client secret | +
AZURE_ENVIRONMENT |
+Azure environment, one of: public, usgovernment, german, and china | +
AZURE_RESOURCE_GROUP |
+Resource group | +
AZURE_SUBSCRIPTION_ID |
+Subscription ID | +
AZURE_TENANT_ID |
+Tenant ID | +
instance metadata service |
+If the credentials are not set via the environment, then it will attempt to get a bearer token via the instance metadata service. | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Environment Variable Name | +Description | +
---|---|
AZURE_METADATA_ENDPOINT |
+Metadata Service endpoint URL | +
AZURE_POLLING_INTERVAL |
+Time between DNS propagation check | +
AZURE_PRIVATE_ZONE |
+Set to true to use Azure Private DNS Zones and not public | +
AZURE_PROPAGATION_TIMEOUT |
+Maximum waiting time for DNS propagation | +
AZURE_TTL |
+The TTL of the TXT record used for the DNS challenge | +
AZURE_ZONE_NAME |
+Zone name to use inside Azure DNS service to add the TXT record in | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Configuration for AzureDNS.
+azuredns
Here is an example bash command using the AzureDNS provider:
+### Using client secret
+AZURE_CLIENT_ID=<your service principal client ID> \
+AZURE_TENANT_ID=<your service principal tenant ID> \
+AZURE_CLIENT_SECRET=<your service principal client secret> \
+lego --domains example.com --email your_example@email.com --dns azuredns run
+
+### Using client certificate
+AZURE_CLIENT_ID=<your service principal client ID> \
+AZURE_TENANT_ID=<your service principal tenant ID> \
+AZURE_CLIENT_CERTIFICATE_PATH=<your service principal certificate path> \
+lego --domains example.com --email your_example@email.com --dns azuredns run
+
+### Using Azure CLI
+az login \
+lego --domains example.com --email your_example@email.com --dns azuredns run
+
Environment Variable Name | +Description | +
---|---|
AZURE_CLIENT_ID |
+Client ID | +
AZURE_CLIENT_SECRET |
+Client secret | +
AZURE_RESOURCE_GROUP |
+DNS zone resource group | +
AZURE_SUBSCRIPTION_ID |
+DNS zone subscription ID | +
AZURE_TENANT_ID |
+Tenant ID | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Environment Variable Name | +Description | +
---|---|
AZURE_ENVIRONMENT |
+Azure environment, one of: public, usgovernment, and china | +
AZURE_POLLING_INTERVAL |
+Time between DNS propagation check | +
AZURE_PRIVATE_ZONE |
+Set to true to use Azure Private DNS Zones and not public | +
AZURE_PROPAGATION_TIMEOUT |
+Maximum waiting time for DNS propagation | +
AZURE_TTL |
+The TTL of the TXT record used for the DNS challenge | +
AZURE_ZONE_NAME |
+Zone name to use inside Azure DNS service to add the TXT record in | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Azure Credentials are automatically detected in the following locations and prioritized in the following order:
+AZURE_CLIENT_ID
, AZURE_TENANT_ID
, AZURE_CLIENT_SECRET
AZURE_CLIENT_ID
, AZURE_TENANT_ID
, AZURE_CLIENT_CERTIFICATE_PATH
~/.azure
), used by Azure CLILink:
+ +Azure managed identity service allows linking Azure AD identities to Azure resources.
+Workloads running inside compute typed resource can inherit from this configuration to get rights on Azure resources.
Workload identity allows workloads running Azure Kubernetes Services (AKS) clusters to authenticate as an Azure AD application identity using federated credentials.
+This must be configured in kubernetes workload deployment in one hand and on the Azure AD application registration in the other hand. \
Here is a summary of the steps to follow to use it :
+ServiceAccount
resource, add following annotations to reference the targeted Azure AD application registration : azure.workload.identity/client-id
and azure.workload.identity/tenant-id
. \Deployment
resource you must reference the previous ServiceAccount
and add the following label : azure.workload.identity/use: "true"
.Kubernetes accessing Azure resources
, add the cluster issuer URL and add the namespace and name of your kubernetes service account.Link :
+ +Configuration for Bindman.
+bindman
Here is an example bash command using the Bindman provider:
+BINDMAN_MANAGER_ADDRESS=<your bindman manager address> \
+lego --email you@example.com --dns bindman --domains my.example.org run
+
Environment Variable Name | +Description | +
---|---|
BINDMAN_MANAGER_ADDRESS |
+The server URL, should have scheme, hostname, and port (if required) of the Bindman-DNS Manager server | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Environment Variable Name | +Description | +
---|---|
BINDMAN_HTTP_TIMEOUT |
+API request timeout | +
BINDMAN_POLLING_INTERVAL |
+Time between DNS propagation check | +
BINDMAN_PROPAGATION_TIMEOUT |
+Maximum waiting time for DNS propagation | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Configuration for Bluecat.
+bluecat
Here is an example bash command using the Bluecat provider:
+BLUECAT_PASSWORD=mypassword \
+BLUECAT_DNS_VIEW=myview \
+BLUECAT_USER_NAME=myusername \
+BLUECAT_CONFIG_NAME=myconfig \
+BLUECAT_SERVER_URL=https://bam.example.com \
+BLUECAT_TTL=30 \
+lego --email you@example.com --dns bluecat --domains my.example.org run
+
Environment Variable Name | +Description | +
---|---|
BLUECAT_CONFIG_NAME |
+Configuration name | +
BLUECAT_DNS_VIEW |
+External DNS View Name | +
BLUECAT_PASSWORD |
+API password | +
BLUECAT_SERVER_URL |
+The server URL, should have scheme, hostname, and port (if required) of the authoritative Bluecat BAM serve | +
BLUECAT_USER_NAME |
+API username | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Environment Variable Name | +Description | +
---|---|
BLUECAT_HTTP_TIMEOUT |
+API request timeout | +
BLUECAT_POLLING_INTERVAL |
+Time between DNS propagation check | +
BLUECAT_PROPAGATION_TIMEOUT |
+Maximum waiting time for DNS propagation | +
BLUECAT_TTL |
+The TTL of the TXT record used for the DNS challenge | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Configuration for Brandit.
+brandit
Here is an example bash command using the Brandit provider:
+BRANDIT_API_KEY=xxxxxxxxxxxxxxxxxxxxx \
+BRANDIT_API_USERNAME=yyyyyyyyyyyyyyyyyyyy \
+lego --email myemail@example.com --dns brandit --domains my.example.org run
+
Environment Variable Name | +Description | +
---|---|
BRANDIT_API_KEY |
+The API key | +
BRANDIT_API_USERNAME |
+The API username | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Environment Variable Name | +Description | +
---|---|
BRANDIT_HTTP_TIMEOUT |
+API request timeout | +
BRANDIT_POLLING_INTERVAL |
+Time between DNS propagation check | +
BRANDIT_PROPAGATION_TIMEOUT |
+Maximum waiting time for DNS propagation | +
BRANDIT_TTL |
+The TTL of the TXT record used for the DNS challenge | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Configuration for Bunny.
+bunny
Here is an example bash command using the Bunny provider:
+BUNNY_API_KEY=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxxxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx \
+lego --email you@example.com --dns bunny --domains my.example.org run
+
Environment Variable Name | +Description | +
---|---|
BUNNY_API_KEY |
+API key | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Environment Variable Name | +Description | +
---|---|
BUNNY_POLLING_INTERVAL |
+Time between DNS propagation check | +
BUNNY_PROPAGATION_TIMEOUT |
+Maximum waiting time for DNS propagation | +
BUNNY_TTL |
+The TTL of the TXT record used for the DNS challenge | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Configuration for Checkdomain.
+checkdomain
Here is an example bash command using the Checkdomain provider:
+CHECKDOMAIN_TOKEN=yoursecrettoken \
+lego --email you@example.com --dns checkdomain --domains my.example.org run
+
Environment Variable Name | +Description | +
---|---|
CHECKDOMAIN_TOKEN |
+API token | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Environment Variable Name | +Description | +
---|---|
CHECKDOMAIN_ENDPOINT |
+API endpoint URL, defaults to https://api.checkdomain.de | +
CHECKDOMAIN_HTTP_TIMEOUT |
+API request timeout, defaults to 30 seconds | +
CHECKDOMAIN_POLLING_INTERVAL |
+Time between DNS propagation check | +
CHECKDOMAIN_PROPAGATION_TIMEOUT |
+Maximum waiting time for DNS propagation | +
CHECKDOMAIN_TTL |
+The TTL of the TXT record used for the DNS challenge | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Configuration for Civo.
+civo
Here is an example bash command using the Civo provider:
+CIVO_TOKEN=xxxxxx \
+lego --email you@example.com --dns civo --domains my.example.org run
+
Environment Variable Name | +Description | +
---|---|
CIVO_TOKEN |
+Authentication token | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Environment Variable Name | +Description | +
---|---|
CIVO_POLLING_INTERVAL |
+Time between DNS propagation check | +
CIVO_PROPAGATION_TIMEOUT |
+Maximum waiting time for DNS propagation | +
CIVO_TTL |
+The TTL of the TXT record used for the DNS challenge | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Configuration for CloudDNS.
+clouddns
Here is an example bash command using the CloudDNS provider:
+CLOUDDNS_CLIENT_ID=bLsdFAks23429841238feb177a572aX \
+CLOUDDNS_EMAIL=you@example.com \
+CLOUDDNS_PASSWORD=b9841238feb177a84330f \
+lego --email you@example.com --dns clouddns --domains my.example.org run
+
Environment Variable Name | +Description | +
---|---|
CLOUDDNS_CLIENT_ID |
+Client ID | +
CLOUDDNS_EMAIL |
+Account email | +
CLOUDDNS_PASSWORD |
+Account password | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Environment Variable Name | +Description | +
---|---|
CLOUDDNS_HTTP_TIMEOUT |
+API request timeout | +
CLOUDDNS_POLLING_INTERVAL |
+Time between DNS propagation check | +
CLOUDDNS_PROPAGATION_TIMEOUT |
+Maximum waiting time for DNS propagation | +
CLOUDDNS_TTL |
+The TTL of the TXT record used for the DNS challenge | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Configuration for Cloudflare.
+cloudflare
Here is an example bash command using the Cloudflare provider:
+CLOUDFLARE_EMAIL=you@example.com \
+CLOUDFLARE_API_KEY=b9841238feb177a84330febba8a83208921177bffe733 \
+lego --email you@example.com --dns cloudflare --domains my.example.org run
+
+# or
+
+CLOUDFLARE_DNS_API_TOKEN=1234567890abcdefghijklmnopqrstuvwxyz \
+lego --email you@example.com --dns cloudflare --domains my.example.org run
+
Environment Variable Name | +Description | +
---|---|
CF_API_EMAIL |
+Account email | +
CF_API_KEY |
+API key | +
CF_DNS_API_TOKEN |
+API token with DNS:Edit permission (since v3.1.0) | +
CF_ZONE_API_TOKEN |
+API token with Zone:Read permission (since v3.1.0) | +
CLOUDFLARE_API_KEY |
+Alias to CF_API_KEY | +
CLOUDFLARE_DNS_API_TOKEN |
+Alias to CF_DNS_API_TOKEN | +
CLOUDFLARE_EMAIL |
+Alias to CF_API_EMAIL | +
CLOUDFLARE_ZONE_API_TOKEN |
+Alias to CF_ZONE_API_TOKEN | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Environment Variable Name | +Description | +
---|---|
CLOUDFLARE_HTTP_TIMEOUT |
+API request timeout | +
CLOUDFLARE_POLLING_INTERVAL |
+Time between DNS propagation check | +
CLOUDFLARE_PROPAGATION_TIMEOUT |
+Maximum waiting time for DNS propagation | +
CLOUDFLARE_TTL |
+The TTL of the TXT record used for the DNS challenge | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
You may use CF_API_EMAIL
and CF_API_KEY
to authenticate, or CF_DNS_API_TOKEN
, or CF_DNS_API_TOKEN
and CF_ZONE_API_TOKEN
.
If using API keys (CF_API_EMAIL
and CF_API_KEY
), the Global API Key needs to be used, not the Origin CA Key.
Please be aware, that this in principle allows Lego to read and change everything related to this account.
+With API tokens (CF_DNS_API_TOKEN
, and optionally CF_ZONE_API_TOKEN
),
+very specific access can be granted to your resources at Cloudflare.
+See this Cloudflare announcement for details.
The main resources Lego cares for are the DNS entries for your Zones. +It also need to resolve a domain name to an internal Zone ID in order to manipulate DNS entries.
+Hence, you should create an API token with the following permissions:
+You also need to scope the access to all your domains for this to work.
+Then pass the API token as CF_DNS_API_TOKEN
to Lego.
Alternatively, if you prefer a more strict set of privileges, +you can split the access tokens:
+CF_ZONE_API_TOKEN
to Lego.CF_DNS_API_TOKEN
to Lego.This “paranoid” setup is mainly interesting for users who manage many zones/domains with a single Cloudflare account. +It follows the principle of least privilege and limits the possible damage, should one of the hosts become compromised.
+Configuration for ClouDNS.
+cloudns
Here is an example bash command using the ClouDNS provider:
+CLOUDNS_AUTH_ID=xxxx \
+CLOUDNS_AUTH_PASSWORD=yyyy \
+lego --email you@example.com --dns cloudns --domains my.example.org run
+
Environment Variable Name | +Description | +
---|---|
CLOUDNS_AUTH_ID |
+The API user ID | +
CLOUDNS_AUTH_PASSWORD |
+The password for API user ID | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Environment Variable Name | +Description | +
---|---|
CLOUDNS_HTTP_TIMEOUT |
+API request timeout | +
CLOUDNS_POLLING_INTERVAL |
+Time between DNS propagation check | +
CLOUDNS_PROPAGATION_TIMEOUT |
+Maximum waiting time for DNS propagation | +
CLOUDNS_SUB_AUTH_ID |
+The API sub user ID | +
CLOUDNS_TTL |
+The TTL of the TXT record used for the DNS challenge | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Configuration for CloudXNS.
+cloudxns
Here is an example bash command using the CloudXNS provider:
+CLOUDXNS_API_KEY=xxxx \
+CLOUDXNS_SECRET_KEY=yyyy \
+lego --email you@example.com --dns cloudxns --domains my.example.org run
+
Environment Variable Name | +Description | +
---|---|
CLOUDXNS_API_KEY |
+The API key | +
CLOUDXNS_SECRET_KEY |
+The API secret key | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Environment Variable Name | +Description | +
---|---|
CLOUDXNS_HTTP_TIMEOUT |
+API request timeout | +
CLOUDXNS_POLLING_INTERVAL |
+Time between DNS propagation check | +
CLOUDXNS_PROPAGATION_TIMEOUT |
+Maximum waiting time for DNS propagation | +
CLOUDXNS_TTL |
+The TTL of the TXT record used for the DNS challenge | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Configuration for ConoHa.
+conoha
Here is an example bash command using the ConoHa provider:
+CONOHA_TENANT_ID=487727e3921d44e3bfe7ebb337bf085e \
+CONOHA_API_USERNAME=xxxx \
+CONOHA_API_PASSWORD=yyyy \
+lego --email you@example.com --dns conoha --domains my.example.org run
+
Environment Variable Name | +Description | +
---|---|
CONOHA_API_PASSWORD |
+The API password | +
CONOHA_API_USERNAME |
+The API username | +
CONOHA_TENANT_ID |
+Tenant ID | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Environment Variable Name | +Description | +
---|---|
CONOHA_HTTP_TIMEOUT |
+API request timeout | +
CONOHA_POLLING_INTERVAL |
+Time between DNS propagation check | +
CONOHA_PROPAGATION_TIMEOUT |
+Maximum waiting time for DNS propagation | +
CONOHA_REGION |
+The region | +
CONOHA_TTL |
+The TTL of the TXT record used for the DNS challenge | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Configuration for Constellix.
+constellix
Here is an example bash command using the Constellix provider:
+CONSTELLIX_API_KEY=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx \
+CONSTELLIX_SECRET_KEY=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx \
+lego --email you@example.com --dns constellix --domains my.example.org run
+
Environment Variable Name | +Description | +
---|---|
CONSTELLIX_API_KEY |
+User API key | +
CONSTELLIX_SECRET_KEY |
+User secret key | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Environment Variable Name | +Description | +
---|---|
CONSTELLIX_HTTP_TIMEOUT |
+API request timeout | +
CONSTELLIX_POLLING_INTERVAL |
+Time between DNS propagation check | +
CONSTELLIX_PROPAGATION_TIMEOUT |
+Maximum waiting time for DNS propagation | +
CONSTELLIX_TTL |
+The TTL of the TXT record used for the DNS challenge | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Configuration for Derak Cloud.
+derak
Here is an example bash command using the Derak Cloud provider:
+DERAK_API_KEY="xxxxxxxxxxxxxxxxxxxxx" \
+lego --email myemail@example.com --dns derak --domains my.example.org run
+
Environment Variable Name | +Description | +
---|---|
DERAK_API_KEY |
+The API key | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Environment Variable Name | +Description | +
---|---|
DERAK_HTTP_TIMEOUT |
+API request timeout | +
DERAK_POLLING_INTERVAL |
+Time between DNS propagation check | +
DERAK_PROPAGATION_TIMEOUT |
+Maximum waiting time for DNS propagation | +
DERAK_TTL |
+The TTL of the TXT record used for the DNS challenge | +
DERAK_WEBSITE_ID |
+Force the zone/website ID | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Configuration for deSEC.io.
+desec
Here is an example bash command using the deSEC.io provider:
+DESEC_TOKEN=x-xxxxxxxxxxxxxxxxxxxxxxxxxx \
+lego --email you@example.com --dns desec --domains my.example.org run
+
Environment Variable Name | +Description | +
---|---|
DESEC_TOKEN |
+Domain token | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Environment Variable Name | +Description | +
---|---|
DESEC_HTTP_TIMEOUT |
+API request timeout | +
DESEC_POLLING_INTERVAL |
+Time between DNS propagation check | +
DESEC_PROPAGATION_TIMEOUT |
+Maximum waiting time for DNS propagation | +
DESEC_TTL |
+The TTL of the TXT record used for the DNS challenge | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Configuration for Designate DNSaaS for Openstack.
+designate
Here is an example bash command using the Designate DNSaaS for Openstack provider:
+# With a `clouds.yaml`
+OS_CLOUD=my_openstack \
+lego --email you@example.com --dns designate --domains my.example.org run
+
+# or
+
+OS_AUTH_URL=https://openstack.example.org \
+OS_REGION_NAME=RegionOne \
+OS_PROJECT_ID=23d4522a987d4ab529f722a007c27846
+OS_USERNAME=myuser \
+OS_PASSWORD=passw0rd \
+lego --email you@example.com --dns designate --domains my.example.org run
+
+# or
+
+OS_AUTH_URL=https://openstack.example.org \
+OS_REGION_NAME=RegionOne \
+OS_AUTH_TYPE=v3applicationcredential \
+OS_APPLICATION_CREDENTIAL_ID=imn74uq0or7dyzz20dwo1ytls4me8dry \
+OS_APPLICATION_CREDENTIAL_SECRET=68FuSPSdQqkFQYH5X1OoriEIJOwyLtQ8QSqXZOc9XxFK1A9tzZT6He2PfPw0OMja \
+lego --email you@example.com --dns designate --domains my.example.org run
+
Environment Variable Name | +Description | +
---|---|
OS_APPLICATION_CREDENTIAL_ID |
+Application credential ID | +
OS_APPLICATION_CREDENTIAL_NAME |
+Application credential name | +
OS_APPLICATION_CREDENTIAL_SECRET |
+Application credential secret | +
OS_AUTH_URL |
+Identity endpoint URL | +
OS_PASSWORD |
+Password | +
OS_PROJECT_NAME |
+Project name | +
OS_REGION_NAME |
+Region name | +
OS_USERNAME |
+Username | +
OS_USER_ID |
+User ID | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Environment Variable Name | +Description | +
---|---|
DESIGNATE_POLLING_INTERVAL |
+Time between DNS propagation check | +
DESIGNATE_PROPAGATION_TIMEOUT |
+Maximum waiting time for DNS propagation | +
DESIGNATE_TTL |
+The TTL of the TXT record used for the DNS challenge | +
OS_PROJECT_ID |
+Project ID | +
OS_TENANT_NAME |
+Tenant name (deprecated see OS_PROJECT_NAME and OS_PROJECT_ID) | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
There are three main ways of authenticating with Designate:
+OS_CLOUD
environment variable and a clouds.yaml
file.OS_USERNAME
, OS_PASSWORD
and OS_PROJECT_NAME
environment variables.OS_APPLICATION_CREDENTIAL_*
and OS_USER_ID
environment variables.For the username/password and application methods, the OS_AUTH_URL
and OS_REGION_NAME
environment variables are required.
For more information, you can read about the different methods of authentication with OpenStack in the Keystone’s documentation and the gophercloud documentation:
+ +Configuration for Digital Ocean.
+digitalocean
Here is an example bash command using the Digital Ocean provider:
+DO_AUTH_TOKEN=xxxxxx \
+lego --email you@example.com --dns digitalocean --domains my.example.org run
+
Environment Variable Name | +Description | +
---|---|
DO_AUTH_TOKEN |
+Authentication token | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Environment Variable Name | +Description | +
---|---|
DO_API_URL |
+The URL of the API | +
DO_HTTP_TIMEOUT |
+API request timeout | +
DO_POLLING_INTERVAL |
+Time between DNS propagation check | +
DO_PROPAGATION_TIMEOUT |
+Maximum waiting time for DNS propagation | +
DO_TTL |
+The TTL of the TXT record used for the DNS challenge | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Configuration for dnsHome.de.
+dnshomede
Here is an example bash command using the dnsHome.de provider:
+DNSHOMEDE_CREDENTIALS=sub.example.org:password \
+lego --email you@example.com --dns dnshomede --domains example.org --domains '*.example.org' run
+
+DNSHOMEDE_CREDENTIALS=my.example.org:password1,demo.example.org:password2 \
+lego --email you@example.com --dns dnshomede --domains my.example.org --domains demo.example.org
+
Environment Variable Name | +Description | +
---|---|
DNSHOMEDE_CREDENTIALS |
+Comma-separated list of domain:password credential pairs | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Configuration for DNSimple.
+dnsimple
Here is an example bash command using the DNSimple provider:
+DNSIMPLE_OAUTH_TOKEN=1234567890abcdefghijklmnopqrstuvwxyz \
+lego --email you@example.com --dns dnsimple --domains my.example.org run
+
Environment Variable Name | +Description | +
---|---|
DNSIMPLE_OAUTH_TOKEN |
+OAuth token | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Environment Variable Name | +Description | +
---|---|
DNSIMPLE_BASE_URL |
+API endpoint URL | +
DNSIMPLE_POLLING_INTERVAL |
+Time between DNS propagation check | +
DNSIMPLE_PROPAGATION_TIMEOUT |
+Maximum waiting time for DNS propagation | +
DNSIMPLE_TTL |
+The TTL of the TXT record used for the DNS challenge | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
DNSIMPLE_BASE_URL
is optional and must be set to production (https://api.dnsimple.com).
+if DNSIMPLE_BASE_URL
is not defined or empty, the production URL is used by default.
While you can manage DNS records in the DNSimple Sandbox environment, +DNS records will not resolve and you will not be able to satisfy the ACME DNS challenge.
+To authenticate you need to provide a valid API token. +HTTP Basic Authentication is intentionally not supported.
+You can generate a new API token from your account page. +Only Account API tokens are supported, if you try to use an User API token you will receive an error message.
+Configuration for DNS Made Easy.
+dnsmadeeasy
Here is an example bash command using the DNS Made Easy provider:
+DNSMADEEASY_API_KEY=xxxxxx \
+DNSMADEEASY_API_SECRET=yyyyy \
+lego --email you@example.com --dns dnsmadeeasy --domains my.example.org run
+
Environment Variable Name | +Description | +
---|---|
DNSMADEEASY_API_KEY |
+The API key | +
DNSMADEEASY_API_SECRET |
+The API Secret key | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Environment Variable Name | +Description | +
---|---|
DNSMADEEASY_HTTP_TIMEOUT |
+API request timeout | +
DNSMADEEASY_POLLING_INTERVAL |
+Time between DNS propagation check | +
DNSMADEEASY_PROPAGATION_TIMEOUT |
+Maximum waiting time for DNS propagation | +
DNSMADEEASY_SANDBOX |
+Activate the sandbox (boolean) | +
DNSMADEEASY_TTL |
+The TTL of the TXT record used for the DNS challenge | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Use the Tencent Cloud provider instead.
+dnspod
Here is an example bash command using the DNSPod (deprecated) provider:
+DNSPOD_API_KEY=xxxxxx \
+lego --email you@example.com --dns dnspod --domains my.example.org run
+
Environment Variable Name | +Description | +
---|---|
DNSPOD_API_KEY |
+The user token | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Environment Variable Name | +Description | +
---|---|
DNSPOD_HTTP_TIMEOUT |
+API request timeout | +
DNSPOD_POLLING_INTERVAL |
+Time between DNS propagation check | +
DNSPOD_PROPAGATION_TIMEOUT |
+Maximum waiting time for DNS propagation | +
DNSPOD_TTL |
+The TTL of the TXT record used for the DNS challenge | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Configuration for Domain Offensive (do.de).
+dode
Here is an example bash command using the Domain Offensive (do.de) provider:
+DODE_TOKEN=xxxxxx \
+lego --email you@example.com --dns dode --domains my.example.org run
+
Environment Variable Name | +Description | +
---|---|
DODE_TOKEN |
+API token | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Environment Variable Name | +Description | +
---|---|
DODE_HTTP_TIMEOUT |
+API request timeout | +
DODE_POLLING_INTERVAL |
+Time between DNS propagation check | +
DODE_PROPAGATION_TIMEOUT |
+Maximum waiting time for DNS propagation | +
DODE_SEQUENCE_INTERVAL |
+Time between sequential requests | +
DODE_TTL |
+The TTL of the TXT record used for the DNS challenge | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Configuration for Domeneshop.
+domeneshop
Here is an example bash command using the Domeneshop provider:
+DOMENESHOP_API_TOKEN=<token> \
+DOMENESHOP_API_SECRET=<secret> \
+lego --email example@example.com --dns domeneshop --domains example.com run
+
Environment Variable Name | +Description | +
---|---|
DOMENESHOP_API_SECRET |
+API secret | +
DOMENESHOP_API_TOKEN |
+API token | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Environment Variable Name | +Description | +
---|---|
DOMENESHOP_HTTP_TIMEOUT |
+API request timeout | +
DOMENESHOP_POLLING_INTERVAL |
+Time between DNS propagation check | +
DOMENESHOP_PROPAGATION_TIMEOUT |
+Maximum waiting time for DNS propagation | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Visit the following page for information on how to create API credentials with Domeneshop:
+https://api.domeneshop.no/docs/#section/Authentication
+Configuration for DreamHost.
+dreamhost
Here is an example bash command using the DreamHost provider:
+DREAMHOST_API_KEY="YOURAPIKEY" \
+lego --email you@example.com --dns dreamhost --domains my.example.org run
+
Environment Variable Name | +Description | +
---|---|
DREAMHOST_API_KEY |
+The API key | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Environment Variable Name | +Description | +
---|---|
DREAMHOST_HTTP_TIMEOUT |
+API request timeout | +
DREAMHOST_POLLING_INTERVAL |
+Time between DNS propagation check | +
DREAMHOST_PROPAGATION_TIMEOUT |
+Maximum waiting time for DNS propagation | +
DREAMHOST_TTL |
+The TTL of the TXT record used for the DNS challenge | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Configuration for Duck DNS.
+duckdns
Here is an example bash command using the Duck DNS provider:
+DUCKDNS_TOKEN=xxxxxx \
+lego --email you@example.com --dns duckdns --domains my.example.org run
+
Environment Variable Name | +Description | +
---|---|
DUCKDNS_TOKEN |
+Account token | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Environment Variable Name | +Description | +
---|---|
DUCKDNS_HTTP_TIMEOUT |
+API request timeout | +
DUCKDNS_POLLING_INTERVAL |
+Time between DNS propagation check | +
DUCKDNS_PROPAGATION_TIMEOUT |
+Maximum waiting time for DNS propagation | +
DUCKDNS_SEQUENCE_INTERVAL |
+Time between sequential requests | +
DUCKDNS_TTL |
+The TTL of the TXT record used for the DNS challenge | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Configuration for Dyn.
+dyn
Here is an example bash command using the Dyn provider:
+DYN_CUSTOMER_NAME=xxxxxx \
+DYN_USER_NAME=yyyyy \
+DYN_PASSWORD=zzzz \
+lego --email you@example.com --dns dyn --domains my.example.org run
+
Environment Variable Name | +Description | +
---|---|
DYN_CUSTOMER_NAME |
+Customer name | +
DYN_PASSWORD |
+Password | +
DYN_USER_NAME |
+User name | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Environment Variable Name | +Description | +
---|---|
DYN_HTTP_TIMEOUT |
+API request timeout | +
DYN_POLLING_INTERVAL |
+Time between DNS propagation check | +
DYN_PROPAGATION_TIMEOUT |
+Maximum waiting time for DNS propagation | +
DYN_TTL |
+The TTL of the TXT record used for the DNS challenge | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Configuration for Dynu.
+dynu
Here is an example bash command using the Dynu provider:
+DYNU_API_KEY=1234567890abcdefghijklmnopqrstuvwxyz \
+lego --email you@example.com --dns dynu --domains my.example.org run
+
Environment Variable Name | +Description | +
---|---|
DYNU_API_KEY |
+API key | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Environment Variable Name | +Description | +
---|---|
DYNU_HTTP_TIMEOUT |
+API request timeout | +
DYNU_POLLING_INTERVAL |
+Time between DNS propagation check | +
DYNU_PROPAGATION_TIMEOUT |
+Maximum waiting time for DNS propagation | +
DYNU_TTL |
+The TTL of the TXT record used for the DNS challenge | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Configuration for EasyDNS.
+easydns
Here is an example bash command using the EasyDNS provider:
+EASYDNS_TOKEN=<your token> \
+EASYDNS_KEY=<your key> \
+lego --email you@example.com --dns easydns --domains my.example.org run
+
Environment Variable Name | +Description | +
---|---|
EASYDNS_KEY |
+API Key | +
EASYDNS_TOKEN |
+API Token | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Environment Variable Name | +Description | +
---|---|
EASYDNS_ENDPOINT |
+The endpoint URL of the API Server | +
EASYDNS_HTTP_TIMEOUT |
+API request timeout | +
EASYDNS_POLLING_INTERVAL |
+Time between DNS propagation check | +
EASYDNS_PROPAGATION_TIMEOUT |
+Maximum waiting time for DNS propagation | +
EASYDNS_SEQUENCE_INTERVAL |
+Time between sequential requests | +
EASYDNS_TTL |
+The TTL of the TXT record used for the DNS challenge | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
To test with the sandbox environment set EASYDNS_ENDPOINT=https://sandbox.rest.easydns.net
Akamai edgedns supersedes FastDNS; implementing a DNS provider for solving the DNS-01 challenge using Akamai EdgeDNS
+edgedns
Here is an example bash command using the Akamai EdgeDNS provider:
+AKAMAI_CLIENT_SECRET=abcdefghijklmnopqrstuvwxyz1234567890ABCDEFG= \
+AKAMAI_CLIENT_TOKEN=akab-mnbvcxzlkjhgfdsapoiuytrewq1234567 \
+AKAMAI_HOST=akab-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.luna.akamaiapis.net \
+AKAMAI_ACCESS_TOKEN=akab-1234567890qwerty-asdfghjklzxcvtnu \
+lego --email you@example.com --dns edgedns --domains my.example.org run
+
Environment Variable Name | +Description | +
---|---|
AKAMAI_ACCESS_TOKEN |
+Access token, managed by the Akamai EdgeGrid client | +
AKAMAI_CLIENT_SECRET |
+Client secret, managed by the Akamai EdgeGrid client | +
AKAMAI_CLIENT_TOKEN |
+Client token, managed by the Akamai EdgeGrid client | +
AKAMAI_EDGERC |
+Path to the .edgerc file, managed by the Akamai EdgeGrid client | +
AKAMAI_EDGERC_SECTION |
+Configuration section, managed by the Akamai EdgeGrid client | +
AKAMAI_HOST |
+API host, managed by the Akamai EdgeGrid client | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Environment Variable Name | +Description | +
---|---|
AKAMAI_POLLING_INTERVAL |
+Time between DNS propagation check. Default: 15 seconds | +
AKAMAI_PROPAGATION_TIMEOUT |
+Maximum waiting time for DNS propagation. Default: 3 minutes | +
AKAMAI_TTL |
+The TTL of the TXT record used for the DNS challenge | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Akamai credentials are automatically detected in the following locations and prioritized in the following order:
+{SECTION}
is specified using AKAMAI_EDGERC_SECTION
):AKAMAI_{SECTION}_HOST
AKAMAI_{SECTION}_ACCESS_TOKEN
AKAMAI_{SECTION}_CLIENT_TOKEN
AKAMAI_{SECTION}_CLIENT_SECRET
AKAMAI_EDGERC_SECTION
is not defined or is set to default
, environment variables:AKAMAI_HOST
AKAMAI_ACCESS_TOKEN
AKAMAI_CLIENT_TOKEN
AKAMAI_CLIENT_SECRET
.edgerc
file located at AKAMAI_EDGERC
~/.edgerc
, sections can be specified using AKAMAI_EDGERC_SECTION
AKAMAI_HOST
AKAMAI_ACCESS_TOKEN
AKAMAI_CLIENT_TOKEN
AKAMAI_CLIENT_SECRET
See also:
+ +Configuration for Efficient IP.
+efficientip
Here is an example bash command using the Efficient IP provider:
+EFFICIENTIP_USERNAME="user" \
+EFFICIENTIP_PASSWORD="secret" \
+EFFICIENTIP_HOSTNAME="ipam.example.org" \
+EFFICIENTIP_DNS_NAME="dns.smart" \
+lego --email you@example.com --dns efficientip --domains my.example.org run
+
Environment Variable Name | +Description | +
---|---|
EFFICIENTIP_DNS_NAME |
+DNS name (ex: dns.smart) | +
EFFICIENTIP_HOSTNAME |
+Hostname (ex: foo.example.com) | +
EFFICIENTIP_PASSWORD |
+Password | +
EFFICIENTIP_USERNAME |
+Username | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Environment Variable Name | +Description | +
---|---|
EFFICIENTIP_HTTP_TIMEOUT |
+API request timeout | +
EFFICIENTIP_POLLING_INTERVAL |
+Time between DNS propagation check | +
EFFICIENTIP_PROPAGATION_TIMEOUT |
+Maximum waiting time for DNS propagation | +
EFFICIENTIP_TTL |
+The TTL of the TXT record used for the DNS challenge | +
EFFICIENTIP_VIEW_NAME |
+View name (ex: external) | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Configuration for Epik.
+epik
Here is an example bash command using the Epik provider:
+EPIK_SIGNATURE=xxxxxxxxxxxxxxxxxxxxxxxxxx \
+lego --email you@example.com --dns epik --domains my.example.org run
+
Environment Variable Name | +Description | +
---|---|
EPIK_SIGNATURE |
+Epik API signature (https://registrar.epik.com/account/api-settings/) | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Environment Variable Name | +Description | +
---|---|
EPIK_HTTP_TIMEOUT |
+API request timeout | +
EPIK_POLLING_INTERVAL |
+Time between DNS propagation check | +
EPIK_PROPAGATION_TIMEOUT |
+Maximum waiting time for DNS propagation | +
EPIK_TTL |
+The TTL of the TXT record used for the DNS challenge | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Solving the DNS-01 challenge using an external program.
+exec
Here is an example bash command using the External program provider:
+EXEC_PATH=/the/path/to/myscript.sh \
+lego --email you@example.com --dns exec --domains my.example.org run
+
Environment Variable Name | +Description | +
---|---|
EXEC_MODE |
+RAW , none |
+
EXEC_PATH |
+The path of the the external program. | +
Environment Variable Name | +Description | +
---|---|
EXEC_POLLING_INTERVAL |
+Time between DNS propagation check. | +
EXEC_PROPAGATION_TIMEOUT |
+Maximum waiting time for DNS propagation. | +
EXEC_SEQUENCE_INTERVAL |
+Time between sequential requests. | +
The file name of the external program is specified in the environment variable EXEC_PATH
.
When it is run by lego, three command-line parameters are passed to it: +The action (“present” or “cleanup”), the fully-qualified domain name and the value for the record.
+For example, requesting a certificate for the domain ‘my.example.org’ can be achieved by calling lego as follows:
+EXEC_PATH=./update-dns.sh \
+ lego --email you@example.com \
+ --dns exec \
+ --domains my.example.org run
+
It will then call the program ‘./update-dns.sh’ with like this:
+./update-dns.sh "present" "_acme-challenge.my.example.org." "MsijOYZxqyjGnFGwhjrhfg-Xgbl5r68WPda0J9EgqqI"
+
The program then needs to make sure the record is inserted. +When it returns an error via a non-zero exit code, lego aborts.
+When the record is to be removed again,
+the program is called with the first command-line parameter set to cleanup
instead of present
.
If you want to use the raw domain, token, and keyAuth values with your program, you can set EXEC_MODE=RAW
:
EXEC_MODE=RAW \
+EXEC_PATH=./update-dns.sh \
+ lego --email you@example.com \
+ --dns exec \
+ --domains my.example.org run
+
It will then call the program ./update-dns.sh
like this:
./update-dns.sh "present" "my.example.org." "--" "some-token" "KxAy-J3NwUmg9ZQuM-gP_Mq1nStaYSaP9tYQs5_-YsE.ksT-qywTd8058G-SHHWA3RAN72Pr0yWtPYmmY5UBpQ8"
+
The --
is because the token MAY start with a -
, and the called program may try and interpret a -
as indicating a flag.
+In the case of urfave, which is commonly used,
+you can use the --
delimiter to specify the start of positional arguments, and handle such a string safely.
Mode | +Command | +
---|---|
default | +myprogram present -- <FQDN> <record> |
+
RAW |
+myprogram present -- <domain> <token> <key_auth> |
+
Mode | +Command | +
---|---|
default | +myprogram cleanup -- <FQDN> <record> |
+
RAW |
+myprogram cleanup -- <domain> <token> <key_auth> |
+
Configuration for Exoscale.
+exoscale
Here is an example bash command using the Exoscale provider:
+EXOSCALE_API_KEY=abcdefghijklmnopqrstuvwx \
+EXOSCALE_API_SECRET=xxxxxxx \
+lego --email you@example.com --dns exoscale --domains my.example.org run
+
Environment Variable Name | +Description | +
---|---|
EXOSCALE_API_KEY |
+API key | +
EXOSCALE_API_SECRET |
+API secret | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Environment Variable Name | +Description | +
---|---|
EXOSCALE_API_ZONE |
+API zone | +
EXOSCALE_ENDPOINT |
+API endpoint URL | +
EXOSCALE_HTTP_TIMEOUT |
+API request timeout | +
EXOSCALE_POLLING_INTERVAL |
+Time between DNS propagation check | +
EXOSCALE_PROPAGATION_TIMEOUT |
+Maximum waiting time for DNS propagation | +
EXOSCALE_TTL |
+The TTL of the TXT record used for the DNS challenge | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Configuration for freemyip.com.
+freemyip
Here is an example bash command using the freemyip.com provider:
+FREEMYIP_TOKEN=xxxxxx \
+lego --email you@example.com --dns freemyip --domains my.example.org run
+
Environment Variable Name | +Description | +
---|---|
FREEMYIP_TOKEN |
+Account token | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Environment Variable Name | +Description | +
---|---|
FREEMYIP_HTTP_TIMEOUT |
+API request timeout | +
FREEMYIP_POLLING_INTERVAL |
+Time between DNS propagation check | +
FREEMYIP_PROPAGATION_TIMEOUT |
+Maximum waiting time for DNS propagation | +
FREEMYIP_SEQUENCE_INTERVAL |
+Time between sequential requests | +
FREEMYIP_TTL |
+The TTL of the TXT record used for the DNS challenge | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Configuration for Gandi.
+gandi
Here is an example bash command using the Gandi provider:
+GANDI_API_KEY=abcdefghijklmnopqrstuvwx \
+lego --email you@example.com --dns gandi --domains my.example.org run
+
Environment Variable Name | +Description | +
---|---|
GANDI_API_KEY |
+API key | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Environment Variable Name | +Description | +
---|---|
GANDI_HTTP_TIMEOUT |
+API request timeout | +
GANDI_POLLING_INTERVAL |
+Time between DNS propagation check | +
GANDI_PROPAGATION_TIMEOUT |
+Maximum waiting time for DNS propagation | +
GANDI_TTL |
+The TTL of the TXT record used for the DNS challenge | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Configuration for Gandi Live DNS (v5).
+gandiv5
Here is an example bash command using the Gandi Live DNS (v5) provider:
+GANDIV5_API_KEY=abcdefghijklmnopqrstuvwx \
+lego --email you@example.com --dns gandiv5 --domains my.example.org run
+
Environment Variable Name | +Description | +
---|---|
GANDIV5_API_KEY |
+API key | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Environment Variable Name | +Description | +
---|---|
GANDIV5_HTTP_TIMEOUT |
+API request timeout | +
GANDIV5_POLLING_INTERVAL |
+Time between DNS propagation check | +
GANDIV5_PROPAGATION_TIMEOUT |
+Maximum waiting time for DNS propagation | +
GANDIV5_TTL |
+The TTL of the TXT record used for the DNS challenge | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Configuration for Google Cloud.
+gcloud
Here is an example bash command using the Google Cloud provider:
+GCE_PROJECT="gc-project-id" GCE_SERVICE_ACCOUNT_FILE="/path/to/svc/account/file.json" lego \
+ --email="abc@email.com" \
+ --domains="example.com" \
+ --dns="gcloud" \
+ --path="${HOME}/.lego" \
+ run
+
Environment Variable Name | +Description | +
---|---|
Application Default Credentials |
+Documentation | +
GCE_PROJECT |
+Project name (by default, the project name is auto-detected by using the metadata service) | +
GCE_SERVICE_ACCOUNT |
+Account | +
GCE_SERVICE_ACCOUNT_FILE |
+Account file path | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Environment Variable Name | +Description | +
---|---|
GCE_ALLOW_PRIVATE_ZONE |
+Allows requested domain to be in private DNS zone, works only with a private ACME server (by default: false) | +
GCE_POLLING_INTERVAL |
+Time between DNS propagation check | +
GCE_PROPAGATION_TIMEOUT |
+Maximum waiting time for DNS propagation | +
GCE_TTL |
+The TTL of the TXT record used for the DNS challenge | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Configuration for G-Core Labs.
+gcore
Here is an example bash command using the G-Core Labs provider:
+GCORE_PERMANENT_API_TOKEN=xxxxx \
+lego --email you@example.com --dns gcore --domains my.example.org run
+
Environment Variable Name | +Description | +
---|---|
GCORE_PERMANENT_API_TOKEN |
+Permanent API tokene (https://gcorelabs.com/blog/permanent-api-token-explained/) | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Environment Variable Name | +Description | +
---|---|
GCORE_HTTP_TIMEOUT |
+API request timeout | +
GCORE_POLLING_INTERVAL |
+Time between DNS propagation check | +
GCORE_PROPAGATION_TIMEOUT |
+Maximum waiting time for DNS propagation | +
GCORE_TTL |
+The TTL of the TXT record used for the DNS challenge | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Configuration for Glesys.
+glesys
Here is an example bash command using the Glesys provider:
+GLESYS_API_USER=xxxxx \
+GLESYS_API_KEY=yyyyy \
+lego --email you@example.com --dns glesys --domains my.example.org run
+
Environment Variable Name | +Description | +
---|---|
GLESYS_API_KEY |
+API key | +
GLESYS_API_USER |
+API user | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Environment Variable Name | +Description | +
---|---|
GLESYS_HTTP_TIMEOUT |
+API request timeout | +
GLESYS_POLLING_INTERVAL |
+Time between DNS propagation check | +
GLESYS_PROPAGATION_TIMEOUT |
+Maximum waiting time for DNS propagation | +
GLESYS_TTL |
+The TTL of the TXT record used for the DNS challenge | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Configuration for Go Daddy.
+godaddy
Here is an example bash command using the Go Daddy provider:
+GODADDY_API_KEY=xxxxxxxx \
+GODADDY_API_SECRET=yyyyyyyy \
+lego --email you@example.com --dns godaddy --domains my.example.org run
+
Environment Variable Name | +Description | +
---|---|
GODADDY_API_KEY |
+API key | +
GODADDY_API_SECRET |
+API secret | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Environment Variable Name | +Description | +
---|---|
GODADDY_HTTP_TIMEOUT |
+API request timeout | +
GODADDY_POLLING_INTERVAL |
+Time between DNS propagation check | +
GODADDY_PROPAGATION_TIMEOUT |
+Maximum waiting time for DNS propagation | +
GODADDY_TTL |
+The TTL of the TXT record used for the DNS challenge | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Configuration for Google Domains.
+googledomains
Here is an example bash command using the Google Domains provider:
+GOOGLE_DOMAINS_ACCESS_TOKEN=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx \
+lego --email you@example.com --dns googledomains --domains my.example.org run
+
Environment Variable Name | +Description | +
---|---|
GOOGLE_DOMAINS_ACCESS_TOKEN |
+Access token | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Environment Variable Name | +Description | +
---|---|
GOOGLE_DOMAINS_HTTP_TIMEOUT |
+API request timeout | +
GOOGLE_DOMAINS_POLLING_INTERVAL |
+Time between DNS propagation check | +
GOOGLE_DOMAINS_PROPAGATION_TIMEOUT |
+Maximum waiting time for DNS propagation | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Configuration for Hetzner.
+hetzner
Here is an example bash command using the Hetzner provider:
+HETZNER_API_KEY=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx \
+lego --email you@example.com --dns hetzner --domains my.example.org run
+
Environment Variable Name | +Description | +
---|---|
HETZNER_API_KEY |
+API key | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Environment Variable Name | +Description | +
---|---|
HETZNER_HTTP_TIMEOUT |
+API request timeout | +
HETZNER_POLLING_INTERVAL |
+Time between DNS propagation check | +
HETZNER_PROPAGATION_TIMEOUT |
+Maximum waiting time for DNS propagation | +
HETZNER_TTL |
+The TTL of the TXT record used for the DNS challenge | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Configuration for Hosting.de.
+hostingde
Here is an example bash command using the Hosting.de provider:
+HOSTINGDE_API_KEY=xxxxxxxx \
+lego --email you@example.com --dns hostingde --domains my.example.org run
+
Environment Variable Name | +Description | +
---|---|
HOSTINGDE_API_KEY |
+API key | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Environment Variable Name | +Description | +
---|---|
HOSTINGDE_HTTP_TIMEOUT |
+API request timeout | +
HOSTINGDE_POLLING_INTERVAL |
+Time between DNS propagation check | +
HOSTINGDE_PROPAGATION_TIMEOUT |
+Maximum waiting time for DNS propagation | +
HOSTINGDE_TTL |
+The TTL of the TXT record used for the DNS challenge | +
HOSTINGDE_ZONE_NAME |
+Zone name in ACE format | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Configuration for Hosttech.
+hosttech
Here is an example bash command using the Hosttech provider:
+HOSTTECH_API_KEY=xxxxxxxxxxxxxxxxxxxxxxxxxx \
+lego --email you@example.com --dns hosttech --domains my.example.org run
+
Environment Variable Name | +Description | +
---|---|
HOSTTECH_API_KEY |
+API login | +
HOSTTECH_PASSWORD |
+API password | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Environment Variable Name | +Description | +
---|---|
HOSTTECH_HTTP_TIMEOUT |
+API request timeout | +
HOSTTECH_POLLING_INTERVAL |
+Time between DNS propagation check | +
HOSTTECH_PROPAGATION_TIMEOUT |
+Maximum waiting time for DNS propagation | +
HOSTTECH_TTL |
+The TTL of the TXT record used for the DNS challenge | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Configuration for HTTP request.
+httpreq
Here is an example bash command using the HTTP request provider:
+HTTPREQ_ENDPOINT=http://my.server.com:9090 \
+lego --email you@example.com --dns httpreq --domains my.example.org run
+
Environment Variable Name | +Description | +
---|---|
HTTPREQ_ENDPOINT |
+The URL of the server | +
HTTPREQ_MODE |
+RAW , none |
+
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Environment Variable Name | +Description | +
---|---|
HTTPREQ_HTTP_TIMEOUT |
+API request timeout | +
HTTPREQ_PASSWORD |
+Basic authentication password | +
HTTPREQ_POLLING_INTERVAL |
+Time between DNS propagation check | +
HTTPREQ_PROPAGATION_TIMEOUT |
+Maximum waiting time for DNS propagation | +
HTTPREQ_USERNAME |
+Basic authentication username | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
The server must provide:
+POST
/present
POST
/cleanup
The URL of the server must be define by HTTPREQ_ENDPOINT
.
There are 2 modes (HTTPREQ_MODE
):
{
+ "fqdn": "_acme-challenge.domain.",
+ "value": "LHDhK3oGRvkiefQnx7OOczTY5Tic_xZ6HcMOc_gmtoM"
+}
+
RAW
{
+ "domain": "domain",
+ "token": "token",
+ "keyAuth": "key"
+}
+
Basic authentication (optional) can be set with some environment variables:
+HTTPREQ_USERNAME
and HTTPREQ_PASSWORD
Configuration for Hurricane Electric DNS.
+hurricane
Here is an example bash command using the Hurricane Electric DNS provider:
+HURRICANE_TOKENS=example.org:token \
+lego --email you@example.com --dns hurricane --domains example.org --domains '*.example.org' run
+
+HURRICANE_TOKENS=my.example.org:token1,demo.example.org:token2 \
+lego --email you@example.com --dns hurricane --domains my.example.org --domains demo.example.org
+
Environment Variable Name | +Description | +
---|---|
HURRICANE_TOKENS |
+TXT record names and tokens | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Before using lego to request a certificate for a given domain or wildcard (such as my.example.org
or *.my.example.org
),
+create a TXT record named _acme-challenge.my.example.org
, and enable dynamic updates on it.
+Generate a token for each URL with Hurricane Electric’s UI, and copy it down.
+Stick to alphanumeric tokens for greatest reliability.
To authenticate with the Hurricane Electric API,
+add each record name/token pair you want to update to the HURRICANE_TOKENS
environment variable, as shown in the examples.
+Record names (without the _acme-challenge.
component) and their tokens are separated with colons,
+while the credential pairs are concatenated into a comma-separated list, like so:
HURRICANE_TOKENS=my.example.org:token1,demo.example.org:token2
+
If you are issuing both a wildcard certificate and a standard certificate for a given subdomain, +you should not have repeat entries for that name, as both will use the same credential.
+HURRICANE_TOKENS=example.org:token
+
Configuration for HyperOne.
+hyperone
Here is an example bash command using the HyperOne provider:
+lego --email you@example.com --dns hyperone --domains my.example.org run
+
Environment Variable Name | +Description | +
---|---|
HYPERONE_API_URL |
+Allows to pass custom API Endpoint to be used in the challenge (default https://api.hyperone.com/v2) | +
HYPERONE_LOCATION_ID |
+Specifies location (region) to be used in API calls. (default pl-waw-1) | +
HYPERONE_PASSPORT_LOCATION |
+Allows to pass custom passport file location (default ~/.h1/passport.json) | +
HYPERONE_POLLING_INTERVAL |
+Time between DNS propagation check | +
HYPERONE_PROPAGATION_TIMEOUT |
+Maximum waiting time for DNS propagation | +
HYPERONE_TTL |
+The TTL of the TXT record used for the DNS challenge | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Default configuration does not require any additional environment variables,
+just a passport file in ~/.h1/passport.json
location.
To use this application you have to generate passport file for sa
:
h1 iam project sa credential generate --name my-passport --project <project ID> --sa <sa ID> --passport-output-file ~/.h1/passport.json
+
The application requires following permissions:
+dns/zone/list
dns/zone.recordset/list
dns/zone.recordset/create
dns/zone.recordset/delete
dns/zone.record/create
dns/zone.record/list
dns/zone.record/delete
All required permissions are available via platform role tool.lego
.
Configuration for IBM Cloud (SoftLayer).
+ibmcloud
Here is an example bash command using the IBM Cloud (SoftLayer) provider:
+SOFTLAYER_USERNAME=xxxxx \
+SOFTLAYER_API_KEY=yyyyy \
+lego --email you@example.com --dns ibmcloud --domains my.example.org run
+
Environment Variable Name | +Description | +
---|---|
SOFTLAYER_API_KEY |
+Classic Infrastructure API key | +
SOFTLAYER_USERNAME |
+User name (IBM Cloud is _) | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Environment Variable Name | +Description | +
---|---|
SOFTLAYER_POLLING_INTERVAL |
+Time between DNS propagation check | +
SOFTLAYER_PROPAGATION_TIMEOUT |
+Maximum waiting time for DNS propagation | +
SOFTLAYER_TIMEOUT |
+API request timeout | +
SOFTLAYER_TTL |
+The TTL of the TXT record used for the DNS challenge | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Configuration for Internet Initiative Japan.
+iij
Here is an example bash command using the Internet Initiative Japan provider:
+IIJ_API_ACCESS_KEY=xxxxxxxx \
+IIJ_API_SECRET_KEY=yyyyyy \
+IIJ_DO_SERVICE_CODE=zzzzzz \
+lego --email you@example.com --dns iij --domains my.example.org run
+
Environment Variable Name | +Description | +
---|---|
IIJ_API_ACCESS_KEY |
+API access key | +
IIJ_API_SECRET_KEY |
+API secret key | +
IIJ_DO_SERVICE_CODE |
+DO service code | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Environment Variable Name | +Description | +
---|---|
IIJ_POLLING_INTERVAL |
+Time between DNS propagation check | +
IIJ_PROPAGATION_TIMEOUT |
+Maximum waiting time for DNS propagation | +
IIJ_TTL |
+The TTL of the TXT record used for the DNS challenge | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Configuration for IIJ DNS Platform Service.
+iijdpf
Here is an example bash command using the IIJ DNS Platform Service provider:
+IIJ_DPF_API_TOKEN=xxxxxxxx \
+IIJ_DPF_DPM_SERVICE_CODE=yyyyyy \
+lego --email you@example.com --dns iijdpf --domains my.example.org run
+
Environment Variable Name | +Description | +
---|---|
IIJ_DPF_API_TOKEN |
+API token | +
IIJ_DPF_DPM_SERVICE_CODE |
+IIJ Managed DNS Service’s service code | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Environment Variable Name | +Description | +
---|---|
IIJ_DPF_API_ENDPOINT |
+API endpoint URL, defaults to https://api.dns-platform.jp/dpf/v1 | +
IIJ_DPF_POLLING_INTERVAL |
+Time between DNS propagation check, defaults to 5 second | +
IIJ_DPF_PROPAGATION_TIMEOUT |
+Maximum waiting time for DNS propagation, defaults to 660 second | +
IIJ_DPF_TTL |
+The TTL of the TXT record used for the DNS challenge, default to 300 | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Credentials and DNS configuration for DNS providers must be passed through environment variables.
+The environment variables can reference a value.
+Here is an example bash command using the Cloudflare DNS provider:
+$ CLOUDFLARE_EMAIL=you@example.com \
+ CLOUDFLARE_API_KEY=b9841238feb177a84330febba8a83208921177bffe733 \
+ lego --dns cloudflare --domains www.example.com --email you@example.com run
+
The environment variables can reference a path to file.
+In this case the name of environment variable must be suffixed by _FILE
.
The file must contain only the value.
+Here is an example bash command using the CloudFlare DNS provider:
+$ cat /the/path/to/my/key
+b9841238feb177a84330febba8a83208921177bffe733
+
+$ cat /the/path/to/my/email
+you@example.com
+
+$ CLOUDFLARE_EMAIL_FILE=/the/path/to/my/email \
+ CLOUDFLARE_API_KEY_FILE=/the/path/to/my/key \
+ lego --dns cloudflare --domains www.example.com --email you@example.com run
+
Provider name | +CLI flag name | +Required lego version | +|
---|---|---|---|
+ Akamai EdgeDNS + | +Website | +
+ edgedns
+ |
+ v3.9.0 | +
+ Alibaba Cloud DNS + | +Website | +
+ alidns
+ |
+ v1.1.0 | +
+ all-inkl + | +Website | +
+ allinkl
+ |
+ v4.5.0 | +
+ Amazon Lightsail + | +Website | +
+ lightsail
+ |
+ v0.5.0 | +
+ Amazon Route 53 + | +Website | +
+ route53
+ |
+ v0.3.0 | +
+ ArvanCloud + | +Website | +
+ arvancloud
+ |
+ v3.8.0 | +
+ Aurora DNS + | +Website | +
+ auroradns
+ |
+ v0.4.0 | +
+ Autodns + | +Website | +
+ autodns
+ |
+ v3.2.0 | +
+ Azure (deprecated) + | +Website | +
+ azure
+ |
+ v0.4.0 | +
+ AzureDNS + | +Website | +
+ azuredns
+ |
+ v0.1.0 | +
+ Bindman + | +Website | +
+ bindman
+ |
+ v2.6.0 | +
+ Bluecat + | +Website | +
+ bluecat
+ |
+ v0.5.0 | +
+ Brandit + | +Website | +
+ brandit
+ |
+ v4.11.0 | +
+ Bunny + | +Website | +
+ bunny
+ |
+ v4.11.0 | +
+ Checkdomain + | +Website | +
+ checkdomain
+ |
+ v3.3.0 | +
+ Civo + | +Website | +
+ civo
+ |
+ v4.9.0 | +
+ CloudDNS + | +Website | +
+ clouddns
+ |
+ v3.6.0 | +
+ Cloudflare + | +Website | +
+ cloudflare
+ |
+ v0.3.0 | +
+ ClouDNS + | +Website | +
+ cloudns
+ |
+ v2.3.0 | +
+ CloudXNS + | +Website | +
+ cloudxns
+ |
+ v0.5.0 | +
+ ConoHa + | +Website | +
+ conoha
+ |
+ v1.2.0 | +
+ Constellix + | +Website | +
+ constellix
+ |
+ v3.4.0 | +
+ Derak Cloud + | +Website | +
+ derak
+ |
+ v4.12.0 | +
+ deSEC.io + | +Website | +
+ desec
+ |
+ v3.7.0 | +
+ Designate DNSaaS for Openstack + | +Website | +
+ designate
+ |
+ v2.2.0 | +
+ Digital Ocean + | +Website | +
+ digitalocean
+ |
+ v0.3.0 | +
+ DNS Made Easy + | +Website | +
+ dnsmadeeasy
+ |
+ v0.4.0 | +
+ dnsHome.de + | +Website | +
+ dnshomede
+ |
+ v4.10.0 | +
+ DNSimple + | +Website | +
+ dnsimple
+ |
+ v0.3.0 | +
+ DNSPod (deprecated) + | +Website | +
+ dnspod
+ |
+ v0.4.0 | +
+ Domain Offensive (do.de) + | +Website | +
+ dode
+ |
+ v2.4.0 | +
+ Domeneshop + | +Website | +
+ domeneshop
+ |
+ v4.3.0 | +
+ DreamHost + | +Website | +
+ dreamhost
+ |
+ v1.1.0 | +
+ Duck DNS + | +Website | +
+ duckdns
+ |
+ v0.5.0 | +
+ Dyn + | +Website | +
+ dyn
+ |
+ v0.3.0 | +
+ Dynu + | +Website | +
+ dynu
+ |
+ v3.5.0 | +
+ EasyDNS + | +Website | +
+ easydns
+ |
+ v2.6.0 | +
+ Efficient IP + | +Website | +
+ efficientip
+ |
+ v4.13.0 | +
+ Epik + | +Website | +
+ epik
+ |
+ v4.5.0 | +
+ Exoscale + | +Website | +
+ exoscale
+ |
+ v0.4.0 | +
+ External program + | +Website | +
+ exec
+ |
+ v0.5.0 | +
+ freemyip.com + | +Website | +
+ freemyip
+ |
+ v4.5.0 | +
+ G-Core Labs + | +Website | +
+ gcore
+ |
+ v4.5.0 | +
+ Gandi + | +Website | +
+ gandi
+ |
+ v0.3.0 | +
+ Gandi Live DNS (v5) + | +Website | +
+ gandiv5
+ |
+ v0.5.0 | +
+ Glesys + | +Website | +
+ glesys
+ |
+ v0.5.0 | +
+ Go Daddy + | +Website | +
+ godaddy
+ |
+ v0.5.0 | +
+ Google Cloud + | +Website | +
+ gcloud
+ |
+ v0.3.0 | +
+ Google Domains + | +Website | +
+ googledomains
+ |
+ v4.11.0 | +
+ Hetzner + | +Website | +
+ hetzner
+ |
+ v3.7.0 | +
+ Hosting.de + | +Website | +
+ hostingde
+ |
+ v1.1.0 | +
+ Hosttech + | +Website | +
+ hosttech
+ |
+ v4.5.0 | +
+ HTTP request + | +Website | +
+ httpreq
+ |
+ v2.0.0 | +
+ Hurricane Electric DNS + | +Website | +
+ hurricane
+ |
+ v4.3.0 | +
+ HyperOne + | +Website | +
+ hyperone
+ |
+ v3.9.0 | +
+ IBM Cloud (SoftLayer) + | +Website | +
+ ibmcloud
+ |
+ v4.5.0 | +
+ IIJ DNS Platform Service + | +Website | +
+ iijdpf
+ |
+ v4.7.0 | +
+ Infoblox + | +Website | +
+ infoblox
+ |
+ v4.4.0 | +
+ Infomaniak + | +Website | +
+ infomaniak
+ |
+ v4.1.0 | +
+ Internet Initiative Japan + | +Website | +
+ iij
+ |
+ v1.1.0 | +
+ Internet.bs + | +Website | +
+ internetbs
+ |
+ v4.5.0 | +
+ INWX + | +Website | +
+ inwx
+ |
+ v2.0.0 | +
+ Ionos + | +Website | +
+ ionos
+ |
+ v4.2.0 | +
+ iwantmyname + | +Website | +
+ iwantmyname
+ |
+ v4.7.0 | +
+ Joker + | +Website | +
+ joker
+ |
+ v2.6.0 | +
+ Joohoi's ACME-DNS + | +Website | +
+ acme-dns
+ |
+ v1.1.0 | +
+ Liara + | +Website | +
+ liara
+ |
+ v4.10.0 | +
+ Linode (v4) + | +Website | +
+ linode
+ |
+ v1.1.0 | +
+ Liquid Web + | +Website | +
+ liquidweb
+ |
+ v3.1.0 | +
+ Loopia + | +Website | +
+ loopia
+ |
+ v4.2.0 | +
+ LuaDNS + | +Website | +
+ luadns
+ |
+ v3.7.0 | +
+ Manual + | ++ |
+ manual
+ |
+ v0.3.0 | +
+ MyDNS.jp + | +Website | +
+ mydnsjp
+ |
+ v1.2.0 | +
+ MythicBeasts + | +Website | +
+ mythicbeasts
+ |
+ v0.3.7 | +
+ Name.com + | +Website | +
+ namedotcom
+ |
+ v0.5.0 | +
+ Namecheap + | +Website | +
+ namecheap
+ |
+ v0.3.0 | +
+ Namesilo + | +Website | +
+ namesilo
+ |
+ v2.7.0 | +
+ NearlyFreeSpeech.NET + | +Website | +
+ nearlyfreespeech
+ |
+ v4.8.0 | +
+ Netcup + | +Website | +
+ netcup
+ |
+ v1.1.0 | +
+ Netlify + | +Website | +
+ netlify
+ |
+ v3.7.0 | +
+ Nicmanager + | +Website | +
+ nicmanager
+ |
+ v4.5.0 | +
+ NIFCloud + | +Website | +
+ nifcloud
+ |
+ v1.1.0 | +
+ Njalla + | +Website | +
+ njalla
+ |
+ v4.3.0 | +
+ Nodion + | +Website | +
+ nodion
+ |
+ v4.11.0 | +
+ NS1 + | +Website | +
+ ns1
+ |
+ v0.4.0 | +
+ Open Telekom Cloud + | +Website | +
+ otc
+ |
+ v0.4.1 | +
+ Oracle Cloud + | +Website | +
+ oraclecloud
+ |
+ v2.3.0 | +
+ OVH + | +Website | +
+ ovh
+ |
+ v0.4.0 | +
+ plesk.com + | +Website | +
+ plesk
+ |
+ v4.11.0 | +
+ Porkbun + | +Website | +
+ porkbun
+ |
+ v4.4.0 | +
+ PowerDNS + | +Website | +
+ pdns
+ |
+ v0.4.0 | +
+ Rackspace + | +Website | +
+ rackspace
+ |
+ v0.4.0 | +
+ RcodeZero + | +Website | +
+ rcodezero
+ |
+ v4.13 | +
+ reg.ru + | +Website | +
+ regru
+ |
+ v3.5.0 | +
+ RFC2136 + | +Website | +
+ rfc2136
+ |
+ v0.3.0 | +
+ RimuHosting + | +Website | +
+ rimuhosting
+ |
+ v0.3.5 | +
+ Sakura Cloud + | +Website | +
+ sakuracloud
+ |
+ v1.1.0 | +
+ Scaleway + | +Website | +
+ scaleway
+ |
+ v3.4.0 | +
+ Selectel + | +Website | +
+ selectel
+ |
+ v1.2.0 | +
+ Servercow + | +Website | +
+ servercow
+ |
+ v3.4.0 | +
+ Simply.com + | +Website | +
+ simply
+ |
+ v4.4.0 | +
+ Sonic + | +Website | +
+ sonic
+ |
+ v4.4.0 | +
+ Stackpath + | +Website | +
+ stackpath
+ |
+ v1.1.0 | +
+ Tencent Cloud DNS + | +Website | +
+ tencentcloud
+ |
+ v4.6.0 | +
+ TransIP + | +Website | +
+ transip
+ |
+ v2.0.0 | +
+ UKFast SafeDNS + | +Website | +
+ safedns
+ |
+ v4.6.0 | +
+ Ultradns + | +Website | +
+ ultradns
+ |
+ v4.10.0 | +
+ Variomedia + | +Website | +
+ variomedia
+ |
+ v4.8.0 | +
+ VegaDNS + | +Website | +
+ vegadns
+ |
+ v1.1.0 | +
+ Vercel + | +Website | +
+ vercel
+ |
+ v4.7.0 | +
+ Versio.[nl|eu|uk] + | +Website | +
+ versio
+ |
+ v2.7.0 | +
+ VinylDNS + | +Website | +
+ vinyldns
+ |
+ v4.4.0 | +
+ VK Cloud + | +Website | +
+ vkcloud
+ |
+ v4.9.0 | +
+ Vscale + | +Website | +
+ vscale
+ |
+ v2.0.0 | +
+ Vultr + | +Website | +
+ vultr
+ |
+ v0.3.1 | +
+ Websupport + | +Website | +
+ websupport
+ |
+ v4.10.0 | +
+ WEDOS + | +Website | +
+ wedos
+ |
+ v4.4.0 | +
+ Yandex Cloud + | +Website | +
+ yandexcloud
+ |
+ v4.9.0 | +
+ Yandex PDD + | +Website | +
+ yandex
+ |
+ v3.7.0 | +
+ Zone.ee + | +Website | +
+ zoneee
+ |
+ v2.1.0 | +
+ Zonomi + | +Website | +
+ zonomi
+ |
+ v3.5.0 | +
Configuration for Infoblox.
+infoblox
Here is an example bash command using the Infoblox provider:
+INFOBLOX_USERNAME=api-user-529 \
+INFOBLOX_PASSWORD=b9841238feb177a84330febba8a83208921177bffe733 \
+INFOBLOX_HOST=infoblox.example.org
+lego --email you@example.com --dns infoblox --domains my.example.org run
+
Environment Variable Name | +Description | +
---|---|
INFOBLOX_HOST |
+Host URI | +
INFOBLOX_PASSWORD |
+Account Password | +
INFOBLOX_USERNAME |
+Account Username | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Environment Variable Name | +Description | +
---|---|
INFOBLOX_DNS_VIEW |
+The view for the TXT records, default: External | +
INFOBLOX_HTTP_TIMEOUT |
+HTTP request timeout | +
INFOBLOX_POLLING_INTERVAL |
+Time between DNS propagation check | +
INFOBLOX_PORT |
+The port for the infoblox grid manager, default: 443 | +
INFOBLOX_PROPAGATION_TIMEOUT |
+Maximum waiting time for DNS propagation | +
INFOBLOX_SSL_VERIFY |
+Whether or not to verify the TLS certificate, default: true | +
INFOBLOX_TTL |
+The TTL of the TXT record used for the DNS challenge | +
INFOBLOX_WAPI_VERSION |
+The version of WAPI being used, default: 2.11 | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
When creating an API’s user ensure it has the proper permissions for the view you are working with.
+Configuration for Infomaniak.
+infomaniak
Here is an example bash command using the Infomaniak provider:
+INFOMANIAK_ACCESS_TOKEN=1234567898765432 \
+lego --email you@example.com --dns infomaniak --domains my.example.org run
+
Environment Variable Name | +Description | +
---|---|
INFOMANIAK_ACCESS_TOKEN |
+Access token | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Environment Variable Name | +Description | +
---|---|
INFOMANIAK_ENDPOINT |
+https://api.infomaniak.com | +
INFOMANIAK_HTTP_TIMEOUT |
+API request timeout | +
INFOMANIAK_POLLING_INTERVAL |
+Time between DNS propagation check | +
INFOMANIAK_PROPAGATION_TIMEOUT |
+Maximum waiting time for DNS propagation | +
INFOMANIAK_TTL |
+The TTL of the TXT record used for the DNS challenge in seconds | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Access token can be created at the url https://manager.infomaniak.com/v3/infomaniak-api. +You will need domain scope.
+Configuration for Internet.bs.
+internetbs
Here is an example bash command using the Internet.bs provider:
+INTERNET_BS_API_KEY=xxxxxxxxxxxxxxxxxxxxxxxxxx \
+INTERNET_BS_PASSWORD=yyyyyyyyyyyyyyyyyyyyyyyyyy \
+lego --email you@example.com --dns internetbs --domains my.example.org run
+
Environment Variable Name | +Description | +
---|---|
INTERNET_BS_API_KEY |
+API key | +
INTERNET_BS_PASSWORD |
+API password | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Environment Variable Name | +Description | +
---|---|
INTERNET_BS_HTTP_TIMEOUT |
+API request timeout | +
INTERNET_BS_POLLING_INTERVAL |
+Time between DNS propagation check | +
INTERNET_BS_PROPAGATION_TIMEOUT |
+Maximum waiting time for DNS propagation | +
INTERNET_BS_TTL |
+The TTL of the TXT record used for the DNS challenge | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Configuration for INWX.
+inwx
Here is an example bash command using the INWX provider:
+INWX_USERNAME=xxxxxxxxxx \
+INWX_PASSWORD=yyyyyyyyyy \
+lego --email you@example.com --dns inwx --domains my.example.org run
+
+# 2FA
+INWX_USERNAME=xxxxxxxxxx \
+INWX_PASSWORD=yyyyyyyyyy \
+INWX_SHARED_SECRET=zzzzzzzzzz \
+lego --email you@example.com --dns inwx --domains my.example.org run
+
Environment Variable Name | +Description | +
---|---|
INWX_PASSWORD |
+Password | +
INWX_USERNAME |
+Username | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Environment Variable Name | +Description | +
---|---|
INWX_POLLING_INTERVAL |
+Time between DNS propagation check | +
INWX_PROPAGATION_TIMEOUT |
+Maximum waiting time for DNS propagation (default 360s) | +
INWX_SANDBOX |
+Activate the sandbox (boolean) | +
INWX_SHARED_SECRET |
+shared secret related to 2FA | +
INWX_TTL |
+The TTL of the TXT record used for the DNS challenge | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Configuration for Ionos.
+ionos
Here is an example bash command using the Ionos provider:
+IONOS_API_KEY=xxxxxxxx \
+lego --email you@example.com --dns ionos --domains my.example.org run
+
Environment Variable Name | +Description | +
---|---|
IONOS_API_KEY |
+API key <prefix>.<secret> https://developer.hosting.ionos.com/docs/getstarted |
+
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Environment Variable Name | +Description | +
---|---|
IONOS_HTTP_TIMEOUT |
+API request timeout | +
IONOS_POLLING_INTERVAL |
+Time between DNS propagation check | +
IONOS_PROPAGATION_TIMEOUT |
+Maximum waiting time for DNS propagation | +
IONOS_TTL |
+The TTL of the TXT record used for the DNS challenge | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Configuration for iwantmyname.
+iwantmyname
Here is an example bash command using the iwantmyname provider:
+IWANTMYNAME_USERNAME=xxxxxxxx \
+IWANTMYNAME_PASSWORD=xxxxxxxx \
+lego --email you@example.com --dns iwantmyname --domains my.example.org run
+
Environment Variable Name | +Description | +
---|---|
IWANTMYNAME_PASSWORD |
+API password | +
IWANTMYNAME_USERNAME |
+API username | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Environment Variable Name | +Description | +
---|---|
IWANTMYNAME_HTTP_TIMEOUT |
+API request timeout | +
IWANTMYNAME_POLLING_INTERVAL |
+Time between DNS propagation check | +
IWANTMYNAME_PROPAGATION_TIMEOUT |
+Maximum waiting time for DNS propagation | +
IWANTMYNAME_TTL |
+The TTL of the TXT record used for the DNS challenge | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Configuration for Joker.
+joker
Here is an example bash command using the Joker provider:
+# SVC
+JOKER_API_MODE=SVC \
+JOKER_USERNAME=<your email> \
+JOKER_PASSWORD=<your password> \
+lego --email you@example.com --dns joker --domains my.example.org run
+
+# DMAPI
+JOKER_API_MODE=DMAPI \
+JOKER_USERNAME=<your email> \
+JOKER_PASSWORD=<your password> \
+lego --email you@example.com --dns joker --domains my.example.org run
+## or
+JOKER_API_MODE=DMAPI \
+JOKER_API_KEY=<your API key> \
+lego --email you@example.com --dns joker --domains my.example.org run
+
Environment Variable Name | +Description | +
---|---|
JOKER_API_KEY |
+API key (only with DMAPI mode) | +
JOKER_API_MODE |
+‘DMAPI’ or ‘SVC’. DMAPI is for resellers accounts. (Default: DMAPI) | +
JOKER_PASSWORD |
+Joker.com password | +
JOKER_USERNAME |
+Joker.com username | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Environment Variable Name | +Description | +
---|---|
JOKER_HTTP_TIMEOUT |
+API request timeout | +
JOKER_POLLING_INTERVAL |
+Time between DNS propagation check | +
JOKER_PROPAGATION_TIMEOUT |
+Maximum waiting time for DNS propagation | +
JOKER_SEQUENCE_INTERVAL |
+Time between sequential requests (only with ‘SVC’ mode) | +
JOKER_TTL |
+The TTL of the TXT record used for the DNS challenge | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
In the SVC mode, username and passsword are not your email and account passwords, but those displayed in Joker.com domain dashboard when enabling Dynamic DNS.
+As per Joker.com documentation:
++++
+- +
+please login at Joker.com, visit ‘My Domains’, +find the domain you want to add Let’s Encrypt certificate for, and chose “DNS” in the menu
+- +
+on the top right, you will find the setting for ‘Dynamic DNS’. +If not already active, please activate it. +It will not affect any other already existing DNS records of this domain.
+- +
+please take a note of the credentials which are now shown as ‘Dynamic DNS Authentication’, consisting of a ‘username’ and a ‘password’.
+- +
+this is all you have to do here - and only once per domain.
+
Configuration for Liara.
+liara
Here is an example bash command using the Liara provider:
+LIARA_API_KEY="xxxxxxxxxxxxxxxxxxxxx" \
+lego --email myemail@example.com --dns liara --domains my.example.org run
+
Environment Variable Name | +Description | +
---|---|
LIARA_API_KEY |
+The API key | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Environment Variable Name | +Description | +
---|---|
LIARA_HTTP_TIMEOUT |
+API request timeout | +
LIARA_POLLING_INTERVAL |
+Time between DNS propagation check | +
LIARA_PROPAGATION_TIMEOUT |
+Maximum waiting time for DNS propagation | +
LIARA_TTL |
+The TTL of the TXT record used for the DNS challenge | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Configuration for Amazon Lightsail.
+lightsail
Please contribute by adding a CLI example.
+Environment Variable Name | +Description | +
---|---|
AWS_ACCESS_KEY_ID |
+Managed by the AWS client. Access key ID (AWS_ACCESS_KEY_ID_FILE is not supported, use AWS_SHARED_CREDENTIALS_FILE instead) |
+
AWS_SECRET_ACCESS_KEY |
+Managed by the AWS client. Secret access key (AWS_SECRET_ACCESS_KEY_FILE is not supported, use AWS_SHARED_CREDENTIALS_FILE instead) |
+
DNS_ZONE |
+Domain name of the DNS zone | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Environment Variable Name | +Description | +
---|---|
AWS_SHARED_CREDENTIALS_FILE |
+Managed by the AWS client. Shared credentials file. | +
LIGHTSAIL_POLLING_INTERVAL |
+Time between DNS propagation check | +
LIGHTSAIL_PROPAGATION_TIMEOUT |
+Maximum waiting time for DNS propagation | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
AWS Credentials are automatically detected in the following locations and prioritized in the following order:
+AWS_ACCESS_KEY_ID
, AWS_SECRET_ACCESS_KEY
, [AWS_SESSION_TOKEN
]~/.aws/credentials
, profiles can be specified using AWS_PROFILE
)AWS region is not required to set as the Lightsail DNS zone is in global (us-east-1) region.
+The following AWS IAM policy document describes the minimum permissions required for lego to complete the DNS challenge.
+{
+ "Version": "2012-10-17",
+ "Statement": [
+ {
+ "Effect": "Allow",
+ "Action": [
+ "lightsail:DeleteDomainEntry",
+ "lightsail:CreateDomainEntry"
+ ],
+ "Resource": "<Lightsail DNS zone ARN>"
+ }
+ ]
+}
+
Replace the Resource
value with your Lightsail DNS zone ARN.
+You can retrieve the ARN using aws cli by running aws lightsail get-domains --region us-east-1
(Lightsail web console does not show the ARN, unfortunately).
+It should be in the format of arn:aws:lightsail:global:<ACCOUNT ID>:Domain/<DOMAIN ID>
.
+You also need to replace the region in the ARN to us-east-1
(instead of global
).
Alternatively, you can also set the Resource
to *
(wildcard), which allow to access all domain, but this is not recommended.
Configuration for Linode (v4).
+linode
Here is an example bash command using the Linode (v4) provider:
+LINODE_TOKEN=xxxxx \
+lego --email you@example.com --dns linode --domains my.example.org run
+
Environment Variable Name | +Description | +
---|---|
LINODE_TOKEN |
+API token | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Environment Variable Name | +Description | +
---|---|
LINODE_HTTP_TIMEOUT |
+API request timeout | +
LINODE_POLLING_INTERVAL |
+Time between DNS propagation check | +
LINODE_PROPAGATION_TIMEOUT |
+Maximum waiting time for DNS propagation | +
LINODE_TTL |
+The TTL of the TXT record used for the DNS challenge | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Configuration for Liquid Web.
+liquidweb
Here is an example bash command using the Liquid Web provider:
+LIQUID_WEB_USERNAME=someuser \
+LIQUID_WEB_PASSWORD=somepass \
+LIQUID_WEB_ZONE=tacoman.com.net \
+lego --email you@example.com --dns liquidweb --domains my.example.org run
+
Environment Variable Name | +Description | +
---|---|
LIQUID_WEB_PASSWORD |
+Storm API Password | +
LIQUID_WEB_USERNAME |
+Storm API Username | +
LIQUID_WEB_ZONE |
+DNS Zone | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Environment Variable Name | +Description | +
---|---|
LIQUID_WEB_HTTP_TIMEOUT |
+Maximum waiting time for the DNS records to be created (not verified) | +
LIQUID_WEB_POLLING_INTERVAL |
+Time between DNS propagation check | +
LIQUID_WEB_PROPAGATION_TIMEOUT |
+Maximum waiting time for DNS propagation | +
LIQUID_WEB_TTL |
+The TTL of the TXT record used for the DNS challenge | +
LIQUID_WEB_URL |
+Storm API endpoint | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Configuration for Loopia.
+loopia
Here is an example bash command using the Loopia provider:
+LOOPIA_API_USER=xxxxxxxx \
+LOOPIA_API_PASSWORD=yyyyyyyy \
+lego --email my@email.com --dns loopia --domains my.domain.com run
+
Environment Variable Name | +Description | +
---|---|
LOOPIA_API_PASSWORD |
+API password | +
LOOPIA_API_USER |
+API username | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Environment Variable Name | +Description | +
---|---|
LOOPIA_API_URL |
+API endpoint. Ex: https://api.loopia.se/RPCSERV or https://api.loopia.rs/RPCSERV | +
LOOPIA_HTTP_TIMEOUT |
+API request timeout | +
LOOPIA_POLLING_INTERVAL |
+Time between DNS propagation check | +
LOOPIA_PROPAGATION_TIMEOUT |
+Maximum waiting time for DNS propagation | +
LOOPIA_TTL |
+The TTL of the TXT record used for the DNS challenge | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
You can generate a new API user from your account page.
+It needs to have the following permissions:
+Configuration for LuaDNS.
+luadns
Here is an example bash command using the LuaDNS provider:
+LUADNS_API_USERNAME=youremail \
+LUADNS_API_TOKEN=xxxxxxxx \
+lego --email you@example.com --dns luadns --domains my.example.org run
+
Environment Variable Name | +Description | +
---|---|
LUADNS_API_TOKEN |
+API token | +
LUADNS_API_USERNAME |
+Username (your email) | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Environment Variable Name | +Description | +
---|---|
LUADNS_HTTP_TIMEOUT |
+API request timeout | +
LUADNS_POLLING_INTERVAL |
+Time between DNS propagation check | +
LUADNS_PROPAGATION_TIMEOUT |
+Maximum waiting time for DNS propagation | +
LUADNS_TTL |
+The TTL of the TXT record used for the DNS challenge | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Solving the DNS-01 challenge using CLI prompt.
+To start using the CLI prompt “provider”, start lego with --dns manual
:
$ lego --email "you@example.com" --domains="example.com" --dns "manual" run
+
What follows are a few log print outs, interspersed with some prompts, asking for you to do perform some actions:
+No key found for account you@example.com. Generating a P256 key.
+Saved key to ./.lego/accounts/acme-v02.api.letsencrypt.org/you@example.com/keys/you@example.com.key
+Please review the TOS at https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf
+Do you accept the TOS? Y/n
+
If you accept the linked Terms of Service, hit Enter
.
[INFO] acme: Registering account for you@example.com
+!!!! HEADS UP !!!!
+
+ Your account credentials have been saved in your Let's Encrypt
+ configuration directory at "./.lego/accounts".
+
+ You should make a secure backup of this folder now. This
+ configuration directory will also contain certificates and
+ private keys obtained from Let's Encrypt so making regular
+ backups of this folder is ideal.
+[INFO] [example.com] acme: Obtaining bundled SAN certificate
+[INFO] [example.com] AuthURL: https://acme-v02.api.letsencrypt.org/acme/authz-v3/2345678901
+[INFO] [example.com] acme: Could not find solver for: tls-alpn-01
+[INFO] [example.com] acme: Could not find solver for: http-01
+[INFO] [example.com] acme: use dns-01 solver
+[INFO] [example.com] acme: Preparing to solve DNS-01
+lego: Please create the following TXT record in your example.com. zone:
+_acme-challenge.example.com. 120 IN TXT "hX0dPkG6Gfs9hUvBAchQclkyyoEKbShbpvJ9mY5q2JQ"
+lego: Press 'Enter' when you are done
+
Do as instructed, and create the TXT records, and hit Enter
.
[INFO] [example.com] acme: Trying to solve DNS-01
+[INFO] [example.com] acme: Checking DNS record propagation using [192.168.8.1:53]
+[INFO] Wait for propagation [timeout: 1m0s, interval: 2s]
+[INFO] [example.com] acme: Waiting for DNS record propagation.
+[INFO] [example.com] The server validated our request
+[INFO] [example.com] acme: Cleaning DNS-01 challenge
+lego: You can now remove this TXT record from your example.com. zone:
+_acme-challenge.example.com. 120 IN TXT "hX0dPkG6Gfs9hUvBAchQclkyyoEKbShbpvJ9mY5q2JQ"
+[INFO] [example.com] acme: Validations succeeded; requesting certificates
+[INFO] [example.com] Server responded with a certificate.
+
As mentioned, you can now remove the TXT record again.
+ + + + +Configuration for MyDNS.jp.
+mydnsjp
Here is an example bash command using the MyDNS.jp provider:
+MYDNSJP_MASTER_ID=xxxxx \
+MYDNSJP_PASSWORD=xxxxx \
+lego --email you@example.com --dns mydnsjp --domains my.example.org run
+
Environment Variable Name | +Description | +
---|---|
MYDNSJP_MASTER_ID |
+Master ID | +
MYDNSJP_PASSWORD |
+Password | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Environment Variable Name | +Description | +
---|---|
MYDNSJP_HTTP_TIMEOUT |
+API request timeout | +
MYDNSJP_POLLING_INTERVAL |
+Time between DNS propagation check | +
MYDNSJP_PROPAGATION_TIMEOUT |
+Maximum waiting time for DNS propagation | +
MYDNSJP_TTL |
+The TTL of the TXT record used for the DNS challenge | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Configuration for MythicBeasts.
+mythicbeasts
Here is an example bash command using the MythicBeasts provider:
+MYTHICBEASTS_USERNAME=myuser \
+MYTHICBEASTS_PASSWORD=mypass \
+lego --email you@example.com --dns mythicbeasts --domains my.example.org run
+
Environment Variable Name | +Description | +
---|---|
MYTHICBEASTS_PASSWORD |
+Password | +
MYTHICBEASTS_USERNAME |
+User name | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Environment Variable Name | +Description | +
---|---|
MYTHICBEASTS_API_ENDPOINT |
+The endpoint for the API (must implement v2) | +
MYTHICBEASTS_AUTH_API_ENDPOINT |
+The endpoint for Mythic Beasts’ Authentication | +
MYTHICBEASTS_HTTP_TIMEOUT |
+API request timeout | +
MYTHICBEASTS_POLLING_INTERVAL |
+Time between DNS propagation check | +
MYTHICBEASTS_PROPAGATION_TIMEOUT |
+Maximum waiting time for DNS propagation | +
MYTHICBEASTS_TTL |
+The TTL of the TXT record used for the DNS challenge | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
If you are using specific API keys, then the username is the API ID for your API key, and the password is the API secret.
+Your API key name is not needed to operate lego.
+Configuration for Namecheap.
+To enable API access on the Namecheap production environment, some opaque requirements must be met. +More information in the section Enabling API Access of the Namecheap documentation. +(2020-08: Account balance of $50+, 20+ domains in your account, or purchases totaling $50+ within the last 2 years.)
+namecheap
Here is an example bash command using the Namecheap provider:
+NAMECHEAP_API_USER=user \
+NAMECHEAP_API_KEY=key \
+lego --email you@example.com --dns namecheap --domains my.example.org run
+
Environment Variable Name | +Description | +
---|---|
NAMECHEAP_API_KEY |
+API key | +
NAMECHEAP_API_USER |
+API user | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Environment Variable Name | +Description | +
---|---|
NAMECHEAP_HTTP_TIMEOUT |
+API request timeout | +
NAMECHEAP_POLLING_INTERVAL |
+Time between DNS propagation check | +
NAMECHEAP_PROPAGATION_TIMEOUT |
+Maximum waiting time for DNS propagation | +
NAMECHEAP_SANDBOX |
+Activate the sandbox (boolean) | +
NAMECHEAP_TTL |
+The TTL of the TXT record used for the DNS challenge | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Configuration for Name.com.
+namedotcom
Here is an example bash command using the Name.com provider:
+NAMECOM_USERNAME=foo.bar \
+NAMECOM_API_TOKEN=a379a6f6eeafb9a55e378c118034e2751e682fab \
+lego --email you@example.com --dns namedotcom --domains my.example.org run
+
Environment Variable Name | +Description | +
---|---|
NAMECOM_API_TOKEN |
+API token | +
NAMECOM_USERNAME |
+Username | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Environment Variable Name | +Description | +
---|---|
NAMECOM_HTTP_TIMEOUT |
+API request timeout | +
NAMECOM_POLLING_INTERVAL |
+Time between DNS propagation check | +
NAMECOM_PROPAGATION_TIMEOUT |
+Maximum waiting time for DNS propagation | +
NAMECOM_TTL |
+The TTL of the TXT record used for the DNS challenge | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Configuration for Namesilo.
+namesilo
Here is an example bash command using the Namesilo provider:
+NAMESILO_API_KEY=b9841238feb177a84330febba8a83208921177bffe733 \
+lego --email you@example.com --dns namesilo --domains my.example.org run
+
Environment Variable Name | +Description | +
---|---|
NAMESILO_API_KEY |
+Client ID | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Environment Variable Name | +Description | +
---|---|
NAMESILO_POLLING_INTERVAL |
+Time between DNS propagation check | +
NAMESILO_PROPAGATION_TIMEOUT |
+Maximum waiting time for DNS propagation, it is better to set larger than 15m | +
NAMESILO_TTL |
+The TTL of the TXT record used for the DNS challenge, should be in [3600, 2592000] | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Configuration for NearlyFreeSpeech.NET.
+nearlyfreespeech
Here is an example bash command using the NearlyFreeSpeech.NET provider:
+NEARLYFREESPEECH_API_KEY=xxxxxx \
+NEARLYFREESPEECH_LOGIN=xxxx \
+lego --email you@example.com --dns nearlyfreespeech --domains my.example.org run
+
Environment Variable Name | +Description | +
---|---|
NEARLYFREESPEECH_API_KEY |
+API Key for API requests | +
NEARLYFREESPEECH_LOGIN |
+Username for API requests | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Environment Variable Name | +Description | +
---|---|
NEARLYFREESPEECH_HTTP_TIMEOUT |
+API request timeout | +
NEARLYFREESPEECH_POLLING_INTERVAL |
+Time between DNS propagation check | +
NEARLYFREESPEECH_PROPAGATION_TIMEOUT |
+Maximum waiting time for DNS propagation | +
NEARLYFREESPEECH_SEQUENCE_INTERVAL |
+Time between sequential requests | +
NEARLYFREESPEECH_TTL |
+The TTL of the TXT record used for the DNS challenge | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Configuration for Netcup.
+netcup
Here is an example bash command using the Netcup provider:
+NETCUP_CUSTOMER_NUMBER=xxxx \
+NETCUP_API_KEY=yyyy \
+NETCUP_API_PASSWORD=zzzz \
+lego --email you@example.com --dns netcup --domains my.example.org run
+
Environment Variable Name | +Description | +
---|---|
NETCUP_API_KEY |
+API key | +
NETCUP_API_PASSWORD |
+API password | +
NETCUP_CUSTOMER_NUMBER |
+Customer number | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Environment Variable Name | +Description | +
---|---|
NETCUP_HTTP_TIMEOUT |
+API request timeout | +
NETCUP_POLLING_INTERVAL |
+Time between DNS propagation check | +
NETCUP_PROPAGATION_TIMEOUT |
+Maximum waiting time for DNS propagation | +
NETCUP_TTL |
+The TTL of the TXT record used for the DNS challenge | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Configuration for Netlify.
+netlify
Here is an example bash command using the Netlify provider:
+NETLIFY_TOKEN=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx \
+lego --email you@example.com --dns netlify --domains my.example.org run
+
Environment Variable Name | +Description | +
---|---|
NETLIFY_TOKEN |
+Token | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Environment Variable Name | +Description | +
---|---|
NETLIFY_HTTP_TIMEOUT |
+API request timeout | +
NETLIFY_POLLING_INTERVAL |
+Time between DNS propagation check | +
NETLIFY_PROPAGATION_TIMEOUT |
+Maximum waiting time for DNS propagation | +
NETLIFY_TTL |
+The TTL of the TXT record used for the DNS challenge | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Configuration for Nicmanager.
+nicmanager
Here is an example bash command using the Nicmanager provider:
+## Login using email
+
+NICMANAGER_API_EMAIL = "you@example.com" \
+NICMANAGER_API_PASSWORD = "password" \
+
+# Optionally, if your account has TOTP enabled, set the secret here
+NICMANAGER_API_OTP = "long-secret" \
+
+lego --email you@example.com --dns nicmanager --domains my.example.org run
+
+## Login using account name + username
+
+NICMANAGER_API_LOGIN = "myaccount" \
+NICMANAGER_API_USERNAME = "myuser" \
+NICMANAGER_API_PASSWORD = "password" \
+
+# Optionally, if your account has TOTP enabled, set the secret here
+NICMANAGER_API_OTP = "long-secret" \
+
+lego --email you@example.com --dns nicmanager --domains my.example.org run
+
Environment Variable Name | +Description | +
---|---|
NICMANAGER_API_EMAIL |
+Email-based login | +
NICMANAGER_API_LOGIN |
+Login, used for Username-based login | +
NICMANAGER_API_PASSWORD |
+Password, always required | +
NICMANAGER_API_USERNAME |
+Username, used for Username-based login | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Environment Variable Name | +Description | +
---|---|
NICMANAGER_API_MODE |
+mode: ‘anycast’ or ‘zone’ (default: ‘anycast’) | +
NICMANAGER_API_OTP |
+TOTP Secret (optional) | +
NICMANAGER_HTTP_TIMEOUT |
+API request timeout | +
NICMANAGER_POLLING_INTERVAL |
+Time between DNS propagation check | +
NICMANAGER_PROPAGATION_TIMEOUT |
+Maximum waiting time for DNS propagation | +
NICMANAGER_TTL |
+The TTL of the TXT record used for the DNS challenge | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
You can login using your account name + username or using your email address.
+Optionally if TOTP is configured for your account, set NICMANAGER_API_OTP
.
Configuration for NIFCloud.
+nifcloud
Here is an example bash command using the NIFCloud provider:
+NIFCLOUD_ACCESS_KEY_ID=xxxx \
+NIFCLOUD_SECRET_ACCESS_KEY=yyyy \
+lego --email you@example.com --dns nifcloud --domains my.example.org run
+
Environment Variable Name | +Description | +
---|---|
NIFCLOUD_ACCESS_KEY_ID |
+Access key | +
NIFCLOUD_SECRET_ACCESS_KEY |
+Secret access key | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Environment Variable Name | +Description | +
---|---|
NIFCLOUD_HTTP_TIMEOUT |
+API request timeout | +
NIFCLOUD_POLLING_INTERVAL |
+Time between DNS propagation check | +
NIFCLOUD_PROPAGATION_TIMEOUT |
+Maximum waiting time for DNS propagation | +
NIFCLOUD_TTL |
+The TTL of the TXT record used for the DNS challenge | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Configuration for Njalla.
+njalla
Here is an example bash command using the Njalla provider:
+NJALLA_TOKEN=xxxxxxxxxxxxxxxxxxxxxxxxxx \
+lego --email you@example.com --dns njalla --domains my.example.org run
+
Environment Variable Name | +Description | +
---|---|
NJALLA_TOKEN |
+API token | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Environment Variable Name | +Description | +
---|---|
NJALLA_HTTP_TIMEOUT |
+API request timeout | +
NJALLA_POLLING_INTERVAL |
+Time between DNS propagation check | +
NJALLA_PROPAGATION_TIMEOUT |
+Maximum waiting time for DNS propagation | +
NJALLA_TTL |
+The TTL of the TXT record used for the DNS challenge | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Configuration for Nodion.
+nodion
Here is an example bash command using the Nodion provider:
+NODION_API_TOKEN="xxxxxxxxxxxxxxxxxxxxx" \
+lego --email myemail@example.com --dns nodion --domains my.example.org run
+
Environment Variable Name | +Description | +
---|---|
NODION_API_TOKEN |
+The API token | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Environment Variable Name | +Description | +
---|---|
NODION_HTTP_TIMEOUT |
+API request timeout | +
NODION_POLLING_INTERVAL |
+Time between DNS propagation check | +
NODION_PROPAGATION_TIMEOUT |
+Maximum waiting time for DNS propagation | +
NODION_TTL |
+The TTL of the TXT record used for the DNS challenge | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Configuration for NS1.
+ns1
Here is an example bash command using the NS1 provider:
+NS1_API_KEY=xxxx \
+lego --email you@example.com --dns ns1 --domains my.example.org run
+
Environment Variable Name | +Description | +
---|---|
NS1_API_KEY |
+API key | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Environment Variable Name | +Description | +
---|---|
NS1_HTTP_TIMEOUT |
+API request timeout | +
NS1_POLLING_INTERVAL |
+Time between DNS propagation check | +
NS1_PROPAGATION_TIMEOUT |
+Maximum waiting time for DNS propagation | +
NS1_TTL |
+The TTL of the TXT record used for the DNS challenge | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Configuration for Oracle Cloud.
+oraclecloud
Here is an example bash command using the Oracle Cloud provider:
+OCI_PRIVKEY_FILE="~/.oci/oci_api_key.pem" \
+OCI_PRIVKEY_PASS="secret" \
+OCI_TENANCY_OCID="ocid1.tenancy.oc1..secret" \
+OCI_USER_OCID="ocid1.user.oc1..secret" \
+OCI_PUBKEY_FINGERPRINT="00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00" \
+OCI_REGION="us-phoenix-1" \
+OCI_COMPARTMENT_OCID="ocid1.tenancy.oc1..secret" \
+lego --email you@example.com --dns oraclecloud --domains my.example.org run
+
Environment Variable Name | +Description | +
---|---|
OCI_COMPARTMENT_OCID |
+Compartment OCID | +
OCI_PRIVKEY_FILE |
+Private key file | +
OCI_PRIVKEY_PASS |
+Private key password | +
OCI_PUBKEY_FINGERPRINT |
+Public key fingerprint | +
OCI_REGION |
+Region | +
OCI_TENANCY_OCID |
+Tenancy OCID | +
OCI_USER_OCID |
+User OCID | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Environment Variable Name | +Description | +
---|---|
OCI_POLLING_INTERVAL |
+Time between DNS propagation check | +
OCI_PROPAGATION_TIMEOUT |
+Maximum waiting time for DNS propagation | +
OCI_TTL |
+The TTL of the TXT record used for the DNS challenge | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Configuration for Open Telekom Cloud.
+otc
Please contribute by adding a CLI example.
+Environment Variable Name | +Description | +
---|---|
OTC_DOMAIN_NAME |
+Domain name | +
OTC_IDENTITY_ENDPOINT |
+Identity endpoint URL | +
OTC_PASSWORD |
+Password | +
OTC_PROJECT_NAME |
+Project name | +
OTC_USER_NAME |
+User name | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Environment Variable Name | +Description | +
---|---|
OTC_HTTP_TIMEOUT |
+API request timeout | +
OTC_POLLING_INTERVAL |
+Time between DNS propagation check | +
OTC_PROPAGATION_TIMEOUT |
+Maximum waiting time for DNS propagation | +
OTC_TTL |
+The TTL of the TXT record used for the DNS challenge | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Configuration for OVH.
+ovh
Here is an example bash command using the OVH provider:
+OVH_APPLICATION_KEY=1234567898765432 \
+OVH_APPLICATION_SECRET=b9841238feb177a84330febba8a832089 \
+OVH_CONSUMER_KEY=256vfsd347245sdfg \
+OVH_ENDPOINT=ovh-eu \
+lego --email you@example.com --dns ovh --domains my.example.org run
+
Environment Variable Name | +Description | +
---|---|
OVH_APPLICATION_KEY |
+Application key | +
OVH_APPLICATION_SECRET |
+Application secret | +
OVH_CONSUMER_KEY |
+Consumer key | +
OVH_ENDPOINT |
+Endpoint URL (ovh-eu or ovh-ca) | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Environment Variable Name | +Description | +
---|---|
OVH_HTTP_TIMEOUT |
+API request timeout | +
OVH_POLLING_INTERVAL |
+Time between DNS propagation check | +
OVH_PROPAGATION_TIMEOUT |
+Maximum waiting time for DNS propagation | +
OVH_TTL |
+The TTL of the TXT record used for the DNS challenge | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Application key and secret can be created by following the OVH guide.
+When requesting the consumer key, the following configuration can be use to define access rights:
+{
+ "accessRules": [
+ {
+ "method": "POST",
+ "path": "/domain/zone/*"
+ },
+ {
+ "method": "DELETE",
+ "path": "/domain/zone/*"
+ }
+ ]
+}
+
Configuration for PowerDNS.
+pdns
Here is an example bash command using the PowerDNS provider:
+PDNS_API_URL=http://pdns-server:80/ \
+PDNS_API_KEY=xxxx \
+lego --email you@example.com --dns pdns --domains my.example.org run
+
Environment Variable Name | +Description | +
---|---|
PDNS_API_KEY |
+API key | +
PDNS_API_URL |
+API URL | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Environment Variable Name | +Description | +
---|---|
PDNS_HTTP_TIMEOUT |
+API request timeout | +
PDNS_POLLING_INTERVAL |
+Time between DNS propagation check | +
PDNS_PROPAGATION_TIMEOUT |
+Maximum waiting time for DNS propagation | +
PDNS_SERVER_NAME |
+Name of the server in the URL, ’localhost’ by default | +
PDNS_TTL |
+The TTL of the TXT record used for the DNS challenge | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Tested and confirmed to work with PowerDNS authoritative server 3.4.8 and 4.0.1. Refer to PowerDNS documentation instructions on how to enable the built-in API interface.
+PowerDNS Notes:
+_acme-challenge
record is added/modified via the API, set SOA-EDIT-API
to INCEPTION-INCREMENT
for the zone in the domainmetadata
tableConfiguration for plesk.com.
+plesk
Here is an example bash command using the plesk.com provider:
+PLESK_SERVER_BASE_URL="https://plesk.myserver.com:8443" \
+PLESK_USERNAME=xxxxxx \
+PLESK_PASSWORD=yyyyyy \
+lego --email you@example.com --dns plesk --domains my.example.org run
+
Environment Variable Name | +Description | +
---|---|
PLESK_PASSWORD |
+API password | +
PLESK_SERVER_BASE_URL |
+Base URL of the server (ex: https://plesk.myserver.com:8443) | +
PLESK_USERNAME |
+API username | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Environment Variable Name | +Description | +
---|---|
PLESK_HTTP_TIMEOUT |
+API request timeout | +
PLESK_POLLING_INTERVAL |
+Time between DNS propagation check | +
PLESK_PROPAGATION_TIMEOUT |
+Maximum waiting time for DNS propagation | +
PLESK_TTL |
+The TTL of the TXT record used for the DNS challenge | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Configuration for Porkbun.
+porkbun
Here is an example bash command using the Porkbun provider:
+PORKBUN_SECRET_API_KEY=xxxxxx \
+PORKBUN_API_KEY=yyyyyy \
+lego --email you@example.com --dns porkbun --domains my.example.org run
+
Environment Variable Name | +Description | +
---|---|
PORKBUN_API_KEY |
+API key | +
PORKBUN_SECRET_API_KEY |
+secret API key | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Environment Variable Name | +Description | +
---|---|
PORKBUN_HTTP_TIMEOUT |
+API request timeout | +
PORKBUN_POLLING_INTERVAL |
+Time between DNS propagation check | +
PORKBUN_PROPAGATION_TIMEOUT |
+Maximum waiting time for DNS propagation | +
PORKBUN_TTL |
+The TTL of the TXT record used for the DNS challenge | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Configuration for Rackspace.
+rackspace
Here is an example bash command using the Rackspace provider:
+RACKSPACE_USER=xxxx \
+RACKSPACE_API_KEY=yyyy \
+lego --email you@example.com --dns rackspace --domains my.example.org run
+
Environment Variable Name | +Description | +
---|---|
RACKSPACE_API_KEY |
+API key | +
RACKSPACE_USER |
+API user | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Environment Variable Name | +Description | +
---|---|
RACKSPACE_HTTP_TIMEOUT |
+API request timeout | +
RACKSPACE_POLLING_INTERVAL |
+Time between DNS propagation check | +
RACKSPACE_PROPAGATION_TIMEOUT |
+Maximum waiting time for DNS propagation | +
RACKSPACE_TTL |
+The TTL of the TXT record used for the DNS challenge | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Configuration for RcodeZero.
+rcodezero
Here is an example bash command using the RcodeZero provider:
+RCODEZERO_API_TOKEN=<mytoken> \
+lego --email you@example.com --dns rcodezero --domains my.example.org run
+
Environment Variable Name | +Description | +
---|---|
RCODEZERO_API_TOKEN |
+API token | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Environment Variable Name | +Description | +
---|---|
RCODEZERO_HTTP_TIMEOUT |
+API request timeout | +
RCODEZERO_POLLING_INTERVAL |
+Time between DNS propagation check | +
RCODEZERO_PROPAGATION_TIMEOUT |
+Maximum waiting time for DNS propagation | +
RCODEZERO_TTL |
+The TTL of the TXT record used for the DNS challenge | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Generate your API Token via https://my.rcodezero.at with the ACME
permissions.
+This are special tokens with limited access for ACME requests only.
RcodeZero is an Anycast Network so the distribution of the DNS01-Challenge can take up to 2 minutes.
+Configuration for reg.ru.
+regru
Here is an example bash command using the reg.ru provider:
+REGRU_USERNAME=xxxxxx \
+REGRU_PASSWORD=yyyyyy \
+lego --email you@example.com --dns regru --domains my.example.org run
+
Environment Variable Name | +Description | +
---|---|
REGRU_PASSWORD |
+API password | +
REGRU_USERNAME |
+API username | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Environment Variable Name | +Description | +
---|---|
REGRU_HTTP_TIMEOUT |
+API request timeout | +
REGRU_POLLING_INTERVAL |
+Time between DNS propagation check | +
REGRU_PROPAGATION_TIMEOUT |
+Maximum waiting time for DNS propagation | +
REGRU_TTL |
+The TTL of the TXT record used for the DNS challenge | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Configuration for RFC2136.
+rfc2136
Here is an example bash command using the RFC2136 provider:
+RFC2136_NAMESERVER=127.0.0.1 \
+RFC2136_TSIG_KEY=lego \
+RFC2136_TSIG_ALGORITHM=hmac-sha256. \
+RFC2136_TSIG_SECRET=YWJjZGVmZGdoaWprbG1ub3BxcnN0dXZ3eHl6MTIzNDU= \
+lego --email you@example.com --dns rfc2136 --domains my.example.org run
+
+## ---
+
+keyname=lego; keyfile=lego.key; tsig-keygen $keyname > $keyfile
+
+RFC2136_NAMESERVER=127.0.0.1 \
+RFC2136_TSIG_KEY="$keyname" \
+RFC2136_TSIG_ALGORITHM="$( awk -F'[ ";]' '/algorithm/ { print $2 }' $keyfile )." \
+RFC2136_TSIG_SECRET="$( awk -F'[ ";]' '/secret/ { print $3 }' $keyfile )" \
+lego --email you@example.com --dns rfc2136 --domains my.example.org run
+
Environment Variable Name | +Description | +
---|---|
RFC2136_NAMESERVER |
+Network address in the form “host” or “host:port” | +
RFC2136_TSIG_ALGORITHM |
+TSIG algorithm. See miekg/dns#tsig.go for supported values. To disable TSIG authentication, leave the RFC2136_TSIG* variables unset. |
+
RFC2136_TSIG_KEY |
+Name of the secret key as defined in DNS server configuration. To disable TSIG authentication, leave the RFC2136_TSIG* variables unset. |
+
RFC2136_TSIG_SECRET |
+Secret key payload. To disable TSIG authentication, leave the RFC2136_TSIG* variables unset. |
+
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Environment Variable Name | +Description | +
---|---|
RFC2136_DNS_TIMEOUT |
+API request timeout | +
RFC2136_POLLING_INTERVAL |
+Time between DNS propagation check | +
RFC2136_PROPAGATION_TIMEOUT |
+Maximum waiting time for DNS propagation | +
RFC2136_SEQUENCE_INTERVAL |
+Time between sequential requests | +
RFC2136_TTL |
+The TTL of the TXT record used for the DNS challenge | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Configuration for RimuHosting.
+rimuhosting
Here is an example bash command using the RimuHosting provider:
+RIMUHOSTING_API_KEY=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx \
+lego --email you@example.com --dns rimuhosting --domains my.example.org run
+
Environment Variable Name | +Description | +
---|---|
RIMUHOSTING_API_KEY |
+User API key | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Environment Variable Name | +Description | +
---|---|
RIMUHOSTING_HTTP_TIMEOUT |
+API request timeout | +
RIMUHOSTING_POLLING_INTERVAL |
+Time between DNS propagation check | +
RIMUHOSTING_PROPAGATION_TIMEOUT |
+Maximum waiting time for DNS propagation | +
RIMUHOSTING_TTL |
+The TTL of the TXT record used for the DNS challenge | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Configuration for Amazon Route 53.
+route53
Here is an example bash command using the Amazon Route 53 provider:
+AWS_ACCESS_KEY_ID=your_key_id \
+AWS_SECRET_ACCESS_KEY=your_secret_access_key \
+AWS_REGION=aws-region \
+AWS_HOSTED_ZONE_ID=your_hosted_zone_id \
+ --domains example.com --email your_example@email.com --dns route53 --accept-tos=true run
+
Environment Variable Name | +Description | +
---|---|
AWS_ACCESS_KEY_ID |
+Managed by the AWS client. Access key ID (AWS_ACCESS_KEY_ID_FILE is not supported, use AWS_SHARED_CREDENTIALS_FILE instead) |
+
AWS_ASSUME_ROLE_ARN |
+Managed by the AWS Role ARN (AWS_ASSUME_ROLE_ARN_FILE is not supported) |
+
AWS_EXTERNAL_ID |
+Managed by STS AssumeRole API operation (AWS_EXTERNAL_ID_FILE is not supported) |
+
AWS_HOSTED_ZONE_ID |
+Override the hosted zone ID. | +
AWS_PROFILE |
+Managed by the AWS client (AWS_PROFILE_FILE is not supported) |
+
AWS_REGION |
+Managed by the AWS client (AWS_REGION_FILE is not supported) |
+
AWS_SDK_LOAD_CONFIG |
+Managed by the AWS client. Retrieve the region from the CLI config file (AWS_SDK_LOAD_CONFIG_FILE is not supported) |
+
AWS_SECRET_ACCESS_KEY |
+Managed by the AWS client. Secret access key (AWS_SECRET_ACCESS_KEY_FILE is not supported, use AWS_SHARED_CREDENTIALS_FILE instead) |
+
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Environment Variable Name | +Description | +
---|---|
AWS_MAX_RETRIES |
+The number of maximum returns the service will use to make an individual API request | +
AWS_POLLING_INTERVAL |
+Time between DNS propagation check | +
AWS_PROPAGATION_TIMEOUT |
+Maximum waiting time for DNS propagation | +
AWS_SHARED_CREDENTIALS_FILE |
+Managed by the AWS client. Shared credentials file. | +
AWS_TTL |
+The TTL of the TXT record used for the DNS challenge | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
AWS Credentials are automatically detected in the following locations and prioritized in the following order:
+AWS_ACCESS_KEY_ID
, AWS_SECRET_ACCESS_KEY
, [AWS_SESSION_TOKEN
]~/.aws/credentials
, profiles can be specified using AWS_PROFILE
)The AWS Region is automatically detected in the following locations and prioritized in the following order:
+AWS_REGION
AWS_SDK_LOAD_CONFIG
is set (defaults to ~/.aws/config
, profiles can be specified using AWS_PROFILE
)If AWS_HOSTED_ZONE_ID
is not set, Lego tries to determine the correct public hosted zone via the FQDN.
See also:
+ +The following IAM policy document grants access to the required APIs needed by lego to complete the DNS challenge. +A word of caution: +These permissions grant write access to any DNS record in any hosted zone, +so it is recommended to narrow them down as much as possible if you are using this policy in production.
+{
+ "Version": "2012-10-17",
+ "Statement": [
+ {
+ "Effect": "Allow",
+ "Action": [
+ "route53:GetChange",
+ "route53:ChangeResourceRecordSets",
+ "route53:ListResourceRecordSets"
+ ],
+ "Resource": [
+ "arn:aws:route53:::hostedzone/*",
+ "arn:aws:route53:::change/*"
+ ]
+ },
+ {
+ "Effect": "Allow",
+ "Action": "route53:ListHostedZonesByName",
+ "Resource": "*"
+ }
+ ]
+}
+
The following AWS IAM policy document describes least privilege permissions required for lego to complete the DNS challenge.
+Write access is limited to a specified hosted zone’s DNS TXT records with a key of _acme-challenge.example.com
.
+Replace Z11111112222222333333
with your hosted zone ID and example.com
with your domain name to use this policy.
{
+ "Version": "2012-10-17",
+ "Statement": [
+ {
+ "Effect": "Allow",
+ "Action": "route53:GetChange",
+ "Resource": "arn:aws:route53:::change/*"
+ },
+ {
+ "Effect": "Allow",
+ "Action": "route53:ListHostedZonesByName",
+ "Resource": "*"
+ },
+ {
+ "Effect": "Allow",
+ "Action": [
+ "route53:ListResourceRecordSets"
+ ],
+ "Resource": [
+ "arn:aws:route53:::hostedzone/Z11111112222222333333"
+ ]
+ },
+ {
+ "Effect": "Allow",
+ "Action": [
+ "route53:ChangeResourceRecordSets"
+ ],
+ "Resource": [
+ "arn:aws:route53:::hostedzone/Z11111112222222333333"
+ ],
+ "Condition": {
+ "ForAllValues:StringEquals": {
+ "route53:ChangeResourceRecordSetsNormalizedRecordNames": [
+ "_acme-challenge.example.com"
+ ],
+ "route53:ChangeResourceRecordSetsRecordTypes": [
+ "TXT"
+ ]
+ }
+ }
+ }
+ ]
+}
+
Configuration for UKFast SafeDNS.
+safedns
Here is an example bash command using the UKFast SafeDNS provider:
+SAFEDNS_AUTH_TOKEN=xxxxxx \
+lego --email you@example.com --dns safedns --domains my.example.org run
+
Environment Variable Name | +Description | +
---|---|
SAFEDNS_AUTH_TOKEN |
+Authentication token | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Environment Variable Name | +Description | +
---|---|
SAFEDNS_HTTP_TIMEOUT |
+API request timeout | +
SAFEDNS_POLLING_INTERVAL |
+Time between DNS propagation check | +
SAFEDNS_PROPAGATION_TIMEOUT |
+Maximum waiting time for DNS propagation | +
SAFEDNS_TTL |
+The TTL of the TXT record used for the DNS challenge | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Configuration for Sakura Cloud.
+sakuracloud
Here is an example bash command using the Sakura Cloud provider:
+SAKURACLOUD_ACCESS_TOKEN=xxxxx \
+SAKURACLOUD_ACCESS_TOKEN_SECRET=yyyyy \
+lego --email you@example.com --dns sakuracloud --domains my.example.org run
+
Environment Variable Name | +Description | +
---|---|
SAKURACLOUD_ACCESS_TOKEN |
+Access token | +
SAKURACLOUD_ACCESS_TOKEN_SECRET |
+Access token secret | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Environment Variable Name | +Description | +
---|---|
SAKURACLOUD_HTTP_TIMEOUT |
+API request timeout | +
SAKURACLOUD_POLLING_INTERVAL |
+Time between DNS propagation check | +
SAKURACLOUD_PROPAGATION_TIMEOUT |
+Maximum waiting time for DNS propagation | +
SAKURACLOUD_TTL |
+The TTL of the TXT record used for the DNS challenge | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Configuration for Scaleway.
+scaleway
Here is an example bash command using the Scaleway provider:
+SCALEWAY_API_TOKEN=xxxxxxx-xxxxx-xxxx-xxx-xxxxxx \
+lego --email you@example.com --dns scaleway --domains my.example.org run
+
Environment Variable Name | +Description | +
---|---|
SCALEWAY_API_TOKEN |
+API token | +
SCALEWAY_PROJECT_ID |
+Project to use (optional) | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Environment Variable Name | +Description | +
---|---|
SCALEWAY_POLLING_INTERVAL |
+Time between DNS propagation check | +
SCALEWAY_PROPAGATION_TIMEOUT |
+Maximum waiting time for DNS propagation | +
SCALEWAY_TTL |
+The TTL of the TXT record used for the DNS challenge | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Configuration for Selectel.
+selectel
Here is an example bash command using the Selectel provider:
+SELECTEL_API_TOKEN=xxxxx \
+lego --email you@example.com --dns selectel --domains my.example.org run
+
Environment Variable Name | +Description | +
---|---|
SELECTEL_API_TOKEN |
+API token | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Environment Variable Name | +Description | +
---|---|
SELECTEL_BASE_URL |
+API endpoint URL | +
SELECTEL_HTTP_TIMEOUT |
+API request timeout | +
SELECTEL_POLLING_INTERVAL |
+Time between DNS propagation check | +
SELECTEL_PROPAGATION_TIMEOUT |
+Maximum waiting time for DNS propagation | +
SELECTEL_TTL |
+The TTL of the TXT record used for the DNS challenge | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Configuration for Servercow.
+servercow
Here is an example bash command using the Servercow provider:
+SERVERCOW_USERNAME=xxxxxxxx \
+SERVERCOW_PASSWORD=xxxxxxxx \
+lego --email you@example.com --dns servercow --domains my.example.org run
+
Environment Variable Name | +Description | +
---|---|
SERVERCOW_PASSWORD |
+API password | +
SERVERCOW_USERNAME |
+API username | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Environment Variable Name | +Description | +
---|---|
SERVERCOW_HTTP_TIMEOUT |
+API request timeout | +
SERVERCOW_POLLING_INTERVAL |
+Time between DNS propagation check | +
SERVERCOW_PROPAGATION_TIMEOUT |
+Maximum waiting time for DNS propagation | +
SERVERCOW_TTL |
+The TTL of the TXT record used for the DNS challenge | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Configuration for Simply.com.
+simply
Here is an example bash command using the Simply.com provider:
+SIMPLY_ACCOUNT_NAME=xxxxxx \
+SIMPLY_API_KEY=yyyyyy \
+lego --email you@example.com --dns simply --domains my.example.org run
+
Environment Variable Name | +Description | +
---|---|
SIMPLY_ACCOUNT_NAME |
+Account name | +
SIMPLY_API_KEY |
+API key | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Environment Variable Name | +Description | +
---|---|
SIMPLY_HTTP_TIMEOUT |
+API request timeout | +
SIMPLY_POLLING_INTERVAL |
+Time between DNS propagation check | +
SIMPLY_PROPAGATION_TIMEOUT |
+Maximum waiting time for DNS propagation | +
SIMPLY_TTL |
+The TTL of the TXT record used for the DNS challenge | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Configuration for Sonic.
+sonic
Here is an example bash command using the Sonic provider:
+SONIC_USER_ID=12345 \
+SONIC_API_KEY=4d6fbf2f9ab0fa11697470918d37625851fc0c51 \
+lego --email you@example.com --dns sonic --domains my.example.org run
+
Environment Variable Name | +Description | +
---|---|
SONIC_API_KEY |
+API Key | +
SONIC_USER_ID |
+User ID | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Environment Variable Name | +Description | +
---|---|
SONIC_HTTP_TIMEOUT |
+API request timeout | +
SONIC_POLLING_INTERVAL |
+Time between DNS propagation check | +
SONIC_PROPAGATION_TIMEOUT |
+Maximum waiting time for DNS propagation | +
SONIC_SEQUENCE_INTERVAL |
+Time between sequential requests | +
SONIC_TTL |
+The TTL of the TXT record used for the DNS challenge | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
The API keys must be generated by calling the dyndns/api_key
endpoint.
Example:
+$ curl -X POST -H "Content-Type: application/json" --data '{"username":"notarealuser","password":"notarealpassword","hostname":"example.com"}' https://public-api.sonic.net/dyndns/api_key
+{"userid":"12345","apikey":"4d6fbf2f9ab0fa11697470918d37625851fc0c51","result":200,"message":"OK"}
+
See https://public-api.sonic.net/dyndns/#requesting_an_api_key for additional details.
+This userid
and apikey
combo allow modifications to any DNS entries connected to the managed domain (hostname).
Hostname should be the toplevel domain managed e.g example.com
not www.example.com
.
Configuration for Stackpath.
+stackpath
Here is an example bash command using the Stackpath provider:
+STACKPATH_CLIENT_ID=xxxxx \
+STACKPATH_CLIENT_SECRET=yyyyy \
+STACKPATH_STACK_ID=zzzzz \
+lego --email you@example.com --dns stackpath --domains my.example.org run
+
Environment Variable Name | +Description | +
---|---|
STACKPATH_CLIENT_ID |
+Client ID | +
STACKPATH_CLIENT_SECRET |
+Client secret | +
STACKPATH_STACK_ID |
+Stack ID | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Environment Variable Name | +Description | +
---|---|
STACKPATH_POLLING_INTERVAL |
+Time between DNS propagation check | +
STACKPATH_PROPAGATION_TIMEOUT |
+Maximum waiting time for DNS propagation | +
STACKPATH_TTL |
+The TTL of the TXT record used for the DNS challenge | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Configuration for Tencent Cloud DNS.
+tencentcloud
Here is an example bash command using the Tencent Cloud DNS provider:
+TENCENTCLOUD_SECRET_ID=abcdefghijklmnopqrstuvwx \
+TENCENTCLOUD_SECRET_KEY=your-secret-key \
+lego --email you@example.com --dns tencentcloud --domains my.example.org run
+
Environment Variable Name | +Description | +
---|---|
TENCENTCLOUD_SECRET_ID |
+Access key ID | +
TENCENTCLOUD_SECRET_KEY |
+Access Key secret | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Environment Variable Name | +Description | +
---|---|
TENCENTCLOUD_HTTP_TIMEOUT |
+API request timeout | +
TENCENTCLOUD_POLLING_INTERVAL |
+Time between DNS propagation check | +
TENCENTCLOUD_PROPAGATION_TIMEOUT |
+Maximum waiting time for DNS propagation | +
TENCENTCLOUD_REGION |
+Region | +
TENCENTCLOUD_SESSION_TOKEN |
+Access Key token | +
TENCENTCLOUD_TTL |
+The TTL of the TXT record used for the DNS challenge | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Configuration for TransIP.
+transip
Here is an example bash command using the TransIP provider:
+TRANSIP_ACCOUNT_NAME = "Account name" \
+TRANSIP_PRIVATE_KEY_PATH = "transip.key" \
+lego --email you@example.com --dns transip --domains my.example.org run
+
Environment Variable Name | +Description | +
---|---|
TRANSIP_ACCOUNT_NAME |
+Account name | +
TRANSIP_PRIVATE_KEY_PATH |
+Private key path | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Environment Variable Name | +Description | +
---|---|
TRANSIP_POLLING_INTERVAL |
+Time between DNS propagation check | +
TRANSIP_PROPAGATION_TIMEOUT |
+Maximum waiting time for DNS propagation | +
TRANSIP_TTL |
+The TTL of the TXT record used for the DNS challenge | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Configuration for Ultradns.
+ultradns
Here is an example bash command using the Ultradns provider:
+ULTRADNS_USERNAME=username \
+ULTRADNS_PASSWORD=password \
+lego --email you@example.com --dns ultradns --domains my.example.org run
+
Environment Variable Name | +Description | +
---|---|
ULTRADNS_PASSWORD |
+API Password | +
ULTRADNS_USERNAME |
+API Username | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Environment Variable Name | +Description | +
---|---|
ULTRADNS_ENDPOINT |
+API endpoint URL, defaults to https://api.ultradns.com/ | +
ULTRADNS_POLLING_INTERVAL |
+Time between DNS propagation check | +
ULTRADNS_PROPAGATION_TIMEOUT |
+Maximum waiting time for DNS propagation | +
ULTRADNS_TTL |
+The TTL of the TXT record used for the DNS challenge | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Configuration for Variomedia.
+variomedia
Here is an example bash command using the Variomedia provider:
+VARIOMEDIA_API_TOKEN=xxxx \
+lego --email you@example.com --dns variomedia --domains my.example.org run
+
Environment Variable Name | +Description | +
---|---|
VARIOMEDIA_API_TOKEN |
+API token | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Environment Variable Name | +Description | +
---|---|
DODE_SEQUENCE_INTERVAL |
+Time between sequential requests | +
VARIOMEDIA_HTTP_TIMEOUT |
+API request timeout | +
VARIOMEDIA_POLLING_INTERVAL |
+Time between DNS propagation check | +
VARIOMEDIA_PROPAGATION_TIMEOUT |
+Maximum waiting time for DNS propagation | +
VARIOMEDIA_TTL |
+The TTL of the TXT record used for the DNS challenge | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Configuration for VegaDNS.
+vegadns
Please contribute by adding a CLI example.
+Environment Variable Name | +Description | +
---|---|
SECRET_VEGADNS_KEY |
+API key | +
SECRET_VEGADNS_SECRET |
+API secret | +
VEGADNS_URL |
+API endpoint URL | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Environment Variable Name | +Description | +
---|---|
VEGADNS_POLLING_INTERVAL |
+Time between DNS propagation check | +
VEGADNS_PROPAGATION_TIMEOUT |
+Maximum waiting time for DNS propagation | +
VEGADNS_TTL |
+The TTL of the TXT record used for the DNS challenge | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Configuration for Vercel.
+vercel
Here is an example bash command using the Vercel provider:
+VERCEL_API_TOKEN=xxxxxx \
+lego --email you@example.com --dns vercel --domains my.example.org run
+
Environment Variable Name | +Description | +
---|---|
VERCEL_API_TOKEN |
+Authentication token | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Environment Variable Name | +Description | +
---|---|
VERCEL_HTTP_TIMEOUT |
+API request timeout | +
VERCEL_POLLING_INTERVAL |
+Time between DNS propagation check | +
VERCEL_PROPAGATION_TIMEOUT |
+Maximum waiting time for DNS propagation | +
VERCEL_TEAM_ID |
+Team ID (ex: team_xxxxxxxxxxxxxxxxxxxxxxxx) | +
VERCEL_TTL |
+The TTL of the TXT record used for the DNS challenge | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Configuration for Versio.[nl|eu|uk].
+versio
Here is an example bash command using the Versio.[nl|eu|uk] provider:
+VERSIO_USERNAME=<your login> \
+VERSIO_PASSWORD=<your password> \
+lego --email you@example.com --dns versio --domains my.example.org run
+
Environment Variable Name | +Description | +
---|---|
VERSIO_PASSWORD |
+Basic authentication password | +
VERSIO_USERNAME |
+Basic authentication username | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Environment Variable Name | +Description | +
---|---|
VERSIO_ENDPOINT |
+The endpoint URL of the API Server | +
VERSIO_HTTP_TIMEOUT |
+API request timeout | +
VERSIO_POLLING_INTERVAL |
+Time between DNS propagation check | +
VERSIO_PROPAGATION_TIMEOUT |
+Maximum waiting time for DNS propagation | +
VERSIO_SEQUENCE_INTERVAL |
+Time between sequential requests, default 60s | +
VERSIO_TTL |
+The TTL of the TXT record used for the DNS challenge | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
To test with the sandbox environment set VERSIO_ENDPOINT=https://www.versio.nl/testapi/v1/
Configuration for VinylDNS.
+vinyldns
Here is an example bash command using the VinylDNS provider:
+VINYLDNS_ACCESS_KEY=xxxxxx \
+VINYLDNS_SECRET_KEY=yyyyy \
+VINYLDNS_HOST=https://api.vinyldns.example.org:9443 \
+lego --email you@example.com --dns vinyldns --domains my.example.org run
+
Environment Variable Name | +Description | +
---|---|
VINYLDNS_ACCESS_KEY |
+The VinylDNS API key | +
VINYLDNS_HOST |
+The VinylDNS API URL | +
VINYLDNS_SECRET_KEY |
+The VinylDNS API Secret key | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Environment Variable Name | +Description | +
---|---|
VINYLDNS_POLLING_INTERVAL |
+Time between DNS propagation check | +
VINYLDNS_PROPAGATION_TIMEOUT |
+Maximum waiting time for DNS propagation | +
VINYLDNS_TTL |
+The TTL of the TXT record used for the DNS challenge | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
The vinyldns integration makes use of dotted hostnames to ease permission management. +Users are required to have DELETE ACL level or zone admin permissions on the VinylDNS zone containing the target host.
+Configuration for VK Cloud.
+vkcloud
Here is an example bash command using the VK Cloud provider:
+VK_CLOUD_PROJECT_ID="<your_project_id>" \
+VK_CLOUD_USERNAME="<your_email>" \
+VK_CLOUD_PASSWORD="<your_password>" \
+lego --email you@example.com --dns vkcloud --domains "example.org" --domains "*.example.org" run
+
Environment Variable Name | +Description | +
---|---|
VK_CLOUD_PASSWORD |
+Password for VK Cloud account | +
VK_CLOUD_PROJECT_ID |
+String ID of project in VK Cloud | +
VK_CLOUD_USERNAME |
+Email of VK Cloud account | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Environment Variable Name | +Description | +
---|---|
VK_CLOUD_DNS_ENDPOINT |
+URL of DNS API. Defaults to https://mcs.mail.ru/public-dns but can be changed for usage with private clouds | +
VK_CLOUD_DOMAIN_NAME |
+Openstack users domain name. Defaults to users but can be changed for usage with private clouds |
+
VK_CLOUD_IDENTITY_ENDPOINT |
+URL of OpenStack Auth API, Defaults to https://infra.mail.ru:35357/v3/ but can be changed for usage with private clouds | +
VK_CLOUD_POLLING_INTERVAL |
+Time between DNS propagation check | +
VK_CLOUD_PROPAGATION_TIMEOUT |
+Maximum waiting time for DNS propagation | +
VK_CLOUD_TTL |
+The TTL of the TXT record used for the DNS challenge | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
You can find all required and additional information on “Project/Keys” page of your cloud.
+ENV Variable | +Parameter from page | +
---|---|
VK_CLOUD_PROJECT_ID | +Project ID | +
VK_CLOUD_USERNAME | +Username | +
VK_CLOUD_DOMAIN_NAME | +User Domain Name | +
VK_CLOUD_IDENTITY_ENDPOINT | +Identity endpoint | +
Configuration for Vscale.
+vscale
Here is an example bash command using the Vscale provider:
+VSCALE_API_TOKEN=xxxxx \
+lego --email you@example.com --dns vscale --domains my.example.org run
+
Environment Variable Name | +Description | +
---|---|
VSCALE_API_TOKEN |
+API token | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Environment Variable Name | +Description | +
---|---|
VSCALE_BASE_URL |
+API endpoint URL | +
VSCALE_HTTP_TIMEOUT |
+API request timeout | +
VSCALE_POLLING_INTERVAL |
+Time between DNS propagation check | +
VSCALE_PROPAGATION_TIMEOUT |
+Maximum waiting time for DNS propagation | +
VSCALE_TTL |
+The TTL of the TXT record used for the DNS challenge | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Configuration for Vultr.
+vultr
Here is an example bash command using the Vultr provider:
+VULTR_API_KEY=xxxxx \
+lego --email you@example.com --dns vultr --domains my.example.org run
+
Environment Variable Name | +Description | +
---|---|
VULTR_API_KEY |
+API key | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Environment Variable Name | +Description | +
---|---|
VULTR_HTTP_TIMEOUT |
+API request timeout | +
VULTR_POLLING_INTERVAL |
+Time between DNS propagation check | +
VULTR_PROPAGATION_TIMEOUT |
+Maximum waiting time for DNS propagation | +
VULTR_TTL |
+The TTL of the TXT record used for the DNS challenge | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Configuration for Websupport.
+websupport
Here is an example bash command using the Websupport provider:
+WEBSUPPORT_API_KEY="xxxxxxxxxxxxxxxxxxxxx" \
+WEBSUPPORT_SECRET="yyyyyyyyyyyyyyyyyyyyy" \
+lego --email myemail@example.com --dns websupport --domains my.example.org run
+
Environment Variable Name | +Description | +
---|---|
WEBSUPPORT_API_KEY |
+API key | +
WEBSUPPORT_SECRET |
+API secret | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Environment Variable Name | +Description | +
---|---|
WEBSUPPORT_HTTP_TIMEOUT |
+API request timeout | +
WEBSUPPORT_POLLING_INTERVAL |
+Time between DNS propagation check | +
WEBSUPPORT_PROPAGATION_TIMEOUT |
+Maximum waiting time for DNS propagation | +
WEBSUPPORT_SEQUENCE_INTERVAL |
+Time between sequential requests | +
WEBSUPPORT_TTL |
+The TTL of the TXT record used for the DNS challenge | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Configuration for WEDOS.
+wedos
Here is an example bash command using the WEDOS provider:
+WEDOS_USERNAME=xxxxxxxx \
+WEDOS_WAPI_PASSWORD=xxxxxxxx \
+lego --email you@example.com --dns wedos --domains my.example.org run
+
Environment Variable Name | +Description | +
---|---|
WEDOS_USERNAME |
+Username is the same as for the admin account | +
WEDOS_WAPI_PASSWORD |
+Password needs to be generated and IP allowed in the admin interface | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Environment Variable Name | +Description | +
---|---|
WEDOS_HTTP_TIMEOUT |
+API request timeout | +
WEDOS_POLLING_INTERVAL |
+Time between DNS propagation check | +
WEDOS_PROPAGATION_TIMEOUT |
+Maximum waiting time for DNS propagation | +
WEDOS_TTL |
+The TTL of the TXT record used for the DNS challenge | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Configuration for Yandex PDD.
+yandex
Here is an example bash command using the Yandex PDD provider:
+YANDEX_PDD_TOKEN=<your PDD Token> \
+lego --email you@example.com --dns yandex --domains my.example.org run
+
Environment Variable Name | +Description | +
---|---|
YANDEX_PDD_TOKEN |
+Basic authentication username | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Environment Variable Name | +Description | +
---|---|
YANDEX_HTTP_TIMEOUT |
+API request timeout | +
YANDEX_POLLING_INTERVAL |
+Time between DNS propagation check | +
YANDEX_PROPAGATION_TIMEOUT |
+Maximum waiting time for DNS propagation | +
YANDEX_TTL |
+The TTL of the TXT record used for the DNS challenge | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Configuration for Yandex Cloud.
+yandexcloud
Here is an example bash command using the Yandex Cloud provider:
+YANDEX_CLOUD_IAM_TOKEN=<base64_IAM_token> \
+YANDEX_CLOUD_FOLDER_ID=<folder/project_id> \
+lego --email you@example.com --dns yandexcloud --domains "example.org" --domains "*.example.org" run
+
+# ---
+
+YANDEX_CLOUD_IAM_TOKEN=$(echo '{ \
+ "id": "<string id>", \
+ "service_account_id": "<string id>", \
+ "created_at": "<datetime>", \
+ "key_algorithm": "RSA_2048", \
+ "public_key": "-----BEGIN PUBLIC KEY-----<rsa public key>-----END PUBLIC KEY-----", \
+ "private_key": "-----BEGIN PRIVATE KEY-----<rsa private key>-----END PRIVATE KEY-----" \
+}' | base64) \
+YANDEX_CLOUD_FOLDER_ID=<yandex cloud folder(project) id> \
+lego --email you@example.com --dns yandexcloud --domains "example.org" --domains "*.example.org" run
+
Environment Variable Name | +Description | +
---|---|
YANDEX_CLOUD_FOLDER_ID |
+The string id of folder (aka project) in Yandex Cloud | +
YANDEX_CLOUD_IAM_TOKEN |
+The base64 encoded json which contains inforamtion about iam token of serivce account with dns.admin permissions |
+
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Environment Variable Name | +Description | +
---|---|
YANDEX_CLOUD_POLLING_INTERVAL |
+Time between DNS propagation check | +
YANDEX_CLOUD_PROPAGATION_TIMEOUT |
+Maximum waiting time for DNS propagation | +
YANDEX_CLOUD_TTL |
+The TTL of the TXT record used for the DNS challenge | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
The simplest way to retrieve IAM access token is usage of yc-cli, +follow docs to get it
+yc iam key create --service-account-name my-robot --output key.json
+cat key.json | base64
+
Configuration for Zone.ee.
+zoneee
Here is an example bash command using the Zone.ee provider:
+ZONEEE_API_USER=xxxxx \
+ZONEEE_API_KEY=yyyyy \
+lego --email you@example.com --dns zoneee --domains my.example.org run
+
Environment Variable Name | +Description | +
---|---|
ZONEEE_API_KEY |
+API key | +
ZONEEE_API_USER |
+API user | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Environment Variable Name | +Description | +
---|---|
ZONEEE_ENDPOINT |
+API endpoint URL | +
ZONEEE_HTTP_TIMEOUT |
+API request timeout | +
ZONEEE_POLLING_INTERVAL |
+Time between DNS propagation check | +
ZONEEE_PROPAGATION_TIMEOUT |
+Maximum waiting time for DNS propagation | +
ZONEEE_TTL |
+The TTL of the TXT record used for the DNS challenge | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Configuration for Zonomi.
+zonomi
Here is an example bash command using the Zonomi provider:
+ZONOMI_API_KEY=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx \
+lego --email you@example.com --dns zonomi --domains my.example.org run
+
Environment Variable Name | +Description | +
---|---|
ZONOMI_API_KEY |
+User API key | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
Environment Variable Name | +Description | +
---|---|
ZONOMI_HTTP_TIMEOUT |
+API request timeout | +
ZONOMI_POLLING_INTERVAL |
+Time between DNS propagation check | +
ZONOMI_PROPAGATION_TIMEOUT |
+Maximum waiting time for DNS propagation | +
ZONOMI_TTL |
+The TTL of the TXT record used for the DNS challenge | +
The environment variable names can be suffixed by _FILE
to reference a file instead of a value.
+More information here.
0B4e_4&=`Vk&Rt#g7)&xCJv6v@% z%;(>Eg7o{m!= #9oNeD- fwMHm}u0MCx>F`X2=Y~ zvJ_!&KWmqpdwLmjIVbmae96yy_ORg9pXpf-9IuRvUI-|3_@g6to2bUZ+5LK>I$oD= zY2d?8KsE0BUY9c sT{V^b0m&M z><)RD91{CUR4LIXLpI3X1EgsIQqif#-_%FlK+d)IEUUi_I z9`BB6bGyDJ<|ow0k%jXwxzH}e*321? uv`QN|wZY}Zk)hixBpaakOGl 3AwPbb0j-Oq0ecA-5YvbMXL4L@4$>d{~`M|h;S z+N@4-1SluxY4Yl|&)I(>P!~4olDb_R@0io2+UI-z@xlR^n*Yw)XmR6PgYCj5AT4um z-xP4e5-vWTF*+VaD{V&b{6;1DE6S^D5o$yThRXsu^ni<)3*Nbb&Q* u6!fP_I JxrL>KkklBrptqSm(c@FxGV^dKWx}0`1dei z(T+WS*@jLtBuCJxF6PweCUO|f7L8csUr9@bim?!%T_X-dM-k?I5Zm 3DOrA#NA6N&bT6uukiOa+u~B)#mtn@bP;GqVKIE_5Nq~ zYjE@DyLYm}_agU52HZkXOJg0O=56t!gpwZQamcZ~1%LXr+UBTMoOP5Vzy=A7Q(KNO z1M6Xo?YhGk4hM0N7GHv4**L_cd$h%puWGExPUj}P+dx>e<#a3k@HbNvK~|L)R$a63 zNs1+?0Mo;%a%YkvqiAkpJHq1G*X4`je0is nIRmqgoX@B1E%od8 yixEENY_@0y%4TAN9PNuaS$b}ciHD?5mWHXz8U#Xi zN=*V~gswMAK@#^?r>fs`YTF0aGe5W%nW?<6uJ-0nn1Kab;W@a2OX@x}bD}laf6a*P zgQ-b+rMtLaGq`xwH^H*{M(KDTh$yYRgs2Pn^%PW<8LVepO9o<0u~XHvj!z STIfag`yD|98t`Fs zpx;q1wKo}#K_2Q^=~ag$sezP5OjQF(g+?_> d!!T3aEf3u=h0Q%f!n z6z>L3!dCUkU(8=qZbG*&4$D_7za1YnUDlqCN!`L>+ZtnkHC_6z?H|3{9NCdxrd(@# zn-6rOG!?Bk*Bvcb5v mmD z#TS;J0TY)^G|x6cjnQV*(dLh703H;qyJwO<1$ctmz^Q3mdH&7n!o5nFmt1x2iRN;~ z=NvYkxN|&FuyH)liFj__>rkv*`Z16`Q9s~XPn4FQWs)lxF3FpM!V#VhAmuq3UpM`C zDrp &}Xt Y>oa0dfJ4!ob;rZzRLPRIP07gk0>>zi-kC?lDvNhA1fRf5 zIrk>y(x8vIWiDl{`};)GCB=G~&{$Jh{JqP(lHyK*lQJZ28vn3ZNdXD}F` oF5#?|ggRt6}7l%j9g--R@@C}Z?8Ae2XJt5Imv(p9_6_qxf_Jstl zuB+t6nYoddUrpKpYgvwyv`~VM)F%8VkWiEq%8d(M4GDf6$|gxWO}J~}LeY34(R>VX z0kh^it}+^4eP*}#RCPTPksskeu|$&;Mz-Vx(>zHsEWH3~BdwlwU!oWfAN908vHV0! zA#a0PWs4TmRA^V!!35`J^5D2(0|B?VWiA_zI-w}w#&ai}V~6tVI&iER1$A7B9{1O} z8^MYs&*`<}R2mde$xa32&ZrlbO~&$`L=RLQbrJBL2)hza*8$t(IWv #KOodq!xOxDt$MFpnhRF24J-@Rw()hZHKH zE?g$V9m<&FUL0I)DZD(w5r#0)91W4_LzI>|a?S?F2bToIC9yD~+cBB58}`@xZJSga z9(`(T-RSkjH*tsRbd~S&W+Y{ OY)fq^KI4ZpUbPXp_irG% z_uN8-P!Xw&A`tTYxYDmJ+5rZN(DHg|cEl`m*7PN)Ps(Wfqo8{zHA (v(PQ zV0_Q2FebbMNtomt&`R#z8Ql1N2_*$W=qtTPu;Vs7@BE{o5aCQ$q<3IKIKhrah87xK z$(q}M^@!S~{a>akEJR)?-RkocQzbKJU $zECXyr|xn6UVr>7(K12%__3-m*r)f_HY4*z+)1_w zZ9!%9Nw)W4Gqj)^2pyo#MoO}e{xkc~KD2S1m7Xhdg-b=& j5|S9FpirlQ7va =@`B8OCWTGoyogsAK7hrB z)_0LI=GVn KkWHrtMJuPZLVfV<4qGlH$dVgj9>_cdr@cn0OR&vyP@z>x=SK zwZ6ddTsQNdQqBWxl=<$5> !Bcp-q1Kwo+clDHG;jdMc`3yGA*C?dRN7iLxA>X4Tm>| zvGzb_Sm|z@S6b<>cir;jCeKx?_vOGr?V*k;qY6ijxuQU{&PsT#728-f2uz`uD4 ERkC$Nl(7!AJl9E=W5i~SBimA11m`emYF1Sh6 z+wDmWg8D`@e3hv%xE)hVbwyFJBwjSz-%V=4q+k=vJzGd&h&q%2ho_dSHRaf%f@cdE zOr # F2P*48btF0OenG-Y3>*o655(=B2az YjK`h*H=4Kc Ds=C?{z#g6KHCTyVwlhoW^8S1MksHiuY?H*$)%V4@MbtWXO=9 zr9y%V4ttaq4#kZi{a^0zq8O!}OA Zw^a#)U9u$nGBhuiIjR MRnoK&6_%f?0wT_mFQ*$mPUR6dixh@XvrDT@%Ix$crV<_j5<) zTIg6(9}wLE>WVBbnS+0ttmA0FLzXeQ(7{%k6Ff^IS*qBQ-5mSXaV9{?Y`%VjFjj#* z6reW|!_;vDVaF^Ex59Mpzuja7lv9zr8pM5xrg+WBEK>;yf0y6;h0M$7*l1RBiwQ^q zC3s(V|1KP0E+zgF|1pH;n0JbO&!ZV#UO^(K6_Ea=Y~kGFHApOJt&eF1*d^b&Q4%Lw zN8;Pd-PfSh7ZUrsN^|>C ~nP#@)+!NvV`wNCJ53TUXCF%?BRD=#j+zgo+ zx1t+Dy !)G}Jv#MktiPk|aHr1U!F5FzRaA4~WXSl@K0b-Vc({@cfhpA_(bY2F3MS?GPc> zD0*CuIlRz%0Z$Mi_qc?ybVrbL`0o}kZ00(2cVK6#8kJe-mk64P@J~0eXbTQCYp;Fv zZ;YPTq}Z&YXo=c*(vEF*BHJI?Ar*H&LrrYIVOUWYhT6`tJyp{NnfsB3mI;qTOi!Ug z5#Xn=>Vd=`n%1v?cBpu|-jieQjd*@%%h?7H80@N-EO2=#ju^XtNZIp7kN$iAwNet5 zN9=3;_=~gUpQ5O@xh$*=h$(fVR{cT}qq}?-bHt9}3K@yXNW#?3B?2j0d4ygS2>D(} zTjj}Z@AoD?chH|D;JeWkA_bFP %#~O= UD%8$)IX<&>7K{P@Y$z&&Qz5kqt zT@GEQbRR+8#1qX4PqYhn{WLu743T!l_avv?Ddqh(0Iuyd8xm@Mj@DNeB(LXjE?hcL zVCN#h;|`7`^$p$*SVz8Qu}XGY=qkr4-VCF8hM{@#F0L{oUVL62`im~aB}PJ*u(I(W zfz@>u%O|$BP}-qv2S-gjkAFAZ;hFQ+E@<%QiQXC&i82rdu2u3 h15z%@)kLSI_GB?g?77>UqZ6$ufKG>s| X}O&7FFNAib3Q`}Pp;pqpgh0yCcR@rZm+KDL`VR> z-%j9tQYD#OvOB?n@waP1WHef1I!q6;eQNZ=F9NzRnd(feKhGQ?v!ob %suDbG@_A$Dqihp2DY%wG8V>NQiv$RJ&1{&HIdn^DFv6kb$un(exQ~X~-M!Lfk`DE?Vb)GX-Gnh2>1S!!o?PAB%-nDgCK2fOD z)ZLL}EM4;k<>}n+qMfXTu4bl1(Lq)KM5u(L|6$${7O2k5gq0RL05kBQW{%Q61e`A= zh$s7gK`IvMc<^7b2TK^Daeq%jQ|luEb`Fez3}{#rn&1Ns84er-@|~;|^4Q|KtocLn zBQ_7D@9DR!B5&*aihX+c%z@LHAdWitx2Efs@w(+>lG OYYNyyRHS>@=gn-3t17&eGHqrd5WlpWOu&d(NhD_x;xZ-uf5s4F5ML@KT`D_sfqU z!9%>4dn+{~wj9G>%-nc`16wbF)d@AfYZc+eU@()0LPyzF0+~1`RD`5URRH917LaEL z(rLIK`N3f+YRDvRh`=zavZPpPbu$n6?cD94vfntIh8N-`8 65wdDx;6N{Gfv)XLLkaoAJAAK@t0N{U>Nw z!~NqZ3SKeW#QKJ)lSX$QR3ImA)&!>&2lq=SrwIy9)g+>N>E~XMOo5C7CV_ADSdcbZ z$g>7?QDmP@cJ^W^J0QCcjNLn#Nl;0|d0?T~nwd0c82;qebjF+PbrmD%D@UI_TS5_m zi6sW>D_C=B3@Wqdd;wA;V7kwzVQ7BzmB?L1k78)w=0iB*;Tf(wvYTdOHW&r^h-AdL zJz>B*mL7sMy=FFALT5X)rcv%6E2DJuNfbf>sy4g}8 Ff1S_FLF!Bq>(G0 zq;?D`@h`n9YbZ1Yki>vuOtM(%LDa!$(+S>;>tP@mVzcOn`&T`wVASJ*>oqjdSub(J zxJ9;mj{^`+V;O=7G4ny(WL&IdYQ$Rk2|a&S*_E!PP3kk|z~FmxHT6~{b#IIq!wO9S zv=}|Tw1}%cCF)Y$u_gQs=7=Q%ZkqMKpV&luj6vC N7kPh$38T4@0{1N%BXFlR@+3?fcu5i^;vXlEXZR}{a$y_{8V@f;oCc?0GT3OK-1 z&tDC4wTEqc6|&WsMl|eJB=#bZA#+cvBz5j?A#7H5ET-@c|8)i6XfmVX*D%ZN7ty%? zn2*jtTfZqmH_2s2>MYC&RwJL5wBOI1N#=B52_tuCGG!A{*%Dp|%>O%>CcZb{5T2#) z11qvV>I`%b^`ko$$`H)D+I891NJ}3qsUE_dUkZZKB628&52?8~SDOC%F?1(E>`Zep z)6XY`gR~B|@@gAH+=T{ZnFC5dcq2=!X_&C{?(4mnwh=oz*+In!qJn#oogX{2*jk3o zGhhQpnvo4Eg;6nwC6xNG-u>mWOgdKYKvKYq xO#wBz)v8c%#jJh_$wji`=Eh zs~6mjO=y_qYV??i%0f1k?}@Op4~Uz|z-IE^2j_C*U2)v6r(u{aK(8z(uV=zP=bESu zRI;f^H)R+hRlz2$-nRu|Xc}kkv#?W7xkiQym;V76y2&%~xR@m=rUiMmd+~p-=!K+} zApadxfJF;QM<_vsj--zycB9RXwL=I&4_^-rQ5;u-zMA`v+C 0d)^YnIWoa%!;T@BR*(ew|TQPH(Y7 ` z7we8$ +R7S}-mNdZKSr@|lk0O&S37^)Jxi#PY+h?AEs45{I0D9vDiYRx-!4 z{P0ABa%ia|=(%$G16`SC1%`C5fGMpvdri;~2Xz%lHwrDLBZad;*bv*UuNBdP8kK`h zK_2a2<-gC0DvsOFaGRW6KCH;ckU!I2G P|7K{nSi$psub+BzFqM28JvrR<9&xa3s%3NqtE|C7k zD9n@=KmlR`YhaM<)9B^@qX&uHEB1t@*(@!z2i~F(q+x&E6^SwgFZ)Cq)D(0S 3nN&-X_Kjtd2ll962Kj1` zkU6c9nmX?nasnuL77n5#-^tK%%ZzhXz%_87(^JL^?O~|)x~}wxL3;EDkvuT@#c;w@ zlQtGM1AxS|Qp7zKzoATHnfXlXsr3#gl5ss;fe?}IuZXwK4Nc|Am }iiU2->xCf{P3s?F zHn=;VZ-Np<)i@c@2kwgY)1Uj(fngEwC6LB2S{$EGMI`Y1oqNqvAY$4s=5J`LmPm{p zM#0w($S3+%b0jQ`?Ismc1wy#ai7O)CbW<`!7{Xq}Cl60oi3}{`D&V$wp_YmK84SFr z&m$Z(0s<4B+Ysz}pt>k6EOkfHlt^rpAC9BRH$*s~BxfUtioKVt!|%8^Z6kchv1V^4 z;j4GArTWF7<|cyl=Lhv?n=Vcq;RYfqxG{t#8%Ex#p3Ef$x#6DR-tf8c*Wt-Xq*= X|O` zxB@tUU~Jk~RucTLz-DN`nl3MkAoE?>n!OUwMqBi2-31n()C@WZZas}5U*@*T3`5>B z6oym62$7jY&E|kk&no>8nt$PRROxk;1qtnsB=$t p z+P_6%X$E*QNNcJGbc|%?pitw*0AeT8xM{eum@KoYZy5y}o7BIja}l5 0sXU$MrPk}w zKD7ktQ7A p!fL`QN0F(i3DaWo(p0vf)ZHkZ4k z;AB 2&1O)=>gKThZ4?rnDX+OOBN>7cRfBaBm1&?RA1~VLlQ!cY*h2Ak zz!XWPC2k0$o%Kl#fE2Y>(j*z;4q9NzLj-* $oEH0mIBH#Kg0>B zL_iYWZ3%24$NF?HhapI5vFSVe6qJPwj_N`c5m2h=atzgk9HC`z4WZM~#QthRBf!qK ze#3(jb(K%c^tiSHb&CcCAFq@XqeMH~p{l_axFc5J{b1P{(w{0i9HEML1JDs^h>LQ< zn$s@&4qg94)-xSoZs#>qqVq2?qzl+*7^@hqH7Y!XB!%-j6Gs@uyu$lm04qS$zW~si z%i#;BRUpptOGI;lrOBoN#K2VJAu0AYj^^8C#kV5Xb++->dSas2GLbV1jub|PcR=MU zpfv0<>5rl5nz81J2%4oOzW5N@y6q?y3g}QRL~XRUMPoHjcxf~E*+dO=4n>EoorZVG zHhRDNhX~8I&=seL!6@S>tP7lAHi#NCNFmn(;q ;^rXB=9P{6-|j)Bkg?Jk;c zj&06#@r?NP+FG{{ULip4Z3$c~0&`-jThG+ZZ;HJjTRj$p9 s$FAn3kW1Z?)7ygB 86Rign0uTe3Y))YD8#!(WDD=U^ZfZpTG|d5stn=hd zL5&2wGBO$$9Poyc%h`P`Q!r7IHrgzVSlY%s(>PK2EiXZlBvb|Fp&p_l)H*eDMQchK z0yChM_|E{qp1t${fR2rf@-7UBdqFpcC%;OXwJ~Vwcj$@rFh(`=<|Md-09S>FuSw)K zW|Oj{yZ3SeZ>j&GeP`qxGJ51?IKe9KW@Pa^@E1|yJPg_?AQBp|qFj|Fk$^%d*#yQ` zP+_cDv0G3OL6g=zab6Vrfj-XxaQSBv*i3>;4NbH)jJy}<{BhpQ^JSvo0e! b9h71}Y ze3N2 zT6J&`)U`(0wJcTY6I{9*0B& y&KYc-);(uE@>7geBnwrXMg&{2kUCB9F*mD8sh^};~#3azl?KWnP zEUFfm0)D__Bt$9_3IR~kQDRw&5->u_##t3gc$V9siKEboP6SVwoe~hN812xX3<5M; zLm4C2EKBZG4nj0bA4+;u)r3QJBDg(E$ZJGNu|_`&K@hB>tC)+Qx%s$a^#j}6tJ{L0 z*FZ2{m|SzV(W*!w2;@I2C$4dFOtF3_P+1Nrb}&_yItC<-K{DGBt#!kYLtIirW7k(5 zdA#YACS8h`+u%&ivfQotIp&n@v6}JfZ)$IAmKx{XUKg|yK}`4q97Cr0Zj_o}sM?g& zO(7@rG73h^OY@!XLH=zsJ) zFcUs?BQRbQgcz7ZEKRA2?7nGDWjd0WQ7mL5USJs%*DT`C2MpxlabOl@wzDC GxMh cgzl zs-T~@Bl8r+x1KcF(lKLxW)UO--G?s!h=d>2YO-w3o<^p#gaiMbFI3n5^-{pI{io(h zP%l8E#R@;2q!fyXFhO&7ln+(hk8i>qfR =r5*mxFl7l|e zHwJ8vp+FH36aaV1LXdG8mZ*u89zZe_R!Q6HuF(-J@MG|U2T-GhmLmxO_daM?01=LO z0k|Ou!Z>BsJIJfCwezS~D-=fd!%1idI(z83@Pta!P}#X5z@@K~Qjw7GQ>=0<>y n=&0x`;DG^gTTF*zAcR_PeVl~(c zSX^L*i?$3=7|zifmA;Zs;|Lsw*WhJcOim?@F!!DkYR;wp(X@~Nvkf9k>ngIeA^&Q# zF~SOxB07$`{%0{$SPX5F)fn`f3uTCs5fw<3Bt(fb)Mz-^N|HnjM@52HuXXw)a)XLA zXAT*Wyp3;`16%3HuHpzV@Z6 _!t4 |llRH#|b4cKa6?YZPY)$qRYS%Z8H&8c0 zu~(Re9kYhtVNJGMhJrLmY#d0bAi)zB843VHdn~dg!2>evql#4;{XUREW7@UBvf2Rk zYT!N6tcWx&1+4XX -DLtL+|w`LxvZW0&jy9QyAKee3-HHbNPQx04Xf zg}gQ{DNuZF)slnxucX(`XwTpFS4oN}R$VcV5mk@`5tyK}u~=h)5GpE$M1DX)c?NPY zX!+)db#KrJOhZWgBa%#6mC~#X0Hx5o3P4bdhA25 EX;5RKgXT^18BRh1}*15Q? z1P5#HYI@X5xMTl8F(hUOTb-Cjgv*WMhTbrXs;;ltnBT%O=-hlgnn5c8NyelJ)C-8$ zz?0ETamvrO--H=JYF$ajBsS_9){PVz6tlRXuGnv!b!3RL}qfV=D-eNC-sI{$2!t zdJC*(A@P2xz;_YI*iJy-+#$HU8AXIYnM`9Fq0tiZ03h9q^^2V?2YPB>2YgNrF!Hc~ z)*5YS4aY^QaXoD|fUS&;#!uq;04y92r)>w?mK&AW+&n@P>^<^f}@+LPZhoDnikQ zgpcsVBY~J+flDD6iV%7rMxD)B!b*uz$><^gA&8;2;%I&{4=-8d73j3E(lAC8E~tw% zeB0Mv<@lo4+zs3}F*6_(*nUBv#M`d7fti`ia5KcUcN%Jd?BA`zK3SO_Q8EZdPLU&D z{I4q=CMp*;zKRXEN+jn^09X~6$Q?>aVOr6dN=nYvQb}e5J5N4vhS}at%se56NgBM` z1CYVvHmgBIsKP|4$9a#Z4iH^$4s5)0;ypJ7YAUcp0BBe^iC+Cw!V8$OW2f0@vIgQT zqY`F82D0uNr%ljHxD(jf%>!^lG(ZToSl`LFJ#0k{bJ4xQalnmp-L^j55Cn1;g01s; zp!pdK42o;3pcm7s6|X;z4j|skXfl2mWC#FD+5zYigz|2gYuE?}WDn~>H)IWjpjv=p zM+~oBEz~&@NkfnmJ15{&zt#KW^JBT2UDARf0k}_WYQaD87$vT7^R;%&V_Cvs`iqvb z4AOit^&lF>Jj~4yJoGp4uVaqs%c{%_#?07UV3nbG4-5K+OGR!F8v+m+0vjc5$%7$2 z4j UV> sMH99gniiTbzze5j$}Xddw0(Y ztAu2%CW2d^ClkoxLyu0=IJ81R75%3&$%qGO?o9P;rR>NeDDV;kTYhW2z!_aez*wob zHJNK72n=e}EWH6Uhz0nhC(H#gIrSMWNXKNv>PoL>UzwhiNNR9CKK^4gjgV2Ja+pNy z0ZU#ex;--s<>#bKWk@#6_sjvY&Nh|iryN11j(pBBri-*65{O8*KZK$j^j!>wMG<(C zmh#VK4>79+BtMM+Ly{-3EP!#K8>9{pg7$5&-l;<7*a7tzO2PntBxjh?FcT{Xxt5WN zGFPOXWpANtU72zjr@(+anOzC#1dM22jyih~2rVSoTN`Jg4-8GegA8H|C|pfLQw*#A zV#9Yxm;O^Rf^>rndlibAKkXmpB@zMB=*Jd*SqKq;N)jirG5x9BbhmQa)@8Pn>%t1! z+%v%2P?~r>RKy}D+SuFqwxZQ3>^+u8rp$QH1hxDbAUUD3aj^``jR_qAj9Aa&SeTQD z2x2Bh2{A5nL)F|^aAq` ZL*P?A;x#KuI zda#G07|EvJXBI&-_{7A`BPemICS&NVA-n7&HBN5uxvqlM%)K7pY4F !3>Qm12@Kicrz0q6DZv zg^|PX*dhdzS uSQWMq7=3tE=1g(t#F(Lc~FuZAs&xplTlnngEW{fbSj30DJ!jzl=Wv2^B zWUyh*6s%eSjl$9BL}l@lez;N }s6k0Q`02$^C`dxvafSpjwmAA4b9_|@ngMht9O0x^Z)p Qm5Lt#R07;m<67S4O4J3)t4asm3KH_7{#^g;*MA+?0U|dDK=;0LjT^xRje3@zz zXG}tnLi1S-Bx6XF*6qO>lPN|@=2R9im)#i;7d*!0H8i{}8?!_kkpDn%hQQ|K6{A1k z(y{}WI$}doGC;BWnDC1Gi2_C;ZzZ4=ridSZQtY~GR?dNld&PBQSJJTU*WO?KV%ULd zY~a%IL#1{oWO+!&KI7dEM# zLhJ85dxDwN-nTKZ1K99f9w@yuvg18=wElR~6^PykgO4_Tb}n3PED~asf)@~#8>Ep& zvQ)?CL@w(v2~O3Jz>`1>tmYDE19e==zLXuG0X}V{5@2>%k|!4xa7QZ+l+|wQ0u9nXYh+C_40_G0~)BVbvwzYKWq>O=Rk`{4p>6 zH99OCsJJZUUK}RS?WJ0)$7>mYZ`&4utUxs?um((fViJw~gS66#Umm hXE&a zNK!DQGeUq? Lvn4drvV0KPA5L&1 z2nQLPQ7gjmY}%VYSBHz4Vs&8R6(u{2_i87z2>u3Ty6$-1@(9W;?e0^q;_BKFk3|eb z5a_Pf<9K+-Au&R%p`l2o{42h!?tr@n RAa#5phW`Fl0Rc5D0I}dP+wS%^Ouxb* z2tQ5j5m3H2CY|wx5eQnfrLYNeTrvS&@tXx|#CGrtdvEZFfFnRWs6+*|(#-D6oSBk~ znI*u=ytq=229=vCFy=f-q?EHO0!U~79%VVA7mBGdDhHBCr;(x3NYm{SJ7A%;-@rse zrKN1pba~89h@4t33%w;fT?z}rX oe_9nJ|Or(i!9BY4Ne4zD8$40 zp a8I59h`ezQQyEKaiv2R*4c4iRU!Z89ZQqcxJ22_GF(J9omUV}hVsc<8U zxv+g|@&+b?hFA^Kjkfi2C(7*1oX*6pNJlV D%g?=%|K6{ly1Ci zT?zu_h3i!vkPgw?P`v7xzgP7RG%}In`)6x 6yn$99Byr*`g~)G~P0 zR%@}c%Hc8|nl@QZ!qlo2DMv7(kM31{wZEZ(fnm6=;Lfeo#@HSloRv5zx>c$+)3|y; z9J(><8$7TXNXPNvPrya(cB8y=#M7QBc|s#Re@saE75JT!m7Z@ #bzE5#`wQ|qW{=kgK%@tLJZvbZ8D z4|ZuTu~1{O%+vC$bP3nksuKbKEnJz!?M3SgF)RfDQ#eE{!Y8=w 1h9Vw4gxPnS$achr-_phvP_OGkuDgWSOlx!+uY*l zDalVG?Ew%D2`<+}GA@m1z})#mbOOi|C^xC7VnU2Otw_ D0_lIK`dt=cn_$8bl!5^viS T_P7aE`R&FR>U-UN6&@#-bV>T)W 4iPC _+m3H%oq+UR=1V&_j-jNq8s_%d! zsD>1#UJK($xAU`dKyP6A1f`f&u19phpb|@R9oJmlAqRYsQ@l1ODZ>6h=$tI^|D7V- zbbTtP-Fs*U>G1?h*PXeIyZwL&M R;reENSX#C3ZTrvh!4;y4B^*q5W2;=7im&3(GMVfu3sboVyh-2 zoV)@^4NB8 wu!+c5G|F4~XB;8Mq#l#jxp5^f| zTBvmy=j1>F2ME-Rjr~>(%ohAbjZED|IL%S?5Srx4ZoQ6Y+OdFkxF(=}guysdb(G20 zW;u1}1gB|Yqp3wnd}K9p)x2h9hmC@6@|Yt{^QyvFBEze*QJU0Q^?BH;n4;O4Zt*CT zGea9r6Q<;D6C_I@oS7o38*vm=3<C j2%gr`z(pb2CG6AuY+rG++N4|ugRG3z^Swc1n^iyAlvV~BXl9X-$B z@k&TgcAaoojky6{FF3wDGMIJ(SVkH$5u&C8WbC`A-zdS%QzHb3oD+E`PIbK$ft_e_ z4T^P}C}0K<5Pk<)Y{Y3g5Q2nAO!nyAW)jGo52jK^)R(MMuvG?>C`LdWo{H=r%sRxY zC5t70(Z7P=hg3e$S(tHsZiN5Q2nFF3V<;GCyw(K_CS_^D%a!72X0mh~Tt@Xok<|)K zF{gTr1rHvZrjX-0?^syGp-V7}K6oL~x#H%E|c+AJ~{qRC| zba$y^8VHl-Kg^Pxa<4cEN!X}WlK~~)lIniaUZGwzjgLtyMV>;4K;u3z%EA&X!*YOF zRu(uzWr}de^fn}_b6gaPm|9w$RumHARW~gJEdgMFK@#&IcND;?5a#0rCP&{w R_nRaqKOVuuG}R8w*EOb!Pv)O|0su%ohrtL4Exzu8aY%14 z;9+xniP3^2Lh%SXfd>R^I;>$R#|w#PjcKrs59i3FUnA2lAUZVAB<7MbC2RPKuq6bf zMlcWgDLXtY87wi+`$XSV!#>Sj>35#K16n ^^=oDv;H*GXUq8f-0Bf+J zP=0ij2$+*=SXM1B-2qtBeZE#8%}uuRPnmiVW4*O`h%o57=r(avs3L(apH~aSTuWy3 z_@6Jz)LV|yUNPnWN5 LK1x#10k|9i?A(v;h*oW;`?PC=6baBJ9PCsO1F&DT{<0B; 4706(o#DM!Bi&Noz<7qp^XaKtRCx z BgMC+3LdaI9l;UF?75^=&^eJ>Wh)c~3PLJ%cTtX4TqJ#% z2vcWQ>9j8`lhS11nRa4Ht1Pl=D?t$x8nn^DkZtW-Q@x1NSbp(3#b{o2LH$8V@vRK# z0EWCwq=??Zf{;LwKK2R=j8Y>^*t5Nwz~Qvo`l*Imr}ZeSutL{k?)d=WxdqTTkb)!C z$ak!OIX2WorG^r_k6;qS?FB5e2+Cy=0_de5yP4h3I4t3@DHaU z9Am2C4D|%&md``zh+;)kgp+_qlfkfhz|6@cjpYaMzz=6Am%UjM4Ir?T!U$a)Fhn~k z2oo*=#OYoit&SOIf*+y-)W@7IT>``)lJP(?HP?)xd*br_WVh93Wstx}s)>3^FYD@f zddP-1sjc XAW>vm}t_5_Eq$OZ+QIDZV#kc9epOUcj>^a*0(bPS!& znFFCFg**a8e3H0{Jon&H(c+1-1nQ5Ii;A<*P}qK&8)v; B| zAumUojEw;B$HPY=gOxkxstE#!IR~F^FCkjIKzhoc6Bs{NBNnC?sGOZg5Q88>2nd-R zliMgr(0YErnvICqIFQjt+yK`diF7MhIa%aPIY|a)S>lQI5ChXtCBK+~RWbX)G?%Nu z!||Y}-Qb(+N~A8B4dYJ_z>m$|Y)rY(sE^8M(=s%p?YY_(0pq!hz*^nS*j?8GC!<8? z3#;E5(DIp~PYo5s6B0i%c!5a!hIC|E)P(1|i|DU)^W%#A8XEr{z$Kv5DfmTLtpKr# z!iWGN7gB`M5E1`x7+KVIycVl!rfXBt$S+WUr4eX{3zP7c%p|C=%K*xXMDrkrjcn=L z#FCfFoH=|EE<>LA1V)dp1mcbo o|fT1Rdp%Y^&dW=wDOU;B~zqhKh 7@C@N9mdXAqwPb32z+2@=>S;N_~aXTZqF@X PPIu2UQ#y1p%dmjanC+!ax@& zA4hF`qOYP}vnHvl_*2#qrul=ai!5!la_O=NL-a&+NKJ%$zs^bI(4b41C(jOCs{*rz zA`wcpGf)oR=-qS%vOHSI@}puyW(8IXxEe+%7%&Ja6A}P9o7=hC*!{Qz4_40XxtK9K z?q*Bfgf(W8r=uvA(wmg>sZbVLB+jb>)p|Ts$I( IqDPK(fAEpwwK!|<{8pJ~}B=TliEMPX6N3mQ)LlGb^dL; %N|HO^AUt}3*=j9|X(uYbv8o!ZAU0o49-VF{k=YQ< zDzp(iNG${?2Rru6bi>s~7y>66DG^jw%rZ3T7dd?25ysKKz!vFZ9!5<9OR6K$G@vNT zAk3HqXbL1weX873=v<+N%qF~9y8 zdJKHUa0tkHtwzU76)jN+!a_#sEH$d(5FIYKt>{pu!9RowAW!CDBGMP-o}NrR3N*3V z1clpjp#%mgYBSkiUxXTxCFVR!f-QoxCFUN2bzEeEqY?79v(Pdjv{RWQXA0SneOMOf zI10??A<0vf1XkGAWXUT4OgYO0E1EzOrcZ+LC`Q_dD$qYO6&6MdXoY4*SX@{}sME=W z?O{%2<}#RU _z27=O8eap?=_{VT(8G;kP6 zaZ=aPCra{^ahkWqq9>cSfU3751PGco!DyA*Uny0|`o|~Ejzg+|lirk?ni$O6B0%H| zR$~N A$(6l1gz@i{> z#wkMLr{|+Fu=t1`ser=w`|N D14UD&JAyV4Vdx--q1|VeD`2Ntn<~uDb#4B zR-C`{g6XQ<;Ggj#f&Vx846?49^2~Lf4&@7?)?M7E0@ Y #9 3(i-J35u|rnbxdJdnQP1hN5XIg z8bm^hBLc7l*Ap*NuyEu#3-TvO!Hy>O+3C(kd}si@dn{1OFDx_cVVuoPqSvs!u9^a@ z$yOqvSUIvnP+|Q^!I6sj{`m|*Y5q6$At^=eARweRAT!Qfr35M?>&RY%HWY&7;!{5w zhR_o#QgAN?P%IStSf Abe*~B{GqPpu(2zs|O!>ho z3FA%WCDkGk4C*i{pGxb|Qn0UXfKUL86y*q1U *=1i3GFhMy(KVmQGM>XgkieisDhX$ZHKm_tb`u2@pH?_1q>1RHP4Yl* z5hJz|2zbMzhya9RJP3DF=f`_N%<6u~%w%Q*^f5jd4DF|n_QK$tZ9W4vqW2A8Y-oih zn^-jJt8K{bQ#c_Y=4+M*##77!+bL46SRNTqovqx9SRkGB`G#JcX~4rL;GiPF%uV*a z5=mLIuR7=622QRPRjxpKGn2i=tf0AIXIx>2R5bXe7BXg_%o=eW*GJHYEljbY%`EkV zU!xMn#YCu(WmK}dUy|R?^d}A^kGw>0a3brx7xy-5?!*P#)Ad~!>xPA}i>+9h;sXd( zlXj@NNp@(0BI%#vO$`n(BPURkY1EDCEcpSxT!J(}P=KPf+G&*vBQ%>(o_P-y24NvG zO!FW|aXzs=YFg1{t(WKTtJBe=XWou2Y~xC;casfkIMd}1mnr7(%10v^lh J|}~ca{^)+1ZAn9o-H@qCW3vS^8prU ICo^#Y5+op; z7ebVgDEExQ>eXm~n1VBpkqSrFtxNUplm@Fu4%GLH`hAO7v1`H=VYT`+V~()ON?(bS zDF{G`lBVS1nc317A_AT{#XNDyV3o;|pqQMgq-W6^0j!rc30yXUaj!2?k#pkaUF;-^( ;N6Y MV=#IMesT*V z4UEUxLQxcjh=9SxHvo}c#yqUqqwF#QT9_h8@!v`MA|#;t8$T1qOPlTCEZnR2<;xey zNK;>D_*6}5jcjP!xKH~QTr6137LW_)2 N1= z&K+=>0J0$qbjJ?xv(*;ZEb;0rCndnH!DIrw1;A|Wyc7bW@lyMo_&)R7y}#~9HVa~q zRj$-3xe1euwyB5NWF0X=N-+#WA&G=&^x7k0%VQ*u-z+@|purho%rwE$p%rL^W_!oo z`Pm^XXfVUM@l-3k`^VILXyDE!&z =q} zGTB-7*MLF;Rz`%dEsk?VlZqm-(HtK6yP0Ei8TED80&x7E~yrFDQ2Qm*?;QiyJx zzH@hKekaTZAI-bB2U1QbUS`A^2*Nq7nb&}5GgYD XIx)3{(e0$mT)O?;tZwVXmxLz&}Afv~Ux$X-0U*o)Kb>|I`V04%q` za3&CxTs;go+0^gK;;x0RLWOdWe~QPzHkcAsMDoLd#wUQb$WjQllk 26HF^(tEIAj0}aV zk#4~xm_WsIR$b}?f@XN@0e}M&Oczl|lo&yFt3Y=glB}#)pas33QTvl+1X-LwFu3gN zJA43+6)}y#+cUUUnpK1~uFECLK9PY|%m;yENPq-z07)7~<2qPWXgW-&2}i#4I>1Gl z!L*Lu*RTSN+pQBJMAd*q*eKn--`|0F?*Yw ODJaiOlCs#VN7O1^?gRXy_4tB+sC+R zyIMWM@zmJiA5 s#OfcS|K3{TL1vrBxQbCBRD{xC6!So^by7= z0S~!WI1m~6X#{mji$*$(_B;OA qWK75pb&O1&w{sau)5Son@Ap|&Lh8!sVNQo0RyBM8Ck^CW`KXdT83@ xUB@mE?E#C_V=z-sdIVOnwIu=O3-)GGF^i%RsxOusLbJ%S zETa+?pZkw}yn1`>@bg0Ah%C~G!CT+F-}E<>QwuWekCgf!%=fGBsQ2=Yatsei(9iFF zvA(h7fdMgaR#e%hvPZ3pYbB2ZFqU>vrvSIK5w(CdvKxCMVCJ7qq(B7ZrhF2k#Rh&N zo4#epvj9kle1a0iK`2 +I-u%tspJ(XBv6Cc~8F<)h1fY+D z$t!_C+ae1$ukT=aS(tZ*Kv8QPq^lxHsvqczLQEKT2 x)ONK!v^#L0bsu$!1rl5k`g>> zyHR2-jpXL302 NeW5H-9{Ktct$_FmXD!bCynu$}<1k)0LE4^WKF-_GCHJWx?TUb=89Z0s%Pf}3P^ zX+FHFY>bGJXlPle5X{xL9=MgPYF$`Cf*+ULKrsG%02vmG=JzRV0xjV$YM*%W1=O#SRW0wa22`H$H_TLix&3|pqpbHd(q9O=9 z5*N_&6rwN>$Ah))*zQ61cUx04Ofq(3Yho@e)iG{Gb9O=}AH}G~MP|?kaetX3sL&Es zJ{5@b@{y1c6uj^h^iv9z85pCKo&+NeJWd@}=j~@Qf{+>Pv2F%DK)GL}i0vaFC y;jul5ljy^|XyAk>@#1c9@#Oa29%WVNvw3^x>u+bbTW+SK!!JqlI2Lv5hu1Iep zf=dRGo9Lx-OGm>R0QIeqSQvgfNaxfzt~mQ0TtK3Y^BjP(^HhLfN1;v1O}184$XN=} z3#9&6(*wO~tFC}WpuigBZymeCvGhn-yff%fiF;$ZAp*1(i+ATpupNur6VV732rU-x zzRQ@FKnZOjYtY2YuVu^t21#ufZ%&Z6?|L>|$k4V%rFDUVGl={!EDi>Zkly*gUB*@_ z0|=1orAq@;yVTG@A0PQo!3H%7bFUj@By52Tf)r>4`SqI&|5};7@dJXa>B2`bX}r)e zBQO`XQgQ8ud=1}S>HvA!kkkNsK=ZzO335nhEd>d|v~G!IPF7nxDLO#&gFH^5|5=zg z1H>@Q&^TidFZz6inh_W%HU~}$jv>`9N}w=ABLay->ZoAb0RjdS!T{x2sV79UP?`yw zn3k+qPaYBM;*W460pJSbx?_;-hwKMxM_b1V7ue|V`JQ`JCd&h2v?nK`1$P@YK(~qX z W }zlb~V(56c2*} z*crT8D= qnV;fkzVsD8pbQ4A(}4FE*Imt5 j z%Is6NcJyFSGk+P1PbpkSa(UM;Ba_Wn;I~uZjKeDs%oeT~Mc`TBJ02Y~v=9`>US}2& z9paJg90I&8k!lmXeA^?Y|3V_WKf&Ew-o(kyBcc!F2X$!fn};7q7{lxND(!npiGuqI ztUxd8aPyH>V;5n&G2N1dgXkW3XDnK^HnesKaC7iti|lbSEG3qLB^vccSrI|S4JcWM z)>P61D^iKd(XQb18T}GQzk*20V}I#Ha5LgY5!#F?hYpz#kc28`XjuS27DK%TbHtK< zU?)3CFd={}O}$MrBXFvHHf;F@(WF9xE*%COtn}9yZx;a}9SD|?kZ4@6tIhymm=ZP8 zrOZrBl4jysO$x(G)f~}y5HtF+C;x)AX(3fcv`&p2@MKMUqu7!L%!8sMgyI9bjNt+R z|L0JU?xC2?1_E2-dCJf$NYpn~HlZ_I(-i J#WGmSq7T%e~u-La0`t_#XfxcYu?7_frMK08m z%cd=R-ieYo`0g_^26xUf#Aq1^*HAOO4g`F&1}PRsTx&-y4iQ~|4#<+iFsa2LV63?B zgt9tg5eNZ&6UL6xbv0@+qeTH&(iMrrT4S;if5 mvsq0@a(=(mT&~_uzA4My^fjVCLBz zmcYcf_9jj?$rEOYM0mu!mPp(<nU6j03=zq8PC_gO#Bo?xYstq22?k$pd)~@f|#| z?pg{1r3WET_`7@ShVjn190VDvBNl){!XreK3)#1yfAP{7jsoYIxd7&leuXne2ty!+ z1Gt~tnk=4*%5H9dd%gdT_t@@J$A;=%d~9jQpbf AovV|CNJQ~n+v2J7DFABAD#cr zqW}4@2ym8^F=R*`hu=&bLWgfXhDs3)AS}Vl9Rf+2t|%9hfXMy!U)ZM+5&wcVOdzr; ziw-v2A|Sz&6{4|9gqs37U gc3}ET-;HCbUZnUJ#eWs1r6aMs7=zs(<37gT&xQ}s)Y=5 z59ItDaX98eGU`@DU%fZ0Vn8^6e9?KbFo3cALqwF`mTM)uhZS5S$Vv4wh4NO!n_VxF z*L*%iAZR)uzqgkVVr)_(iNhOHP!N?W0iLeD2ZTXK5aI_ndye`K`R3f;Bd}Oo;7KWF z+)$F%?o8x2+{Lb}rUVhPy9Y@I6_+ofOiGkTL< jw}Isebi>l#eeKM>fPZf zBU(qF1l(Vh!H j~fMoeDj9bw~ihq@3_%9)RrGY3x~UhP7Wvw z9TCSc QGW`EssumwAsoC6O ^z43|`YWbyd9GCQ!s9|%m$+@-Z)^>Z8PhbQ1#H1sCJABX#gQR3q?)Yl28KAW= z6_D7atX+gTOqs;e+u?SPh4 vT2#i981h@Qvi1${kEHDbo$$-o;u^s%drwai5Q~y_21jJ5aVAX1e zq~_heGsWIPzXBx4wqGOSeOxV~G#cIj^@m8qiWML|Gs|SOxr2Jd{MML7V=F8=;FY z7DKgOf&%;Yo+xoq?YB0jX)Bb`MlVoiaWmxGJOKGG0Hr!Wv?ps&!pFs-;gV Q-~$gJWa+|7z4>AL_+ z_Zp-M)6C=oZp_7E*2n)-$Vfeq8GK)j1kwq=GobdORPzZQSp?yTjhkhY(;AE m6gG((bb)GCRktd#x2fD2-QWZ>KLgabCoEk@prkp3{_ zba9KMAaac>F w5J?J#3{YtBQbW>JF3y=3;P#co(D~s5?43>T2hML`JLoIB`6c)g5F>;VU1DE= z*WutAq6S`^52Jo&j?`eqAVHLh;U~_SB(W}%QNmdd#@Kw{(Iz**x)MH;^Gu;Q2`HA; z)OtXbXo-a*)oCHg@(7R}uB2Um5FAN0BnFxdFmaY53Ig?TgT)CU(i0Vtpsnra3}%P_ z!fswDnD^PZ(R1BOK^HZAozTZ8fwRiOj^OWsN;^I_kyB#G(Kri6!nh fm?1CL Ex_qA9#?gLO5zp+GVOR0CU+AkHOC!=Cg$n( zLAK;IC~`O&d?5$=qUP|pnN*jA3qXLXgh6)LNW}{CX4uv^;0hlUWrT=`+Vd!(q1iJ@ zWmw!U25P_qNceX~pY#{XB!vCMgX8ODm1D69B+(_Bj)-=qC37}+B1kAnGoY*nAmCEc z%+UfrSD{7|8VGpik(!!h_E;J`1`2qGB)E>-hc< 2UYXE2mz17!DBYg z5DyG!3jYBFY1y&EHrb+|lQF 2JV})}JfsG_6S9efKMcI9)!I>#yU~2Nc z0ZGMp_ml;~AHg>dR3%$Ap< % z=%H=wWrRS?M4Sg)s6=T`C|(xnh{4F_v)-_gBs_Wqw|0XVK-19<0a=Q pq z2lJz7ZAH%ck4phIY;;m!^NCcegoz{onPpzId^40_xb0}17ID%41f$InJq_48z1R+T zPuP@u`br;;9!9+n@0ubAxHy(BZ|L0blF!VZq$QdERR&l~w3ULH2$B5Nyon*Y^(#e| zC-9P|B!xEYNbmLhT0Ekc7?Jxd4d^8!oein$8@PAGJL2+%exdf>Z@xm>Zgc2 ;Wb}~P4<^8SB9~z5H U;}ZCIM^lm5Fsyc>m_&kOD^N< zh>_;>%Nm4GTd7aDppsw!Bmz?c6G`{dCNJ>Poz$r6s{gf2KvpzyF#%;jOv{} Vts@~-Tt+JLxJeuO$}2T^)z|NX99*;h)Q+q(jDQvBHC$wk2@%|> z0G d;9U$kAqipWD ;(^Cn+DsNvIyQYx6&lsaXn5D<7=~5!Rn4xELK4p6 _;F0w0Xij3f3bICad{wU$SjsCQ>M6b ?gOa>F-0CV&ZV z6%K$!VC*RfyE<5qr%*@rLmO7}-{isH5f~zDA~ROYa2ncJ2#uIC!lOgx%IO$g-GAUc zIV @~Ql1I(s&r`2SGysc uqX8K( z2qm)>xIkzSOu-GiK19@y$}Y4NabH8~69n1GfL!4`wWZlGYQaYPpzqmfQGj)b apa+`oeRhqb(evGETHp1~{_Ehc2v@l4W-v@u{+DH556D21pbW{|6bW?Hx=ZNN@P zpeGnRNe{Hq_1g!0k;^tZ(K1DZtCkcTt}B8(dFLF_T4|~yK5n`i7?>2TmBA8DIe+0G z8gPV$0{}n(oKf}H+Q@YJ-nYwh3V6P{sh<+;X@65&rf6+psfiQ{X|>F_l)& 2V-X^j@7}EgrororV_+Wq=f_w)ua2uSLj+a6_&M& q1k-_ualXM&qn4!ObHoBOG%Br+bNs^Al)~~>*-Kf-uA}b=?V4trO+Y>X literal 0 HcmV?d00001 diff --git a/fonts/Inconsolata.svg b/fonts/Inconsolata.svg new file mode 100644 index 00000000..36775f07 --- /dev/null +++ b/fonts/Inconsolata.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/fonts/Inconsolata.ttf b/fonts/Inconsolata.ttf new file mode 100644 index 0000000000000000000000000000000000000000..4b8a36d249a05a0fe1575dc3d96ef7079dba6b07 GIT binary patch literal 63184 zcmaI934C1Dc{YCUon14UMYC(0k!CcbeYB5c%hq_)VjJ58uq24VK=49BY$wDE*+|n^ zHfg`OZSX>xK)(iWNxqCOm$6OK#!bPtob*FYK(dIw*lj?v4K1`G1d<^CpXZE5SPA|A z{PQ#C-kE#uS>E?O?{ %f*@&1SI-ToIp{HrhF z`Yl{*_wRf-Y@CwalJws%;X1l$`{sxKI#u{PNqXzsk|f`|`QA@&mrA9GB)xMM-#a&d zV$Y^3-KL!=zadH2(_0?6_havT^1gaW`j3ZkuWbu%819mrQ2!@z9o_QK!@J8Ti@u5P zzl-|*@e|wbzxV0(SKgMS*MErX(+}Odd%N;qrW?5aTl_x!$$KAqplBqy8tr)(-*4Z( z?b8px{lga@m87?~NRo2L_D?;qebxJu_u+dpem^29l6K=aa*gu0k`3+Lnl>lW%A~qc zk$0$90NSW>MNu}Stm~AG%68>Z<$z+?kamuytlxHO&gY#kIbU_+hS`}e9+lG4ih*=~ zqG&kZxp+`q7;s@Q wI? z(Lf*)2?TupVns0&G&y9QPFFNo5b#IJ1A(a07_YO2JS{VC$R1~;tTZnYM{g8qoBX%( zUn);X`BJg8A#F;e IME=YcQWn3FC72JA%5ZbsbkXd zh6BIwI@7_)Y=;WahXQs;KbkIZrUR4dywQe6InIWo*(Osw*%qI7)g~`A7P?%;<$ tV~`cOz*W$}haHpZ zHU~yrKdS2V4&HP)({|KoXN~qg`=FgQ^2%%v*eiK;4p-XC_SfvF(J-nS4R$=ITCyMS zTKH2-z*1?^?MPdkY4a#ZM$NMu_@jLBk 0m-F%HA#(olxH^#tSXQ!Q!f7w5=q2vou?8NOVaOV+G2SFj10y z@t~@R8qx}e(8*cTgQlHn<0!FsQhT%bMzQj#v}IH+$-cTIfhkRwIMc34?NQeOm$D!zV?r%i$MUQo+8qKdR4|)jpt40DflRzE>$+Tlcwe*{+lA=zbP3p z;eWE3|NZ#tdyBlE^epz=WxUIKzu|u0BHuReLhrr$`#lfowzYXa=>?O0=a_snaiT7x zKlO~P)_teG?&L`cvZ(XMzsf&VzADvAt %sLO}CAv>oJec;bz0z_~GyZ!`o82K7n_n>z$~Rm^Z1tn0FbYqc*U*dgpLb zemm_LRom)I_`WtL-me~UW-Bceqa2>Z3x+H3yEf-=OnEz<7)@6=(NqrjH0V$DgXYzK z!a+C2zutjW- i4fu`4ETq%{^#`aFK0zcmJtyI4uO zy=`r+EwOm3(dhNOo|297-N_n*Y>0H$bX9r$HH+g5KC!GuuWMShW{tn9BeI~Otzmmz zo$^Q7opIb!nSoH&o^QlfASe5h`h`3mdu?nR`2Rc72;^val~%)EFx?%>4MgWnm;* zv-Nw1`jQUGAQj(uNB(!^5m2*NDgzxam3Nan8x!gHq$ *gR4+=n zcpZ>ABAt-VNV*N`1aIl|asFJF(7vX7QU_tBjH-tePUKM~qnuO56b#a9xRKUF=1mU! zjBlefT#S!K=kP*GS)Sj38PrTNVfp3xtQb$Vn1$QHyVCxrXs)3N930K=ipLfx|)F z+mH~$A$-(2)8&)H?V>ciSobyvR_ikk8bJ*`)_yBL9Q{~n)XgAxt=ByOveo)LgC2aW zsJNp7-)yQt&vpT{?yB`w{5mn1;79Xdv$8?bdW`+7uG_jE)v3EtPo~c~=-lem%~jaz z89;?8OHW0A#pa4#6(Hx{ssYy3n;2kSJh}B;(8_75{s0B9DL19 zZGLgvu0+b~6%vg9gRfd! UHWN&p9qSUU8toS1CE$1Aqa-HGtM0>B6_s`N zK&Zf3UJ@`lWTVZfuj_2Tt9Brs2vj9QT^|pxUr`L+^i?E+!KS(j>o;9ZvfQxRwW6%7 zuJU?tUECWfa^yMOW|t&O{};M=7j$ul)b#(WiQ8uNY(1!4Pd(cT^T0i;P#a+tK)-JL zPoYK24p%VwfgbHzT%T2*AtPkzt2b_wPvCt4IgoZGhK=BC$OZpo+B%x{JJY^d`^1OW z_;U7%V6!~Fb5wiD`YL29Ip063zK#`JeFZ>*eu2z3MR);XMI9#`Bn3|qh6wxe0V9NK zgncBF6Qr97`!&+d6TESeu$$C!f-pd?I!@S6I74`Xu+K|+yvi4j5H9hBBLwl9OLOlM zuQ|?Iuku|Z_6fX8JLow|dDPFUh6txb36;w6a#NNx{3aS&AP>J${+3l|9JsHv{nn;% z=iN&pk)<0JmKv42WL?WMpK5>T{@Y4gLw9Ze((>h>|M*7=7b#+_dvAP1{)BP_tN7b# zV?qssYtqsr3=nGE(ETywM(40AC)#9;xttqwD=w@YbJ@w|oh!Tg3LtIeqw32xT)zt7 z$PZ!p*3K*AFhSL$9Ex)UF%^ec8W;CCGUv#t BW=Iq2v^%J9PE9BBLHb$ zrK~SAq&uWLrh~{~b=rt!f a~x4=i>!-?|_aYG0?^wYa$dq0cW}_Qh>?mUI@~a?gY9?GJtwX1Od?Ne{{w6_ezW z{s1~vQ(VAc>VZ}bldx7&`Gxvw{Q~_;{hj&;^~N1(1C;4W)nSr%q%3LES<|TLiU}4f zZo~EhS|<5yzCgRE$1$0*{K)a5 coF#zApX2~h_z}!?*tW7tWvVLFpBi)O-%epsph7DSm zZY^~Vqol()l0B?CVfb1TQrezS4`68MV|fy^4L^v-6sOo0LLCkTx#{EO#T8Dsv#hYN z+Ozhd(!x%6p3CXY50=A8MEdEGgYx&~k5Y%GCJ+YAqB;rXVM&J0=`Qn@^~hUh4$B{1 z#@{~!|4y~E1^%5Lj@LFb>^^03*0CczJ@dUg!taw+Np5!E+{n3a{>XPD2MQv=V0qN< z?=SHC%gX|R@@zX(H^$^=AtQ9sT^K9&csqJbC&f=_HPaOXhB_%f$B+H;5qwa3Kxung z_bdib+p9asaeSUk`E%W`P-Z8Eu9Oof4UK-;FQ?>=&Y5%h%F)pKaMV#>Y(k%ZtbAH> z!>3iPEK+s(&=)tNqO9VS(9spe%L9ZIf#ax#C|VQw_%_T^3Xs-0hbys` (ooHvder;Xsp9ujyzb;Q2B zL9*@y+3`UFt$l64xdlQ%y#Rrr_7Ns18phmHkalVhW#?vqw$F2z8t( M8Ap@EqmXTNhZY#;SJ+uTos;0`vno3M#3p6$ZRY~?wz4vO{?UgeOF5nka~ zzfRZ}23#eK5MBYuJ{Z*>7(&fW{up#DJB%iOQs;xMv>5tWO#ZWyNTj2;BG%hpR@UAd zTjTSz6a^b&e*3Q{1FeNciHO&zgyUaWv-UG 5Me7Q`VEZ=X4i!ujsBrUZGwPm@DFf6qajNe8Ktm%J%mU zD8Y*O9ilCLXv-<^QiHroH5Y-8E*GH%VS)r%qK2veTp_F@NJX@b$nizaw0l%N%2_CM zSG$!R+AjAH=qdB8`vv#QZp_-N_>OW|IR3~S(VWJhLnm~(P88yzkoHfhu8<7#F6Yc# z3OQB^7w4#Yjav9S1fzq_E$6UXep@Ya^T%Z0DsY|-9;8V%+#vLdl=XysMjnwT a7~ I_C<;@Sz@~ ORA<~bpMhdpfW6XDN9B^ zCy&Wfa51aL=)z!)nIXd=!!ZNcV#s*Nc#O=r50$#x;6A414dvZr*O|(i+M1iaWvy*( z$z)ckAdQ)frZq(y+A5Yd6}yTnJe~RBP^ncm7_0`}%wJcmuWSg03XBD1RldTiPyswM zioKz=s38?CX-U)+wA;#J)m}??ZQp~@T7NuR=JHjQxgB1=#iGNyumUpjgt9|wK_`rq zkL%dsM+r_N?!8F~=%g%^jQQCqRm<{e|E9|ls;-P{n%YK5x*h=en6{7R{KioJ3L!Hk zIPf4d>$6Y6H&} !^Qq?Z&AJUTq8&N00>_-s@1GMSFyBnALZ;Ni`2yvDWFmi~ zxw>ItQS-{gN0+qf^#;4Sv9PGV+ z I{V%1ue{W6?jT&l z7jm;Jrv twGhY8yW)ov2DdZHR5y07|hHQjTkt1nbvs=itcRlZsnLW-5)5JoL Yv!9iG 8T`_xl$}ykO3DwZzA$(o>_f}86Rr?0 zQymBst`HQTkV}{>9o8R+96I)>CfY~gK^Shx&C)z-7al&&64l&EN=FMsoJ*n?kEWpA zB}(wC)nQWL8*HUMFRMpMLwh+=e!?NbUTQFh2nXqJ@)L#t+EDP2aFNl~bQNop)*Bg! zV2Un8F5yEx6T$u7DBv2XQQcXCU-Z{(rVDUa5{sC&*L{!_%r|L6o vMq-{y=PO=8PP;Sb`Duha9 z`e0Ga`JHt}Pu7(sY$VLQ99pxm(PFeZLUvDUeVOd-sf;X66csltsYvuT7KRqwdavv* zuP>}gc|vh_bg8nlqt)!z=b79s_pFLkmb9&^ufHW(TDAJ2<+p!npl;@?aC60%HWaVy ziM2&sjkF(RX)PcPzRr{W6-o}M;ROj@7$USu5D~AjR3?DLt}~0pP&g-E(vfY+!CG9O zq%XQ%57XV%rytaB)$h^o*B{ZJ(4WzpcVsT=U(sLJLu$QF?wln2gzy|7ll>jEg#q63 z5#AvfQ5#*>XQ&+uXDWTGS=l--h#~xGq&5U8%#aC^g@P3HWK>L%wt{3?YnhzxdZ>PF z! z+=&;4tv(TQ<*iYvnvLYQ!tu$_=1 zT%i^oCP+f;&_?z-g=F_ZWsrm;-R sEtb~dHhU(06(h#+>`SM9UNa=Qr5TM3$ zoNz<{h1E&I)dIjjlkJ`*?1w8Y%M^#n6ekEHgy#qWx_%D_kCR6(&{2JcaFpEQCmaH3 zr%KMlZw=j|^k`|O^js-4Mn4tFoltzV{<6(wczCD+H%=!2mjIbN6AvaHNq`_O^49Bw zO;BgmO^tvtf`|i7qoj>DO+(#K$D2{!(z?5qvN=Fue8hZ$vi&%_dnDIq?MVKKeB3?E zzS3){PP4;vf+ce-a4K*<02TIN@Mtg-L>v6<(|H2>l(HNuIab0x>HoA(+CbTsx$X!b z`~cg&n{a_}hH#zm3&LmE7161ix}uFWPc@^7JL$RK47gc?nstcJdBkUZoU@i$oa$B9 z#gaAK 6r(BTM#U8R&MinJX3^ekdnA*o4T3F`#hbeYr?7C>|A3Sm1zaf_8eEH5NqD|jP9 zRbaR##~uMJ`GMT}FP0hddUjbMyW0bT&Fl%S%-%>B^jn-*$qomcP@s3HR(pVq7yy%C zxv^u_$}&lS41AcdAE51X9d_YyI;FM!z9T-A8O+dnO8b%TFq`(E_QHDBPFGxD$Yo0m z&z>gi0f6%6Rj3|zv1-B)8EG$ O z$8eYL@Rtki0Csp=G8Y|TR8tu3?zR@X*05~ME+P}_7Bm`6`jYBZEA_tRaj|kVE~&Wd z{z&J#O|m;&?Q8BTD5>yNcI9=n>I!uJ9bXK=n(C{qU6l-d^LuL_UKNuchRz*N)dg2C z4L3*K2v90nADes(KDMCrFmqeBc_H(y_jtE?zv%s%_en3zY$O_uI Jg_E_KyJy8f}@k4EUwULsD-9An~q1=0K=3 z@SjVka^HL*2arqUkHSCa&N=GjgY?vu`vc`O>6?9aO4h%LemJEP=`l+06xX;bSn~d7 zH)qzld9$07`i&dZnm`Vfb~*SaBq7EkxGng_;Mamr2GQMZLA3l$fRrvy{IOG%Nj5(8 zmelZ;kGlIGJ4to(I(W0kv@qA%KXRSQ8**J1>w82>$p4}w;a|BGJ{9;RwdduR;DA)0 z wbUIdObIfwP+ zNUFp9S0{gC<^l0Pv*@oEiGEa~A3qcQ7@#j$I5O$dWH1KqBB&w8QSB$jU(lWQh7rB` z2H^}qV%~+E?U7NYS7;H;g#a63WJA!LVS~cAw;H^L){1KRIQp_deyitl!+WcrM_*Dm zel4r;@7knB`3}`f55i?Go7>6M;e3&A6izTm0k89$SbX3D{!>pgxPiHbLy&q@p+gXK zNGW1i9u9>@SV33~vdWFHadJVV5A{r^!;@-JSlBy{QHmZR#GKR!v`p+ABnGvPdQ2FM zpvFn{GU}#&eF2hDJ7PaUDJcTHk8}AGSw?jBXb0U#b1HFm;TtRD_k` `Qg|MS)0>v$(=r-RHlvf;PHGF^Y6%IGyOQ@L0&`~$G%b&vBYnA$T>gYkL)<+0u2=5UdBb)?ihYiQ+Abc0{ zR|^`dSbmJM_#)u~)u;}_34qp~*9-r8=6K%eybB1GWkX&h20Zi*mtfk^stN0``V|LC zbXlsuWoe8nY xpbK)ldt`tDc~2hjD_%o^YBy4eF~n9Q%1g3_^f?p6!1XyDPl* zZS1blna{J&NAog_DHs{uOXl^kETXXQz;Mm%wX^pa2_yUbTlQY`d5C=$9iM<1JKJ&X zYT#Y=pS{j?_#FF{1Y`~sA1gjpjH+9^QR`NU(K!kd|r5tzn5O%SvbmmoHQKWh} zo96_knY{sTt56K+$7iNQQYVxIsu8X7GfP%A-My-=X2l&f)jcgGo$&=F4N=bn+Z^7C z#-eblIb6}XI^NNwbFJyCFYc%)t%|RG =R z8A~3WbGUg9S6Qh&&rM~5&T67Q1NT;*%!<=_$kf1Ehqco(nz?9s#d6)EgHTq(q_6@K z*D}j(bg#BpmRpn^>Thr>W3YHF6-YqNran#LR l}y)4ul9t zlw%&sb8C+ p3b0J|Oo!k=71wSb?+me1e |jdp zX2FLtWzN+kW*t1}on<~GFNpkN5nRgj==yb=DP<3Vk+k!=aUBNhJbAFk(hqqBmk6Rv zr!40!kSy0o0t}Q(>Ood>ijW}>=c>_|frQz;sUo$PBJeQbG(kkdsbZ)jfLYE%Tsq=* zanZuOwEfk(!NsM~u8*z!%F@)w@0SO+D%)y5@^D}8r*5rQT4$6m?Rn%eu0OK05O4-D zAFH%o&9h=uU&KnSu4VKiK~VC9mks_0xX{cPEeLF5_MQ=0EDYhz^K9qFj6Q80eA;?R zJP!jWgdrI=LFHyeH(N8bXco#}n0a0{%=}*NnE8sbeeu7frnB*HER*n+Y?mz3$5h3F z_AyyT4HKT^2wW!o2q2uB+4dO}CZNKc`;hj{ IWvP6UhlWadTrvizp3L$=qG$n*J;{3652)2uS$6l-PB zIqbw3dm}-<(wi9eWGVClhFTq>$l>-LwU^e<1;T_Vk&!0|y=8zgvh*}S(oX9yQ0Eg* zW^zwzBSjNX*|l@wF^Yk1Jfn?QOhfd@rr10okYuKm_a;5dCtqwdnjBr#C5xIuh4oz( zOIi`EySsg`tE_R&tz{keDfvx$M_E;1!9Bf8KDI0p`}(4{m(+da;hy{cd_`f0pilDs zS@6AAx=(d_G3NBA&@l91Na6f;IB^ME4jG2RU-Bme>BX3Oxw4uhVTi(X2|+~DGhq>4 z7MCzWkSD;5FS-* dMHsfwBq5ZNg41in9^V%Xl7>IV5Y=bGwvcal8In{(&9PY2qem6 zHJISAlE5 dh0AR<}T+U$x9$gQ9K(#$`8_F-k)!WqMYg)(*