pyacmedns

March 18, 2018 · View on GitHub

A client library to handle acme-dns <https://github.com/joohoi/acme-dns>_ client communication and persistent account storage.

Installation

Install from PyPI

.. code-block:: bash

$ pip install pyacmedns

Usage

The following is a complete example of handling the validation using this library.

.. code-block:: python

#!/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___")