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
Copy file name to clipboardExpand all lines: README.md
+14Lines changed: 14 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -63,6 +63,13 @@ The architectures supported by this image are:
63
63
- Create a container with your subdomain(s) and token. If you own user.duckdns.org, you put `SUBDOMAINS=user` you would NOT put a sub subdomain like overseerr from overseerr.user.ducksdns.org
64
64
- It will update your IP with the DuckDNS service every 5 minutes (with a random jitter)
65
65
66
+
## Notice regarding automatic detection
67
+
68
+
Using the `UPDATE_IP` variable whatever its value (`ipv4`, `ipv6` or `both`) uses external *Cloudflare whoami* service to detect public IP addresses.
69
+
**Be aware that using this variable will query a third-party service other than DuckDNS.**
70
+
71
+
Omitting the `UPDATE_IP` variable uses DuckDNS for detection and only supports IPv4.
72
+
66
73
## Usage
67
74
68
75
To help you get started creating a container from this image you can either use docker-compose or the docker cli.
@@ -76,12 +83,14 @@ services:
76
83
duckdns:
77
84
image: lscr.io/linuxserver/duckdns:latest
78
85
container_name: duckdns
86
+
network_mode: host #optional
79
87
environment:
80
88
- PUID=1000 #optional
81
89
- PGID=1000 #optional
82
90
- TZ=Etc/UTC #optional
83
91
- SUBDOMAINS=subdomain1,subdomain2
84
92
- TOKEN=token
93
+
- UPDATE_IP=ipv4 #optional
85
94
- LOG_FILE=false #optional
86
95
volumes:
87
96
- /path/to/appdata/config:/config #optional
@@ -93,11 +102,13 @@ services:
93
102
```bash
94
103
docker run -d \
95
104
--name=duckdns \
105
+
--net=host `#optional` \
96
106
-e PUID=1000 `#optional` \
97
107
-e PGID=1000 `#optional` \
98
108
-e TZ=Etc/UTC `#optional` \
99
109
-e SUBDOMAINS=subdomain1,subdomain2 \
100
110
-e TOKEN=token \
111
+
-e UPDATE_IP=ipv4 `#optional` \
101
112
-e LOG_FILE=false `#optional` \
102
113
-v /path/to/appdata/config:/config `#optional` \
103
114
--restart unless-stopped \
@@ -110,11 +121,13 @@ Containers are configured using parameters passed at runtime (such as those abov
110
121
111
122
| Parameter | Function |
112
123
| :----: | --- |
124
+
|`--net=host`| Use host networking for IPv6 detection |
113
125
|`-e PUID=1000`| for UserID - see below for explanation |
114
126
|`-e PGID=1000`| for GroupID - see below for explanation |
115
127
|`-e TZ=Etc/UTC`| specify a timezone to use, see this [list](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List). |
116
128
|`-e SUBDOMAINS=subdomain1,subdomain2`| multiple subdomains allowed, comma separated, no spaces, if your domain is user.duckdns.org you put user, not a sub-subdomain |
117
129
|`-e TOKEN=token`| DuckDNS token |
130
+
|`-e UPDATE_IP=ipv4`| Set to `ipv6` or `ipv4` to update **only** your public IPv4/6 address. Set to `both` to update IPv6 and IPv4 address. This variable makes use of a [third-party service](#notice-regarding-automatic-detection). Omitting this variable uses DuckDNS for detection and only supports IPv4. `both` and `ipv6` modes needs [host networking](#networking-net). |
118
131
|`-e LOG_FILE=false`| Set to `true` to log to file (also need to map /config). |
119
132
|`-v /config`| Used in conjunction with logging to file. |
120
133
@@ -297,6 +310,7 @@ Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64
297
310
## Versions
298
311
299
312
***14.10.23:** - Rework shell script forcase insensitivity and update readme to be more clear.
313
+
***13.10.23:** - Add support for public IPv6 address update using Cloudflare.
300
314
***25.05.23:** - Rebase to Alpine 3.18, deprecate armhf.
301
315
***02.03.23:** - Rework shell scripts and cron logic.
0 commit comments