docs: improve README readability
This commit is contained in:
parent
5715723863
commit
44c9014417
1 changed files with 16 additions and 10 deletions
26
README.md
26
README.md
|
@ -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.
|
||||||
|
|
Loading…
Add table
Reference in a new issue