Manipulate DNS records on various DNS providers in a standardized/agnostic way.
Table of Contents
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.
Only DNS providers who have an API can be supported by lexicon.
The current supported providers are:
- Aliyun.com
- AuroraDNS
- AWS Route53
- Azure DNS
- Cloudflare
- ClouDNS
- CloudXNS
- ConoHa
- Constellix
- DigitalOcean
- Dinahosting
- DirectAdmin
- DNSimple v1, v2
- DnsMadeEasy
- DNSPark
- DNSPod
- Dreamhost
- Dynu
- EasyDNS
- Easyname
- EUserv
- ExoScale
- Gandi RPC (old) / LiveAPI
- Gehirn
- Glesys
- GoDaddy
- Google Cloud DNS
- Gransy (sites subreg.cz, regtons.com and regnames.eu)
- Hover
- Hurricane Electric DNS
- Hetzner
- Infoblox
- Internet.bs
- INWX
- Linode
- Linode v4
- LuaDNS
- Memset
- Namecheap
- Namesilo
- Netcup
- NFSN (NearlyFreeSpeech)
- NS1
- OnApp
- Online
- OVH
- Plesk
- PointHQ
- PowerDNS
- Rackspace
- Rage4
- RcodeZero
- Sakura Cloud by SAKURA Internet Inc.
- SafeDNS by UKFast
- SoftLayer
- Subreg (deprecated, use Gransy)
- Transip
- UltraDNS
- Vultr
- Yandex
- Zeit
- Zilore
- Zonomi
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.
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.
- MIT
- Logo: transform by Mike Rowe from the Noun Project