docs: improve README readability

This commit is contained in:
Julian Lobbes 2022-09-03 01:41:40 +02:00
parent 5715723863
commit 44c9014417

View file

@ -1,20 +1,24 @@
# Ionos DNS updates # Ionos DNS updates
A set of scripts used to make dynamic DNS updates to the Ionos API. A simple script used to send dynamic DNS updates to the Ionos API.
Using this script requires you to have your domain registered with Ionos, and having obtained an [API key from them](https://developer.hosting.ionos.com/docs/getstarted).
### Dependencies ### Dependencies
Python libraries: Python 3.6 or above.
Required python libraries:
- [requests](https://pypi.org/project/requests/) - [requests](https://pypi.org/project/requests/)
- [pyyaml](https://pypi.org/project/PyYAML/) - [pyyaml](https://pypi.org/project/PyYAML/)
### Configuration ### Configuration
Configuration is declared inside the file `config.yml`. Configuration of your DNS updates is declared inside the file `config.yml`.
Once modified, this file **must be kept secret**, else anyone visiting your domains runs the risk of being DNS-poisoned. Once modified, this file **must be kept secret**.
If your API key or your DNS update URL leaks to a bad actor, anyone visiting your domains runs the risk of being DNS-poisoned.
First, you will need to set your Ionos API keypair in the config file. First, you will need to write your Ionos API keypair into the config file.
Paste the respective values of your Ionos API-keypair into the file Paste the respective values of your Ionos API-keypair into the config as follows:
```yaml ```yaml
apikey: apikey:
@ -33,7 +37,7 @@ domains:
- subdomain2.example.com - subdomain2.example.com
``` ```
**NOTE:** Make sure you have manually registered each subdomain you are listing in your Ionos account. **NOTE:** Make sure you have manually added each subdomain you are listing in your Ionos account.
The script currently does not handle adding subdomains for you. The script currently does not handle adding subdomains for you.
Attempting to update the DNS entry for an unregistered domain will cause the API call to fail. Attempting to update the DNS entry for an unregistered domain will cause the API call to fail.
@ -42,8 +46,8 @@ You may optionally set a descriptive string which is sent along with the update:
description: "Dynamic DNS update." description: "Dynamic DNS update."
``` ```
As of right now, I am actually not sure what the description is needed for, but the API requires it. As of right now, I am actually not sure what the description is needed for, but the API requires it to be present in the request.
The value displayed above is used by default, if you don't override it inside `config.yml`. The value displayed here is used by default if you don't override it in `config.yml`.
### Regular DNS updates ### Regular DNS updates
@ -57,4 +61,6 @@ You can set your crontab to the following to achieve this:
*/1 * * * * /path/to/dnsupdate.py */1 * * * * /path/to/dnsupdate.py
``` ```
Just make sure that the script is executable and located in the same directory as `config.yml`. Just make sure that the script is executable by the user whose cronjob is executing it, and that `config.yml` is listed in the same directory as the script itself.
Run it manually at least once to make sure that everything is working.
If the script runs without throwing an exception, everything worked and your DNS records now point to your public IP.