Home
Softono

Dns Lexicon

Open source MIT Python
118
Stars
35
Forks
11
Issues
3
Watchers
3 months
Last Commit

 About Dns Lexicon

Manipulate DNS records on various DNS providers in a standardized way.

Platforms

Web Self-hosted

Languages

Python

Need Help Installing Dns Lexicon?

We provide expert installation service for this software. Our team will install, configure, and secure Dns Lexicon on your server. plans start at just $30.

Dns Lexicon

View on GitHub

.. raw:: html

<h1>
    <picture>
        <source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/dns-lexicon/dns-lexicon/main/docs/images/logo_named_white.svg">
        <source media="(prefers-color-scheme: light)" srcset="https://raw.githubusercontent.com/dns-lexicon/dns-lexicon/main/docs/images/logo_named.svg">
        <img alt="Lexicon" src="">
    </picture>
</h1>

Manipulate DNS records on various DNS providers in a standardized/agnostic way.

|build_status| |tests_status| |coverage_status| |docker_pulls| |pypy_version| |github_license|

.. |build_status| image:: https://img.shields.io/github/actions/workflow/status/dns-lexicon/dns-lexicon/main.yml?style=flat-square :target: https://github.com/dns-lexicon/dns-lexicon/actions/workflows/main.yml .. |tests_status| image:: https://img.shields.io/endpoint?url=https%3A%2F%2Fgist.githubusercontent.com%2Fadferrand%2F5985ab4d62747586f12b0700a0107640%2Fraw%2Ftest_badge.json&style=flat-square :target: https://github.com/dns-lexicon/dns-lexicon/actions/workflows/test-results.yml .. |coverage_status| image:: https://img.shields.io/coverallsCoverage/github/dns-lexicon/dns-lexicon?branch=main&style=flat-square :target: https://coveralls.io/github/dns-lexicon/dns-lexicon?branch=main .. |docker_pulls| image:: https://img.shields.io/docker/pulls/analogj/lexicon?style=flat-square :target: https://hub.docker.com/r/analogj/lexicon .. |pypy_version| image:: https://img.shields.io/pypi/v/dns-lexicon?style=flat-square :target: https://pypi.python.org/pypi/dns-lexicon .. |github_license| image:: https://img.shields.io/github/license/dns-lexicon/dns-lexicon?style=flat-square&color=blueviolet :target: https://github.com/dns-lexicon/dns-lexicon/blob/master/LICENSE

.. contents:: Table of Contents :local:

.. tag: intro-begin

Why using Lexicon?

Lexicon provides a way to manipulate DNS records on multiple DNS providers in a standardized way.

Lexicon can be used as:

  • a CLI tool:

.. code-block:: bash

# Create a TXT entry in domain.net zone hosted by CloudFlare
lexicon cloudflare create domain.net TXT --name foo --content bar
  • or a Python library:

.. code-block:: python

# Create a TXT entry in domain.net zone hosted by CloudFlare
from lexicon.client import Client
from lexicon.config import ConfigResolver

config = ConfigResolver().with_env().with_dict({
    "provider_name" : "cloudflare",
    "domain": "domain.net",
})

with Client(config) as operations:
    operations.create_record("TXT", "foo", "bar")

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>_

Supported providers

Only DNS providers who have an API can be supported by lexicon.

.. This section is autogenerated and should not been modified directly. However you should add a reference to the provider API in the list below, using the following syntax: .. _provider: URL_API

.. tag: providers-table-begin

Lexicon currently supports 90 providers:

+-----------------+-----------------+-----------------+-----------------+-----------------+ | aliyun_ | arvancloud_ | aurora_ | azure_ | cloudflare_ | +-----------------+-----------------+-----------------+-----------------+-----------------+ | cloudns_ | cloudxns_ | conoha_ | constellix_ | ddns_ | +-----------------+-----------------+-----------------+-----------------+-----------------+ | desec_ | devnomads_ | digitalocean_ | dinahosting_ | directadmin_ | +-----------------+-----------------+-----------------+-----------------+-----------------+ | dnsimple_ | dnsmadeeasy_ | dnspark_ | dnspod_ | dnsservices_ | +-----------------+-----------------+-----------------+-----------------+-----------------+ | dreamhost_ | duckdns_ | dynu_ | easydns_ | easyname_ | +-----------------+-----------------+-----------------+-----------------+-----------------+ | euserv_ | exoscale_ | flexibleengine_ | gandi_ | gehirn_ | +-----------------+-----------------+-----------------+-----------------+-----------------+ | glesys_ | godaddy_ | googleclouddns_ | gransy_ | gratisdns_ | +-----------------+-----------------+-----------------+-----------------+-----------------+ | henet_ | hetzner_ | hostingde_ | hover_ | httpnet_ | +-----------------+-----------------+-----------------+-----------------+-----------------+ | infoblox_ | infomaniak_ | internetbs_ | inwx_ | ionos_ | +-----------------+-----------------+-----------------+-----------------+-----------------+ | joker_ | linode_ | linode4_ | localzone_ | luadns_ | +-----------------+-----------------+-----------------+-----------------+-----------------+ | memset_ | misaka_ | mythicbeasts_ | namecheap_ | namecom_ | +-----------------+-----------------+-----------------+-----------------+-----------------+ | namesilo_ | netcup_ | nfsn_ | njalla_ | nsone_ | +-----------------+-----------------+-----------------+-----------------+-----------------+ | oci_ | onapp_ | online_ | ovh_ | plesk_ | +-----------------+-----------------+-----------------+-----------------+-----------------+ | pointhq_ | porkbun_ | powerdns_ | qcloud_ | rackspace_ | +-----------------+-----------------+-----------------+-----------------+-----------------+ | rage4_ | rcodezero_ | regfish_ | route53_ | safedns_ | +-----------------+-----------------+-----------------+-----------------+-----------------+ | sakuracloud_ | scaleway_ | softlayer_ | timeweb_ | transip_ | +-----------------+-----------------+-----------------+-----------------+-----------------+ | ultradns_ | valuedomain_ | vercel_ | vultr_ | wedos_ | +-----------------+-----------------+-----------------+-----------------+-----------------+ | yandex_ | yandexcloud_ | zeit_ | zilore_ | zonomi_ | +-----------------+-----------------+-----------------+-----------------+-----------------+

.. tag: providers-table-end

.. _aliyun: https://help.aliyun.com/document_detail/29739.html .. _arvancloud: https://www.arvancloud.ir/api/cdn/4.0 .. _aurora: https://www.pcextreme.com/aurora/dns .. _azure: 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 .. _ddns: https://www.rfc-editor.org/rfc/rfc2136 .. _desec: https://desec.readthedocs.io/en/latest/ .. _devnomads: https://api.devnomads.nl/api/documentation .. _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 .. _dnsimple: 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 .. _dnsservices: https://dns.services/userapi .. _dreamhost: https://help.dreamhost.com/hc/en-us/articles/217560167-api_overview .. _duckdns: https://www.duckdns.org/spec.jsp .. _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/ .. _flexibleengine: https://registry.terraform.io/providers/FlexibleEngineCloud/flexibleengine/latest/docs/data-sources/dns_zone_v2 .. _gandi: 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 .. _googleclouddns: https://cloud.google.com/dns/api/v1/ .. _gransy: https://subreg.cz/manual/ .. _gratisdns: .. _henet: https://dns.he.net/ .. _hetzner: https://docs.hetzner.cloud/reference/cloud#dns .. _hostingde: https://www.hosting.de/ .. _hover: https://www.hover.com/ .. _httpnet: https://www.http.net/ .. _infoblox: https://docs.infoblox.com/display/ilp/infoblox+documentation+portal .. _infomaniak: https://www.infomaniak.com .. _internetbs: https://internetbs.net/resellerregistrardomainnameapi .. _inwx: https://www.inwx.de/en/offer/api .. _ionos: https://developer.hosting.ionos.de/docs/dns .. _joker: https://joker.com/faq/index.php?action=show&cat=39 .. _linode: https://www.linode.com/api/dns .. _linode4: https://developers.linode.com/api/docs/v4#tag/domains .. _localzone: .. _luadns: http://www.luadns.com/api.html .. _memset: https://www.memset.com/apidocs/methods_dns.html .. _misaka: https://misaka.io/dns/ .. _mythicbeasts: https://www.mythic-beasts.com/support/api/dnsv2 .. _namecheap: https://www.namecheap.com/support/api/methods.aspx .. _namecom: https://www.name.com/api-docs .. _namesilo: https://www.namesilo.com/api_reference.php .. _netcup: https://ccp.netcup.net/run/webservice/servers/endpoint.php .. _nfsn: .. _njalla: https://njal.la/api/ .. _nsone: https://ns1.com/api/ .. _oci: https://docs.oracle.com/en-us/iaas/Content/DNS/home.htm .. _onapp: https://docs.onapp.com/display/55api/onapp+5.5+api+guide .. _online: .. _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 .. _porkbun: https://kb.porkbun.com/article/190-getting-started-with-the-porkbun-dns-api .. _powerdns: https://doc.powerdns.com/md/httpapi/api_spec/ .. _qcloud: https://cloud.tencent.com/document/product/1427/56194 .. _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 .. _regfish: https://regfish.readme.io/ .. _route53: https://docs.aws.amazon.com/route53/latest/apireference/welcome.html .. _safedns: https://developers.ukfast.io/documentation/safedns .. _scaleway: https://www.scaleway.com/en/developers/api/domains-and-dns .. _sakuracloud: https://developer.sakura.ad.jp/cloud/api/1.1/ .. _softlayer: https://sldn.softlayer.com/article/rest#http_request_types .. _timeweb: https://timeweb.cloud/api-docs .. _transip: https://api.transip.nl/rest/docs.html .. _ultradns: https://ultra-portalstatic.ultradns.com/static/docs/rest-api_user_guide.pdf .. _valuedomain: https://www.value-domain.com/service/api/ .. _vercel: https://vercel.com/docs/api#endpoints/dns .. _vultr: https://www.vultr.com/api/#tag/dns .. _webgo: https://www.webgo.de/ .. _wedos: https://www.wedos.com/cs/ .. _yandex: https://yandex.com/dev/domain/doc/reference/dns-add.html .. _yandexcloud: https://cloud.yandex.com/en/docs/dns/api-ref/DnsZone/ .. _zeit: .. _zilore: https://zilore.com/en/help/api .. _zonomi: http://zonomi.com/app/dns/dyndns.jsp

.. tag: intro-end

Documentation

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.github.io/dns-lexicon .. _User guide: https://dns-lexicon.github.io/dns-lexicon/user_guide.html

Contributing

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.github.io/dns-lexicon/developer_guide.html

Licensing

  • MIT
  • Logo_: transform by Mike Rowe from the Noun Project

.. _Logo: https://thenounproject.com/term/transform/397964