https://github.com/wolfpup-software/update_dns_records
send ip address updates to DNS hosts
https://github.com/wolfpup-software/update_dns_records
ddns ddns-client ddns-updater rust
Last synced: about 1 year ago
JSON representation
send ip address updates to DNS hosts
- Host: GitHub
- URL: https://github.com/wolfpup-software/update_dns_records
- Owner: wolfpup-software
- License: bsd-3-clause
- Created: 2024-01-13T08:26:07.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2024-12-01T06:39:37.000Z (over 1 year ago)
- Last Synced: 2025-02-09T07:33:31.997Z (over 1 year ago)
- Topics: ddns, ddns-client, ddns-updater, rust
- Language: Rust
- Homepage:
- Size: 60.5 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Update Dns Records
Send ip address updates to DNS services.
## How to use
The following sections describe how to install and run `update_dns_records`.
### Install
All available services are included by default. Rust features are directly correlated to dns services.
For now, all minimal or custom builds need to use `--features` flags.
### Configuration
The `update_dns_records` application requires a valid JSON configuration to run.
An example configuration example can be found at
`./update_dns_records.example.json`
```JSON
{
"results_filepath": "./path_to_results.json",
"ip_services": [
["https://checkip.amazonaws.com/", "address_as_body"],
["https://api.ipify.org", "address_as_body"]
]
}
```
The `results_filepath` and `ip_services` properties are required.
The `results_filepath` property can be relative to the location of the `config` file.
The `ip_services` property defines a list of `services` with a `url` and its `response_type`.
### Run update_dns_records
The `update_dns_records` application accepts one argument defining a path to a configuration file.
```
update_dns_records
```
The results of the `update_dns_records` will be written to the `results_filepath` property of the `config`.
Paths can be absolute or relative to the configuration file.
## Available services
The `update_dns_records` application provides support for the following `services`:
- [dyndns2](#dyndns2)
- [cloudflare](#cloudflare)
### Dyndns2
Use the following schema to add `dyndns2` domains to the `config`.
```JSON
{
"results_filepath": "string",
...
"dyndns2": [{
"service_uri": "string",
"hostname": "string",
"username": "string",
"password": "string"
}, ...]
}
```
Standard dyndns2 `path` and `parameters` will be appended to the authority of the `service_uri` property.
So `https://example-ddns-service.com` will become:
```
https://example-ddns-service.com/nic/update?hostname=subdomain.yourdomain.com&myip=1.2.3.4
```
### Cloudflare
Use the following schema to add `cloudflare` domains to the `config`.
```JSON
{
"results_filepath": "string",
...
"cloudflare": [{
"name": "yourdomain.com",
"email": "string",
"zone_id": "string",
"dns_record_id": "string",
"api_token": "string",
"type": "string, record type ie: A",
"proxied": "bool | null",
"comment": "string | null",
"tags": "[]string | null",
"ttl": "number | null",
}, ...]
}
```
## Licence
BSD 3-Clause License