ddnsclient/README.md

73 lines
3.0 KiB
Markdown
Raw Permalink Normal View History

2023-01-31 18:19:26 +01:00
# DDNSClient
2021-08-03 11:51:46 +02:00
2023-01-31 18:19:26 +01:00
[![License](https://img.shields.io/badge/license-MIT-blue)](https://gitea.antoine-langlois.net/DataHearth/ddnsclient/src/branch/main/LICENSE)
2023-03-02 18:56:57 +01:00
[![Docker](https://img.shields.io/docker/v/datahearth/ddnsclient)](https://hub.docker.com/r/datahearth/ddnsclient)
2023-01-31 18:19:26 +01:00
[![Build Status](https://drone.antoine-langlois.net/api/badges/DataHearth/ddnsclient/status.svg)](https://drone.antoine-langlois.net/DataHearth/ddnsclient)
2021-03-14 12:15:40 +01:00
2021-05-17 13:49:40 +02:00
## How to install DDNS-CLIENT as dependency
2021-03-15 08:31:47 +01:00
2023-01-31 18:19:26 +01:00
Simply run the command `go get gitea.antoine-langlois.net/DataHearth/ddnsclient`
2021-03-15 08:31:47 +01:00
## Run the client
You have 2 options to run the DDNS client.
2023-01-31 18:19:26 +01:00
You can run it as:
- docker container:
```bash
docker run -v /path/to/config/ddnsclient.yaml:/ddnsclient.yaml --name ddnsclient datahearth/ddnsclient:latest
2021-05-17 13:49:40 +02:00
```
2023-01-31 18:19:26 +01:00
or with a custom config path:
```bash
docker run -e CONFIG_PATH=/path/inside/container/custom.yaml -v /path/to/config/ddnsclient.yaml:/path/inside/container/custom.yaml --name ddnsclient datahearth/ddnsclient:latest
2021-05-17 13:49:40 +02:00
```
2021-03-19 23:18:05 +01:00
- binary executable:
2023-01-31 18:19:26 +01:00
```bash
git clone https://gitea.antoine-langlois.net/DataHearth/ddnsclient.git
2021-05-17 13:49:40 +02:00
cd ddnsclient
go build -o ddnsclient cmd/main.go
./ddnsclient
```
2023-01-31 18:19:26 +01:00
2021-05-17 13:49:40 +02:00
make sure the config is in the same directory with the name `ddnsclient.yaml` or set the `CONFIG_PATH` variable
2021-03-15 08:31:47 +01:00
2021-03-14 12:15:40 +01:00
## Supported providers
2021-05-17 13:49:40 +02:00
Any provider using the standard for DDNS should be supported by default thanks to the generic configuration.
You just need to get your credentials (obviously) and the update URL.
2023-01-31 18:19:26 +01:00
If you face any kind of issue, feel free to open an issue and ping me in it. If necessary, a branch will be open to fix the problem.
| Provider | Configuration key | Implemented | Tested |
| ---------- | ----------------- | ----------- | ------ |
| OVH | ovh | YES | YES |
| GOOGLE | google | YES | YES |
| DuckDNS | duckdns | YES | YES |
| No-IP | noip | YES | NO |
| DynDNS | dyndns | YES | NO |
| CloudFlare | cloudflare | NO | NO |
Note:
2021-05-27 12:44:04 +02:00
For DDNS providers using basic authentication inside URL (e.g: `https://{username}:{password}@ddns.something.com/...`), remove the `username`and `password` part to get only the "classical" URL (e.g: `https://ddns.something.com/...`). Then fill the `username` and `password` fields in the provider configuration.
2021-03-19 23:18:05 +01:00
## Contributing
2023-01-31 18:19:26 +01:00
You can contribute to the project by submitting an issue and resolve issues by creating PRs. I'll look at them and validate your changes if they're correct as soon as possible.
2021-05-27 12:33:51 +02:00
## TO-DO
- Add HRM to configuration file
- Add more DDNS provider (see the table above)
2021-05-17 13:09:28 +02:00
## Useful links
2023-01-31 18:19:26 +01:00
- Google DDNS doc: <https://support.google.com/domains/answer/6147083?hl=en#zippy=%2Cusing-the-api-to-update-your-dynamic-dns-record>
- OVH DDNS doc: <https://docs.ovh.com/us/en/domains/hosting_dynhost/>
- DuckDNS DDNS doc: <https:/>/www.duckdns.org/spec.jsp>
- No-IP DDNS doc: <https://www.noip.com/integrate/request>
- DynDNS DDNS doc: <https://help.dyn.com/remote-access-api/perform-update/>