https://github.com/tcarrio/dddd
Dynamic DNS for Cloudflare using DuckDuckGo's Answers API ¯\_(ツ)_/¯
https://github.com/tcarrio/dddd
cloudflare duckduckgo dyndns go golang
Last synced: 29 days ago
JSON representation
Dynamic DNS for Cloudflare using DuckDuckGo's Answers API ¯\_(ツ)_/¯
- Host: GitHub
- URL: https://github.com/tcarrio/dddd
- Owner: tcarrio
- License: gpl-3.0
- Created: 2019-08-27T22:02:17.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2021-03-13T00:03:46.000Z (about 4 years ago)
- Last Synced: 2025-04-15T05:42:58.774Z (29 days ago)
- Topics: cloudflare, duckduckgo, dyndns, go, golang
- Language: Go
- Homepage: https://github.com/tcarrio/dddd/releases/tag/0.2.1
- Size: 43.9 KB
- Stars: 13
- Watchers: 2
- Forks: 0
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
[](https://goreportcard.com/report/github.com/tcarrio/dddd) [](https://builds.sr.ht/~tcarrio/dddd/commits/.build.yml?)
# dddd
Self-hostable DynDNS Alternative
## Overview
Having looked at other dynamic DNS solutions and realizing how simple the idea was, I decided to throw together a CLI that would update a DNS entry from a running server. The initial motivation came to me while setting up my at home VPN and looking up my IP address on DuckDuckGo. It returned an IP address via the Answers API, so my solution unironically uses the same. **dddd** hits the DuckDuckGo Answers API, parses the returned IP address, and will create or update a DNS entry in Cloudflare. I believe this solution would be easy to throw in a cronjob for scheduled updates, as well as manual invocation. Currently it is heavily driven by arguments or environment variables.
## Usage
```
NAME:
dddd - perform dynamic DNS updates in Cloudflare using DuckDuckGo AnswersUSAGE:
dddd [global options] command [command options] [arguments...]VERSION:
0.2.4COMMANDS:
help, h Shows a list of commands or help for one commandGLOBAL OPTIONS:
--api-key key, -k key Cloudflare API key [$CF_API_KEY]
--email email, -e email Cloudflare email [$CF_API_EMAIL]
--ip IP, -i IP IP address for the DNS entry [$DNS_IP]
--name name, -n name The name for the DNS entry (default: "@") [$DNS_NAME]
--domain domain, -d domain The domain to modify in Cloudflare [$DNS_DOMAIN]
--type type, -t type The type of the record [$DNS_TYPE]
--log-level value, -l value Set the log level of logger [$LOG_LEVEL]
--help, -h show help
--version, -v print the version
```