Dynamic DNS using DigitalOcean's DNS Services
|
||
---|---|---|
.github/workflows | ||
Dockerfile | ||
dyndns.sh | ||
README.md |
Dynamic DNS using DigitalOcean's DNS Services
A script that pushes the public IP address of the running machine to DigitalOcean's DNS API's. It requires an existing A record to update. The resulting container image is roughly around 7 MB (thanks to Alpine Linux).
Setup
Assuming you already have a DigitalOcean account and your domain associated with it. Just add an A record with desired name and IP address. That's it!
Usage
Pick one of the options below using the following settings:
- DIGITALOCEAN_TOKEN: The token you generate in DigitalOcean's API settings.
- DOMAIN: The domain your subdomain is registered at. (i.e.
foo.com
forhome.foo.com
) - NAME: Subdomain to use. (name in A record) (i.e.
home
forhome.foo.com
). Multiple subdomains must be separated by semicolons;
- SLEEP_INTERVAL: Polling time in seconds. (default: 300)
- REMOVE_DUPLICATES: If set to
"true"
, removes extra DNS records if more than one A record is found on a subdomain. Note that if this is not enabled, the script will NOT update subdomains with more than one A record (default: false)
Docker (Recommended)
$ docker pull code.tjo.space/mentos1386/digitalocean-dyndns:main
$ docker run -d --name dyndns \
-e DIGITALOCEAN_TOKEN="your_token_here" \
-e DOMAIN="yourdomain.com" \
-e NAME="subdomain" \
-e SLEEP_INTERVAL=2 \
-e REMOVE_DUPLICATES="true" \
code.tjo.space/mentos1386/digitalocean-dyndns:main
Manual
You can also create a cronjob using below command:
$ DIGITALOCEAN_TOKEN="your_token_here" DOMAIN="yourdomain.com" NAME="subdomain" SLEEP_INTERVAL=2 ./dyndns.sh