Cron + Letsencrypt.sh + Lexicon = Automated SSL certificate renewal using Letsencrypt DNS-01
10K+
Manipulate DNS records on various DNS providers in a standardized/agnostic way.
|build_status| |coverage_status| |docker_pulls| |pypy_version| |pypy_python_support| |github_license|
.. |logo_named| image:: https://raw.githubusercontent.com/AnalogJ/lexicon/master/docs/images/logo_named.svg :alt: Lexicon
.. |build_status| image:: https://dev.azure.com/AnalogJ/lexicon/_apis/build/status/AnalogJ.lexicon?branchName=master :target: https://dev.azure.com/AnalogJ/lexicon/_build/latest?definitionId=1&branchName=master
.. |coverage_status| image:: https://coveralls.io/repos/github/AnalogJ/lexicon/badge.svg :target: https://coveralls.io/github/AnalogJ/lexicon?branch=master
.. |docker_pulls| image:: https://img.shields.io/docker/pulls/analogj/lexicon.svg :target: https://hub.docker.com/r/analogj/lexicon
.. |pypy_version| image:: https://img.shields.io/pypi/v/dns-lexicon.svg :target: https://pypi.python.org/pypi/dns-lexicon
.. |pypy_python_support| image:: https://img.shields.io/pypi/pyversions/dns-lexicon.svg :target: https://pypi.python.org/pypi/dns-lexicon
.. |github_license| image:: https://img.shields.io/github/license/AnalogJ/lexicon.svg :target: https://github.com/AnalogJ/lexicon/blob/master/LICENSE
.. contents:: Table of Contents :local:
.. tag:intro-begin
Lexicon provides a way to manipulate DNS records on multiple DNS providers in a standardized way.
Lexicon can be used as:
.. code-block:: bash
# Create a TXT entry in domain.net zone hosted by CloudFlare
lexicon cloudflare create domain.net TXT --name foo --content bar
.. code-block:: python
# Create a TXT entry in domain.net zone hosted by CloudFlare
from lexicon.client import Client
from lexicon.config import ConfigResolver
action = {
"provider_name" : "cloudflare",
"action": "create",
"domain": "domain.net",
"type": "TXT",
"name": "foo",
"content": "bar",
}
config = ConfigResolver().with_env().with_dict(action)
Client(config).execute()
Lexicon was designed to be used in automation, specifically letsencrypt.
Generating Intranet & Private Network SSL Certificates using Lets Encrypt & Lexicon <http://blog.thesparktree.com/post/138999997429/generating-intranet-and-private-network-ssl>_Only DNS providers who have an API can be supported by lexicon.
The current supported providers are:
Aliyun.com <https://help.aliyun.com/document_detail/29739.html>_AuroraDNS <https://www.pcextreme.com/aurora/dns>_AWS Route53 <https://docs.aws.amazon.com/Route53/latest/APIReference/Welcome.html>_Azure DNS <https://docs.microsoft.com/en-us/rest/api/dns/>_Cloudflare <https://api.cloudflare.com/#endpoints>_ClouDNS <https://www.cloudns.net/wiki/article/56/>_CloudXNS <https://www.cloudxns.net/Support/lists/cid/17.html>_ConoHa <https://www.conoha.jp/docs/>_Constellix <https://api-docs.constellix.com/?version=latest>_DigitalOcean <https://developers.digitalocean.com/documentation/v2/#create-a-new-domain>_Dinahosting <https://en.dinahosting.com/api>_DirectAdmin <https://www.directadmin.com/features.php?id=504>_v1 <https://developer.dnsimple.com/>, v2 <https://developer.dnsimple.com/v2/>DnsMadeEasy <https://api-docs.dnsmadeeasy.com/?version=latest>_DNSPark <https://dnspark.zendesk.com/entries/31210577-REST-API-DNS-Documentation>_DNSPod <https://support.dnspod.cn/Support/api>_Dreamhost <https://help.dreamhost.com/hc/en-us/articles/217560167-API_overview>_Dynu <https://www.dynu.com/Support/API>_EasyDNS <http://docs.sandbox.rest.easydns.net/>_Easyname <https://www.easyname.com/en>_EUserv <https://support.euserv.com/api-doc/>_ExoScale <https://community.exoscale.com/documentation/dns/api/>_RPC (old) <http://doc.rpc.gandi.net>_ / LiveAPI <http://doc.livedns.gandi.net/>_Gehirn <https://support.gehirn.jp/apidocs/gis/dns/index.html>_Glesys <https://github.com/glesys/API/wiki/>_GoDaddy <https://developer.godaddy.com/getstarted#access>_Google Cloud DNS <https://cloud.google.com/dns/api/v1/>_Gransy (sites subreg.cz, regtons.com and regnames.eu) <https://subreg.cz/manual/>_Hover <https://hoverapi.docs.apiary.io/>_Hurricane Electric DNS <https://dns.he.net/>_Hetzner <https://dns.hetzner.com/api-docs/>_Infoblox <https://docs.infoblox.com/display/ILP/Infoblox+Documentation+Portal>_Infomaniak <https://www.infomaniak.com>_Internet.bs <https://internetbs.net/ResellerRegistrarDomainNameAPI>_INWX <https://www.inwx.de/en/offer/api>_Joker.com <https://joker.com/faq/index.php?action=show&cat=39>_Linode <https://www.linode.com/api/dns>_Linode v4 <https://developers.linode.com/api/docs/v4#tag/Domains>_LuaDNS <http://www.luadns.com/api.html>_Memset <https://www.memset.com/apidocs/methods_dns.html>_Mythic Beasts (v2 API) <https://www.mythic-beasts.com/support/api/dnsv2>_Njalla <https://njal.la/api/>_Namecheap <https://www.namecheap.com/support/api/methods.aspx>_Namesilo <https://www.namesilo.com/api_reference.php>_Netcup <https://ccp.netcup.net/run/webservice/servers/endpoint.php>_NS1 <https://ns1.com/api/>_OnApp <https://docs.onapp.com/display/55API/OnApp+5.5+API+Guide>_OVH <https://api.ovh.com/>_Plesk <https://docs.plesk.com/en-US/onyx/api-rpc/about-xml-api.28709/>_PointHQ <https://pointhq.com/api/docs>_PowerDNS <https://doc.powerdns.com/md/httpapi/api_spec/>_Rackspace <https://developer.rackspace.com/docs/cloud-dns/v1/developer-guide/>_Rage4 <https://gbshouse.uservoice.com/knowledgebase/articles/109834-rage4-dns-developers-api>_RcodeZero <https://my.rcodezero.at/api-doc>_RFC2136 <https://en.wikipedia.org/wiki/Dynamic_DNS>_Sakura Cloud by SAKURA Internet Inc. <https://developer.sakura.ad.jp/cloud/api/1.1/>_SafeDNS by UKFast <https://developers.ukfast.io/documentation/safedns>_SoftLayer <https://sldn.softlayer.com/article/REST#HTTP_Request_Types>_Transip <https://www.transip.nl/transip/api/>_UltraDNS <https://ultra-portalstatic.ultradns.com/static/docs/REST-API_User_Guide.pdf>_Vultr <https://www.vultr.com/api/#tag/dns>_Yandex <https://tech.yandex.com/domain/doc/reference/dns-add-docpage/>_Zeit <https://zeit.co/api#post-domain-records>_Zilore <https://zilore.com/en/help/api>_Zonomi <http://zonomi.com/app/dns/dyndns.jsp>_.. tag:intro-end
Online documentation (user guide, configuration reference) is available in the Lexicon documentation_.
For a quick start, please have a look in particular at the User guide_.
.. _Lexicon documentation: https://dns-lexicon.readthedocs.io .. _User guide: https://dns-lexicon.readthedocs.io/en/latest/user_guide.html
If you want to help in the Lexicon development, you are welcome!
Please have a look at the Developer guide_ page to know how to start.
.. _Developer guide: https://dns-lexicon.readthedocs.io/en/latest/developer_guide.html
Content type
Image
Digest
Size
377.9 MB
Last updated
over 4 years ago
docker pull analogj/lexicon:dependabot_pip_boto3-1.18.8