Skip to content

Commit bf919c0

Browse files
committed
update README
1 parent 7e236a7 commit bf919c0

File tree

1 file changed

+14
-7
lines changed

1 file changed

+14
-7
lines changed

README.md

+14-7
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# DIGITAL OCEAN DYNAMIC IP API CLIENT
22
A simple script in Go language to automatically update Digital ocean DNS records if you have a dynamic IP. Since it can be compiled on any platform, you can use it along with raspberrypi etc.
33

4-
To find your Dynamic IP, this program will call out to https://ipv4bot.whatismyipaddress.com for ipv4 addresses and https://ipv6bot.whatismyipaddress.com for ipv6 addresses. This is to support dual-stack environments.
4+
To find your Dynamic IP, this program will call out to https://ipv4bot.whatismyipaddress.com for ipv4 addresses and https://ipv6bot.whatismyipaddress.com for ipv6 addresses. This is to support dual-stack environments. (These URLs can be customized; see Usage, below.)
55

66
## Requirements
77
Requires Git, Go 1.8+, and https://github.com/mitchellh/go-homedir for building.
@@ -18,9 +18,11 @@ Once the module is fetched, you should be able to compile the program using `go
1818

1919
## Usage
2020
```bash
21+
# clone the repo in ~/go/src/github.com/anaganisk:
2122
git clone https://github.com/anaganisk/digitalocean-dynamic-dns-ip.git
2223
```
23-
create a file ".digitalocean-dynamic-ip.json" (dot prefix to hide the file) and place it user home directory and add the following json
24+
25+
Create a file `.digitalocean-dynamic-ip.json` (dot prefix to hide the file) and place it in your home directory. Add the following JSON (or refer to the sample configuration file, `digitalocean-dynamic-ip.sample.json`):
2426

2527
```json
2628
{
@@ -29,6 +31,7 @@ create a file ".digitalocean-dynamic-ip.json" (dot prefix to hide the file) and
2931
"useIPv4": true,
3032
"useIPv6": false,
3133
"allowIPv4InIPv6": false,
34+
"ipv4CheckUrl": "https://ipv4bot.whatismyipaddress.com",
3235
"domains": [
3336
{
3437
"domain": "example.com",
@@ -52,6 +55,7 @@ create a file ".digitalocean-dynamic-ip.json" (dot prefix to hide the file) and
5255
]
5356
}
5457
```
58+
5559
The TTL can optionally be updated if passed in the configuration. Digital Ocean has a minimum TTL of 30 seconds. The `type` and the `name` must match existing records in the Digital Ocean DNS configuration. Only `types` of `A` and `AAAA` allowed at the moment.
5660

5761
If you want to reduce the number of calls made to the digital ocean API and have more than 20 DNS records in your domain, you can adjust the `doPageSize` parameter. By default, Digital Ocean returns 20 records per page. Digital Ocean has a max page size of 200 items.
@@ -60,22 +64,25 @@ By default, the configuration checks both IPv4 and IPv6 addresses assuming your
6064

6165
The `allowIPv4InIPv6` configuration option will allow adding an IPv4 address to be used in a AAAA record for IPv6 lookups.
6266

67+
The `ipv4CheckUrl` and `ipv6CheckUrl` configuration settings are optional. If set, they must be URLs which respond to a GET request, with a plaintext response containing only your IP address. If unset, they default to `https://ipv_bot.whatismyipaddress.com`.
68+
6369
```bash
64-
#run
65-
go build digitalocean-dynamic-ip.go
70+
# after running `go build digitalocean-dynamic-ip.go`, run:
6671
./digitalocean-dynamic-ip
6772
```
6873

6974
Optionally, you can create the configuration file with any name wherever you want, and pass it as a command line argument:
75+
7076
```bash
71-
#run
77+
#run:
7278
./digitalocean-dynamic-ip /path/to/my/config.json
7379
```
7480

7581
You can either set this to run periodically with a cronjob or use your own method.
82+
7683
```bash
77-
# run crontab -e
78-
# sample cron job task
84+
# run `crontab -e` to edit your crontab
85+
# sample cron job task
7986

8087
# m h dom mon dow command
8188
*/5 * * * * /home/user/digitalocean-dynamic-dns-ip/digitalocean-dynamic-ip

0 commit comments

Comments
 (0)