You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
You will likely need to make the dreamhost-ddns file executable first:
43
47
```bash
44
48
chmod +x dreamhost-ddns
45
49
```
46
50
47
51
Note: When setting this up as a cronjob, it is recommended that you use the --config flag in the crontab entry, and specify the FULL path to your config.toml file
52
+
<br><br>
53
+
54
+
55
+
## Configuration
56
+
Configuration is quite flexible, suitable for any situation
57
+
58
+
When using a .toml (or config.toml) file, it should be in the following format:
Values passed in the command line will override values from your configuration file. In this example, your config file is used only for the API Key, but not for the record:
80
+
```bash
81
+
$ ./dreamhost-ddns --record jenny.mydomain.com
82
+
```
83
+
<br><br>
84
+
85
+
## Important Notes
86
+
### Dreamhost API Rate limiting
87
+
The dreamhost API is limited to 500 calls daily. This DDNS client makes a minimum of one API call per run, and between four and eight calls (typically four) when updating the DNS record. When scheduling this to run, please keep this in mind when deciding how often to run. When reaching this limit, you will see this error message:
88
+
```txt
89
+
Error: DreamHost API error: rate error: module dns used more than 500 times in 1 day(s)
90
+
```
91
+
92
+
### Crontab recommendation
93
+
It is recommended to pass a configuration file parameter when defining the crontab entry even if you are using the default of config.toml. It is also recommended to set a sane yet aggressive scheduling interval. For example, this would run every 10 minutes:
Multiple services are queried simultaneously to determine your WAN IP. If your firewall is blocking all of these services, the application will fail:
159
+
-https://icanhazip.com
160
+
-https://api.ipify.org
161
+
-https://ifconfig.me/ip
162
+
-https://checkip.amazonaws.com
163
+
164
+
This is how those are used
165
+
```txt
166
+
get_wan_ip()
167
+
│
168
+
├─ shuffle service list
169
+
│
170
+
├─ spawn parallel threads
171
+
│
172
+
├─ query IP services
173
+
│
174
+
├─ first successful response wins
175
+
│
176
+
└─ cancel remaining workers
177
+
```
178
+
<br><br>
179
+
180
+
### Updating DNS
181
+
In the best case scenario, three API calls are made to update the DNS record. For safety reasons, a verification is done before the old DNS record is removed. If the verification fails, it is retried up to five times which involves one additional API call each time.
0 commit comments