Skip to content

AnalogJ/lexicon

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

Co-authored-by: Adrien Ferrand <ferrand.ad@gmail.com>
6973a76

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
February 3, 2023 01:23
May 15, 2022 15:31
July 26, 2020 09:48
October 26, 2022 12:54
July 25, 2020 17:37
August 16, 2020 19:59
February 1, 2016 23:53
June 21, 2022 08:48
July 27, 2020 00:43
July 27, 2020 00:43

Lexicon

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

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:
# 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:
# 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.

Supported providers

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

The current supported providers are:

aliyun aurora azure cloudflare cloudns
cloudxns conoha constellix ddns digitalocean
dinahosting directadmin dnsimple dnsmadeeasy dnspark
dnspod dreamhost dynu easydns easyname
euserv exoscale gandi gehirn glesys
godaddy googleclouddns gransy gratisdns henet
hetzner hostingde hover infoblox infomaniak
internetbs inwx joker linode linode4
localzone luadns memset misaka mythicbeasts
namecheap namecom namesilo netcup nfsn
njalla nsone oci onapp online
ovh plesk pointhq porkbun powerdns
rackspace rage4 rcodezero route53 safedns
sakuracloud softlayer transip ultradns valuedomain
vercel vultr webgo yandex yandexcloud
zeit zilore zonomi    

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.

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.

Licensing

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