A client library to handle acme-dns client communication and persistent account storage.
Install from PyPI
$ pip install pyacmedns
The following is a complete example of handling the validation using this library.
#!/usr/bin/env python
from pyacmedns import Client, Storage
whitelisted_networks = ["192.168.11.0/24", "[::1]/128"]
domain = "your.example.org"
# Initialize the client. Point it towards your acme-dns instance.
client = Client("https://auth.acme-dns.io")
# Initialize the storage. If the file does not exist, it will be
# automatically created.
storage = Storage("/path/to/storage.json")
# Check if credentials were previously saved for your domain
account = storage.fetch("your.example.org")
if not account:
# Account did not exist. Let's create a new one
# The whitelisted networks parameter is optional
account = client.register_account(whitelisted_networks)
# Save it
storage.put(domain, account)
storage.save()
# Update the acme-dns TXT record.
client.update_txt_record(account, "___validation_token_recieved_from_the_ca___")