DynIP is a dynamic ip tool that determines the external IP address and updates a dns servics. This container serves a microservice as an API for other services.
- Microservice - API server.
- Plugin Architecture - A simple mechanism to support multiple dns providers
- Hover Plugin - Access client for the Hover API
- Client - A cli client for use with crond to invoke the lookup/update
- /ip Lookup the external IP. Returns previous and current ip, as well as the last timestamp inside a status envelope.
- /record Update the IP for an fqdn. This method takes plugin, name(host), and domain to form the fqdn for a specific service. There are two method
get
retrieve the dns record; thepost
updates the dns record with an additional param for ip. - /field Update the content for TXT record. This is the same parameters as
/host
.
This provides a mechanism for connecting to DNS providers in a standard way. The interface is defined in the dyndns_plugin.py
file.
Providers
- Hover: Uses the api provided by hover. It is fairly simple and I will let the code speak for itself.
The client.py
provides a simple script to use the API. This should be referenced for any other clients using the API. For consistency the client uses the same config file /etc/container/dyndns.yml
.
To configure the service a config file /etc/container/dyndns.yml
must be provided. Below is an example only the hover
plugin is working.
plugins:
- name: hover
username: {USERNAME}
password: {PASSWORD}
domains:
{DOMAIN}.{TLD}:
- {HOST1}
- {HOST2}
- {HOST3}
- name: route53
user: example
password: actualpwd
domains:
foobar.org
- xyz
- abc
The official to list is kept in a GitHub Issue List
- Updated to the latest spec Issue #4