Bug: Stuck in the 'Deploying' STate
TLDR: I deployed the application to TrueNAS Scale v24.10 and it is stuck in the 'deploying' state even though it is actively updating my IP address as expected
- Is this urgent: No
- DNS provider(s) you use: CloudFlare
- Program version: 2.9.0 built on 2024-12-24T10:40:42.120Z (commit 78f3061)
- What are you using to run the container: TrueNAS Scale community apps
- Extra information (optional):
AFAIK This version of TrueNAS scale is using docker. They have a UI system that provides fields and then builds the container (presumably with docker compose) from that input. I haven't been able to find the actual yaml file in the UI though.
Logs:
2025-01-02 03:26:30.180094+00:00========================================
2025-01-02 03:26:30.180127+00:00========================================
2025-01-02 03:26:30.180140+00:00============= ddns-updater =============
2025-01-02 03:26:30.180150+00:00========================================
2025-01-02 03:26:30.180161+00:00=========== Made with β€οΈ by ============
2025-01-02 03:26:30.180180+00:00======= https://github.com/qdm12 =======
2025-01-02 03:26:30.180190+00:00========================================
2025-01-02 03:26:30.180201+00:00========================================
2025-01-02 03:26:30.180211+00:002025-01-02T03:26:30.180211778Z
2025-01-02 03:26:30.180222+00:00Running version 2.9.0 built on 2024-12-24T10:40:42.120Z (commit 78f3061)
2025-01-02 03:26:30.180239+00:002025-01-02T03:26:30.180239967Z
2025-01-02 03:26:30.180250+00:00π§ Need help? β Discussion? https://github.com/qdm12/ddns-updater/discussions/new/choose
2025-01-02 03:26:30.180261+00:00π Bug? β¨ New feature? https://github.com/qdm12/ddns-updater/issues/new/choose
2025-01-02 03:26:30.180272+00:00π» Email? [email protected]
2025-01-02 03:26:30.180289+00:00π° Help me? https://www.paypal.me/qmcgaw https://github.com/sponsors/qdm12
2025-01-02 03:26:30.180751+00:002025-01-01T22:26:30-05:00 INFO Settings summary:
2025-01-02 03:26:30.180772+00:00βββ HTTP client
2025-01-02 03:26:30.180785+00:00| βββ Timeout: 10s
2025-01-02 03:26:30.180806+00:00βββ Update
2025-01-02 03:26:30.180817+00:00| βββ Period: 5m0s
2025-01-02 03:26:30.180827+00:00| βββ Cooldown: 5m0s
2025-01-02 03:26:30.180838+00:00βββ Public IP fetching
2025-01-02 03:26:30.180848+00:00| βββ HTTP enabled: yes
2025-01-02 03:26:30.180859+00:00| βββ HTTP IP providers
2025-01-02 03:26:30.180877+00:00| | βββ all
2025-01-02 03:26:30.180888+00:00| βββ HTTP IPv4 providers
2025-01-02 03:26:30.180898+00:00| | βββ all
2025-01-02 03:26:30.180909+00:00| βββ HTTP IPv6 providers
2025-01-02 03:26:30.180919+00:00| | βββ all
2025-01-02 03:26:30.180937+00:00| βββ DNS enabled: yes
2025-01-02 03:26:30.180948+00:00| βββ DNS timeout: 3s
2025-01-02 03:26:30.180958+00:00| βββ DNS over TLS providers
2025-01-02 03:26:30.180969+00:00| βββ all
2025-01-02 03:26:30.180979+00:00βββ Resolver: use Go default resolver
2025-01-02 03:26:30.180996+00:00βββ Server
2025-01-02 03:26:30.181007+00:00| βββ Listening address: :30007
2025-01-02 03:26:30.181017+00:00| βββ Root URL: /
2025-01-02 03:26:30.181028+00:00βββ Health
2025-01-02 03:26:30.181038+00:00| βββ Server listening address: 127.0.0.1:9999
2025-01-02 03:26:30.181056+00:00βββ Paths
2025-01-02 03:26:30.181067+00:00| βββ Data directory: /updater/data
2025-01-02 03:26:30.181077+00:00| βββ Config file: /updater/data/config.json
2025-01-02 03:26:30.181088+00:00| βββ Umask: --------w-
2025-01-02 03:26:30.181098+00:00βββ Backup
2025-01-02 03:26:30.181116+00:00| βββ Period: 24h0m0s
2025-01-02 03:26:30.181127+00:00| βββ Directory: /updater/data
2025-01-02 03:26:30.181137+00:00βββ Logger
2025-01-02 03:26:30.181148+00:00βββ Level: info
2025-01-02 03:26:30.181160+00:00βββ Caller: hidden
2025-01-02 03:26:30.181187+00:002025-01-01T22:26:30-05:00 INFO reading JSON config from environment variable CONFIG
2025-01-02 03:26:30.181574+00:002025-01-01T22:26:30-05:00 INFO Found single setting to update record
2025-01-02 03:26:30.305828+00:002025-01-01T22:26:30-05:00 INFO Reading history from database: domain {domain} owner @ ipv4 or ipv6
2025-01-02 03:26:30.306359+00:002025-01-01T22:26:30-05:00 INFO [healthcheck server] health http server listening on 127.0.0.1:9999
2025-01-02 03:26:30.306458+00:002025-01-01T22:26:30-05:00 INFO [http server] http server listening on [::]:30007
2025-01-02 03:26:30.306524+00:002025-01-01T22:26:30-05:00 INFO [backup] each 24h0m0s; writing zip files to directory /updater/data
2025-01-02 03:26:31.044362+00:002025-01-01T22:26:31-05:00 INFO IP address of {domain} is {privateIP} and your IP address is {publicIP}
2025-01-02 03:26:31.044453+00:002025-01-01T22:26:31-05:00 INFO Updating record [domain: {domain} | owner: @ | provider: cloudflare | ip: ipv4 or ipv6] to use {publicIP}
2025-01-02 03:26:38.638178+00:002025/01/01 22:26:38 "GET http://{privateIP}:30007/ HTTP/1.1" from {privateIP} - 200 2488B in 290.652Β΅s
2025-01-02 03:26:38.672136+00:002025/01/01 22:26:38 "GET http://{privateIP}:30007/static/styles.css HTTP/1.1" from {privateIP} - 200 3203B in 463.907Β΅s
2025-01-02 03:26:38.704469+00:002025/01/01 22:26:38 "GET http://{privateIP}:30007/static/favicon.svg HTTP/1.1" from {privateIP} - 200 3192B in 90.298Β΅s
Host OS: TrueNAS Scale v24.10
also experiencing this on TrueNAS Scale v24.10, same conditions
2025-01-02 17:17:53.816655+00:00========================================
2025-01-02 17:17:53.816703+00:00========================================
2025-01-02 17:17:53.816714+00:00============= ddns-updater =============
2025-01-02 17:17:53.816721+00:00========================================
2025-01-02 17:17:53.816728+00:00=========== Made with β€οΈ by ============
2025-01-02 17:17:53.816741+00:00======= https://github.com/qdm12 =======
2025-01-02 17:17:53.816749+00:00========================================
2025-01-02 17:17:53.816755+00:00========================================
2025-01-02 17:17:53.816762+00:002025-01-02T17:17:53.816762493Z
2025-01-02 17:17:53.816769+00:00Running version 2.9.0 built on 2024-12-24T10:40:42.120Z (commit 78f3061)
2025-01-02 17:17:53.816779+00:002025-01-02T17:17:53.816779707Z
2025-01-02 17:17:53.816787+00:00π§ Need help? β Discussion? https://github.com/qdm12/ddns-updater/discussions/new/choose
2025-01-02 17:17:53.816794+00:00π Bug? β¨ New feature? https://github.com/qdm12/ddns-updater/issues/new/choose
2025-01-02 17:17:53.816801+00:00π» Email? [email protected]
2025-01-02 17:17:53.816812+00:00π° Help me? https://www.paypal.me/qmcgaw https://github.com/sponsors/qdm12
2025-01-02 17:17:53.816907+00:002025-01-02T18:17:53+01:00 INFO Settings summary:
2025-01-02 17:17:53.816927+00:00βββ HTTP client
2025-01-02 17:17:53.816936+00:00| βββ Timeout: 10s
2025-01-02 17:17:53.816950+00:00βββ Update
2025-01-02 17:17:53.816959+00:00| βββ Period: 5m0s
2025-01-02 17:17:53.816966+00:00| βββ Cooldown: 5m0s
2025-01-02 17:17:53.816973+00:00βββ Public IP fetching
2025-01-02 17:17:53.816980+00:00| βββ HTTP enabled: yes
2025-01-02 17:17:53.816987+00:00| βββ HTTP IP providers
2025-01-02 17:17:53.816998+00:00| | βββ all
2025-01-02 17:17:53.817005+00:00| βββ HTTP IPv4 providers
2025-01-02 17:17:53.817012+00:00| | βββ all
2025-01-02 17:17:53.817019+00:00| βββ HTTP IPv6 providers
2025-01-02 17:17:53.817026+00:00| | βββ all
2025-01-02 17:17:53.817036+00:00| βββ DNS enabled: yes
2025-01-02 17:17:53.817044+00:00| βββ DNS timeout: 3s
2025-01-02 17:17:53.817050+00:00| βββ DNS over TLS providers
2025-01-02 17:17:53.817057+00:00| βββ cloudflare
2025-01-02 17:17:53.817064+00:00βββ Resolver: use Go default resolver
2025-01-02 17:17:53.817074+00:00βββ Server
2025-01-02 17:17:53.817081+00:00| βββ Listening address: :30000
2025-01-02 17:17:53.817088+00:00| βββ Root URL: /
2025-01-02 17:17:53.817095+00:00βββ Health
2025-01-02 17:17:53.817101+00:00| βββ Server listening address: 127.0.0.1:9999
2025-01-02 17:17:53.817132+00:00βββ Paths
2025-01-02 17:17:53.817141+00:00| βββ Data directory: /updater/data
2025-01-02 17:17:53.817148+00:00| βββ Config file: /updater/data/config.json
2025-01-02 17:17:53.817155+00:00| βββ Umask: --------w-
2025-01-02 17:17:53.817161+00:00βββ Backup
2025-01-02 17:17:53.817172+00:00| βββ Period: 24h0m0s
2025-01-02 17:17:53.817180+00:00| βββ Directory: /updater/data
2025-01-02 17:17:53.817186+00:00βββ Logger
2025-01-02 17:17:53.817193+00:00βββ Level: info
2025-01-02 17:17:53.817200+00:00βββ Caller: hidden
2025-01-02 17:17:53.817210+00:002025-01-02T18:17:53+01:00 INFO reading JSON config from environment variable CONFIG
2025-01-02 17:17:53.817219+00:002025-01-02T18:17:53+01:00 INFO reading JSON config from file /updater/data/config.json
2025-01-02 17:17:53.817227+00:002025-01-02T18:17:53+01:00 WARN Found no setting to update record
2025-01-02 17:17:53.860899+00:002025-01-02T18:17:53+01:00 INFO [healthcheck server] health http server listening on 127.0.0.1:9999
2025-01-02 17:17:53.860983+00:002025-01-02T18:17:53+01:00 INFO [http server] http server listening on [::]:30000
2025-01-02 17:17:53.861020+00:002025-01-02T18:17:53+01:00 INFO [backup] each 24h0m0s; writing zip files to directory /updater/data
2025-01-02 17:21:14.519865+00:002025/01/02 18:21:14 "GET http://elitedesk.netbird.selfhosted:30000/ HTTP/1.1" from 172.16.4.1:59887 - 200 1907B in 31.418Β΅s
2025-01-02 17:21:14.577275+00:002025/01/02 18:21:14 "GET http://elitedesk.netbird.selfhosted:30000/static/styles.css HTTP/1.1" from 172.16.4.1:59887 - 200 3203B in 256.593Β΅s
2025-01-02 17:21:14.617148+00:002025/01/02 18:21:14 "GET http://elitedesk.netbird.selfhosted:30000/static/favicon.svg HTTP/1.1" from 172.16.4.1:59887 - 200 3192B in 110.095Β΅s
2025-01-02 17:28:32.469756+00:002025/01/02 18:28:32 "GET http://elitedesk.netbird.selfhosted:30000/ HTTP/1.1" from 172.16.4.1:60163 - 200 1907B in 67.033Β΅s
2025-01-02 17:28:32.527468+00:002025/01/02 18:28:32 "GET http://elitedesk.netbird.selfhosted:30000/static/styles.css HTTP/1.1" from 172.16.4.1:60163 - 200 3203B in 287.053Β΅s
2025-01-02 17:28:32.565613+00:002025/01/02 18:28:32 "GET http://elitedesk.netbird.selfhosted:30000/static/favicon.svg HTTP/1.1" from 172.16.4.1:60163 - 200 3192B in 316.402Β΅s
it's running well, except:
2025-01-02 17:17:53.817210+00:002025-01-02T18:17:53+01:00 INFO reading JSON config from environment variable CONFIG 2025-01-02 17:17:53.817219+00:002025-01-02T18:17:53+01:00 INFO reading JSON config from file /updater/data/config.json 2025-01-02 17:17:53.817227+00:002025-01-02T18:17:53+01:00 WARN Found no setting to update record
config.json gets overwritten everytime the container starts... Scale v24.10
Edit: There is now a "Config" option in TrueNAS... so config.json is deprecated -.-
Crossed-posted this with the Over at TrueNAS apps. Give it a read @haldi4803.
Turns out that, for me anyway, this is because I have a custom DNS rule on my router that loops my domain back to the the local server. DDNS-Updater doesn't like that, and in turn fails the health check that determines if the app is running or still deploying. They closed the issue as it 'behaves as intended' from the view of TrueNAS Apps.
From a DDNS-Updater perspective, I don't know why it doesn't like it when I have this rule in place. I would argue that this should probably be logged as a warning rather than failing the health check. In mu case this rule was setup so that I can access my apps through a reverse proxy (on the NAS), using my public domain / certs, without having to permanently open port 443.
Here is the error that the related to the health check failure.
2025-01-07T21:09:50-05:00 ERROR program is unhealthy: lookup IP addresses do not match: {NAS private IP} instead of {my public IP} for {mydomain}\n\n2025-01-07T21:09:50-05:00 INFO Shutdown successful\n
Same problem here, it would be cool to give ddns-updater the possibility to set the dns server like in some other apps.
I had the same problem, I'm using pihole as dns in my router, just change my dns to manual in my host, reinstall the container and boom!!
Works perfect now
For anyone else having this issue. I worked around the issue by specifying a dns server in the ddns-updater docker-compose file.
dns:
- '8.8.8.8'
I found mine in the following location.
/mnt/.ix-apps/app_configs/ddns-updater/versions/1.0.0/templates/rendered/docker-compose.yaml
I encountered the same problem in TrueNAS, but after setting this environment variable in the app settings, it now shows as 'Running'.
RESOLVER_ADDRESS: 8.8.8.8:53
I am experiencing this problem.
I tried opening a container shell to run /updater/ddns-updater healthcheck but the container shell wouldn't connect.
$ sudo docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
735848f55ee6 qmcgaw/ddns-updater:v2.9.0 "/updater/ddns-updatβ¦" 17 minutes ago Up 17 minutes (health: starting) 8000/tcp, 0.0.0.0:30007->30007/tcp, :::30007->30007/tcp
$ sudo docker inspect 735848f55ee6
[
{
"Id": "735848f55ee62c6ac2752b21a8283bcb6eab936a7735fa6c9dd090db8cebbdcd",
"Created": "2025-05-14T15:11:48.015538902Z",
"Path": "/updater/ddns-updater",
"Args": [],
"State": {
"Status": "running",
"Running": true,
"Paused": false,
"Restarting": false,
"OOMKilled": false,
"Dead": false,
"Pid": 38123,
"ExitCode": 0,
"Error": "",
"StartedAt": "2025-05-14T15:12:03.522921466Z",
"FinishedAt": "0001-01-01T00:00:00Z",
"Health": {
"Status": "starting",
"FailingStreak": 18,
"Log": [
{
"Start": "2025-05-14T16:25:16.564711671+01:00",
"End": "2025-05-14T16:25:16.961032808+01:00",
"ExitCode": 1,
"Output": "2025-05-14T16:25:16+01:00 ERROR program is unhealthy: lookup IP addresses do not match: 195.184.243.12 instead of 94.126.149.149 for casalaranja.webredirect.org\n\n2025-05-14T16:25:16+01:00 INFO Shutdown successful\n"
},
{
"Start": "2025-05-14T16:26:16.965433069+01:00",
"End": "2025-05-14T16:26:17.322746358+01:00",
"ExitCode": 1,
"Output": "2025-05-14T16:26:17+01:00 ERROR program is unhealthy: lookup IP addresses do not match: 195.184.243.12 instead of 94.126.149.149 for casalaranja.webredirect.org\n\n2025-05-14T16:26:17+01:00 INFO Shutdown successful\n"
},
{
"Start": "2025-05-14T16:27:17.323583334+01:00",
"End": "2025-05-14T16:27:17.599033924+01:00",
"ExitCode": 1,
"Output": "2025-05-14T16:27:17+01:00 ERROR program is unhealthy: lookup IP addresses do not match: 195.184.243.12 instead of 94.126.149.149 for casalaranja.webredirect.org\n\n2025-05-14T16:27:17+01:00 INFO Shutdown successful\n"
},
{
"Start": "2025-05-14T16:28:17.606477334+01:00",
"End": "2025-05-14T16:28:17.849566997+01:00",
"ExitCode": 1,
"Output": "2025-05-14T16:28:17+01:00 ERROR program is unhealthy: lookup IP addresses do not match: 195.184.243.12 instead of 94.126.149.149 for casalaranja.webredirect.org\n\n2025-05-14T16:28:17+01:00 INFO Shutdown successful\n"
},
{
"Start": "2025-05-14T16:29:17.851182012+01:00",
"End": "2025-05-14T16:29:18.123237015+01:00",
"ExitCode": 1,
"Output": "2025-05-14T16:29:18+01:00 ERROR program is unhealthy: lookup IP addresses do not match: 195.184.243.12 instead of 94.126.149.149 for casalaranja.webredirect.org\n\n2025-05-14T16:29:18+01:00 INFO Shutdown successful\n"
}
]
}
},
"Image": "sha256:a9741359e0690182d4c8d1813b661f1791ced2370905b8e45570e4a36a5bd5a9",
"ResolvConfPath": "/mnt/.ix-apps/docker/containers/735848f55ee62c6ac2752b21a8283bcb6eab936a7735fa6c9dd090db8cebbdcd/resolv.conf",
"HostnamePath": "/mnt/.ix-apps/docker/containers/735848f55ee62c6ac2752b21a8283bcb6eab936a7735fa6c9dd090db8cebbdcd/hostname",
"HostsPath": "/mnt/.ix-apps/docker/containers/735848f55ee62c6ac2752b21a8283bcb6eab936a7735fa6c9dd090db8cebbdcd/hosts",
"LogPath": "/mnt/.ix-apps/docker/containers/735848f55ee62c6ac2752b21a8283bcb6eab936a7735fa6c9dd090db8cebbdcd/735848f55ee62c6ac2752b21a8283bcb6eab936a7735fa6c9dd090db8cebbdcd-json.log",
"Name": "/ix-ddns-updater-ddns-1",
"RestartCount": 0,
"Driver": "overlay2",
"Platform": "linux",
"MountLabel": "",
"ProcessLabel": "",
"AppArmorProfile": "docker-default",
"ExecIDs": null,
"HostConfig": {
"Binds": null,
"ContainerIDFile": "",
"LogConfig": {
"Type": "json-file",
"Config": {}
},
"NetworkMode": "ix-ddns-updater_default",
"PortBindings": {
"30007/tcp": [
{
"HostIp": "",
"HostPort": "30007"
}
]
},
"RestartPolicy": {
"Name": "unless-stopped",
"MaximumRetryCount": 0
},
"AutoRemove": false,
"VolumeDriver": "",
"VolumesFrom": null,
"ConsoleSize": [
0,
0
],
"CapAdd": null,
"CapDrop": [
"ALL"
],
"CgroupnsMode": "private",
"Dns": null,
"DnsOptions": null,
"DnsSearch": null,
"ExtraHosts": [],
"GroupAdd": [
"568"
],
"IpcMode": "private",
"Cgroup": "",
"Links": null,
"OomScoreAdj": 0,
"PidMode": "",
"Privileged": false,
"PublishAllPorts": false,
"ReadonlyRootfs": false,
"SecurityOpt": [
"no-new-privileges=true"
],
"UTSMode": "",
"UsernsMode": "",
"ShmSize": 67108864,
"Runtime": "runc",
"Isolation": "",
"CpuShares": 0,
"Memory": 134217728,
"NanoCpus": 1000000000,
"CgroupParent": "",
"BlkioWeight": 0,
"BlkioWeightDevice": null,
"BlkioDeviceReadBps": null,
"BlkioDeviceWriteBps": null,
"BlkioDeviceReadIOps": null,
"BlkioDeviceWriteIOps": null,
"CpuPeriod": 0,
"CpuQuota": 0,
"CpuRealtimePeriod": 0,
"CpuRealtimeRuntime": 0,
"CpusetCpus": "",
"CpusetMems": "",
"Devices": null,
"DeviceCgroupRules": null,
"DeviceRequests": null,
"MemoryReservation": 0,
"MemorySwap": 268435456,
"MemorySwappiness": null,
"OomKillDisable": null,
"PidsLimit": null,
"Ulimits": null,
"CpuCount": 0,
"CpuPercent": 0,
"IOMaximumIOps": 0,
"IOMaximumBandwidth": 0,
"Mounts": [
{
"Type": "bind",
"Source": "/mnt/.ix-apps/app_mounts/ddns-updater/data",
"Target": "/updater/data",
"BindOptions": {
"Propagation": "rprivate"
}
}
],
"MaskedPaths": [
"/proc/asound",
"/proc/acpi",
"/proc/kcore",
"/proc/keys",
"/proc/latency_stats",
"/proc/timer_list",
"/proc/timer_stats",
"/proc/sched_debug",
"/proc/scsi",
"/sys/firmware",
"/sys/devices/virtual/powercap"
],
"ReadonlyPaths": [
"/proc/bus",
"/proc/fs",
"/proc/irq",
"/proc/sys",
"/proc/sysrq-trigger"
]
},
"GraphDriver": {
"Data": {
"LowerDir": "/mnt/.ix-apps/docker/overlay2/15fafe6b1ae12e27d4630098b8326f24739541e2a130f5da1208b7a0a4a022a1-init/diff:/mnt/.ix-apps/docker/overlay2/bd374985cb19d324789b9e7786312f71238869bcf680ca7c733d8a45e3070aa4/diff:/mnt/.ix-apps/docker/overlay2/795e19cf9368b6bdc42b06ad390eacffd22adc45549cf8c3ab49d52f9b4fe2bc/diff:/mnt/.ix-apps/docker/overlay2/4bddd5b8eb89f4aef2a8ab37334e760ab519c0c084bd0f3c532150d030d8e083/diff",
"MergedDir": "/mnt/.ix-apps/docker/overlay2/15fafe6b1ae12e27d4630098b8326f24739541e2a130f5da1208b7a0a4a022a1/merged",
"UpperDir": "/mnt/.ix-apps/docker/overlay2/15fafe6b1ae12e27d4630098b8326f24739541e2a130f5da1208b7a0a4a022a1/diff",
"WorkDir": "/mnt/.ix-apps/docker/overlay2/15fafe6b1ae12e27d4630098b8326f24739541e2a130f5da1208b7a0a4a022a1/work"
},
"Name": "overlay2"
},
"Mounts": [
{
"Type": "bind",
"Source": "/mnt/.ix-apps/app_mounts/ddns-updater/data",
"Destination": "/updater/data",
"Mode": "",
"RW": true,
"Propagation": "rprivate"
}
],
"Config": {
"Hostname": "735848f55ee6",
"Domainname": "",
"User": "568:568",
"AttachStdin": false,
"AttachStdout": true,
"AttachStderr": true,
"ExposedPorts": {
"30007/tcp": {},
"8000/tcp": {}
},
"Tty": false,
"OpenStdin": false,
"StdinOnce": false,
"Env": [
"PERIOD=60m",
"BACKUP_PERIOD=24h",
"HTTP_TIMEOUT=30s",
"BACKUP_DIRECTORY=/updater/data",
"NVIDIA_VISIBLE_DEVICES=void",
"PGID=568",
"GID=568",
"PUBLICIP_HTTP_PROVIDERS=",
"PUBLICIP_DNS_PROVIDERS=all",
"UMASK_SET=002",
"UID=568",
"PUBLICIPV6_HTTP_PROVIDERS=",
"PUBLICIPV4_HTTP_PROVIDERS=",
"LISTENING_ADDRESS=:30007",
"GROUP_ID=568",
"UPDATE_COOLDOWN_PERIOD=5m",
"PUBLICIP_DNS_TIMEOUT=10s",
"DATADIR=/updater/data",
"USER_ID=568",
"PUBLICIP_FETCHERS=",
"UMASK=002",
"PUID=568",
"TZ=Europe/Lisbon",
"SHOUTRRR_ADDRESSES=",
"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
"CONFIG_FILEPATH=/updater/data/config.json",
"RESOLVER_ADDRESS=",
"RESOLVER_TIMEOUT=5s",
"SERVER_ENABLED=yes",
"ROOT_URL=/",
"LOG_LEVEL=info",
"LOG_CALLER=hidden",
"SHOUTRRR_DEFAULT_TITLE=DDNS Updater",
"HEALTH_SERVER_ADDRESS=127.0.0.1:9999",
"HEALTH_HEALTHCHECKSIO_BASE_URL=https://hc-ping.com",
"HEALTH_HEALTHCHECKSIO_UUID="
],
"Cmd": null,
"Healthcheck": {
"Test": [
"CMD",
"/updater/ddns-updater",
"healthcheck"
],
"Interval": 60000000000,
"Timeout": 5000000000,
"StartPeriod": 10000000000,
"Retries": 30
},
"Image": "qmcgaw/ddns-updater:v2.9.0",
"Volumes": null,
"WorkingDir": "/updater",
"Entrypoint": [
"/updater/ddns-updater"
],
"OnBuild": null,
"Labels": {
"com.docker.compose.config-hash": "e98f09333b1f5bcf95483716f13f49e6ee8de55e8139364f87b36dfe6da987fe",
"com.docker.compose.container-number": "1",
"com.docker.compose.depends_on": "permissions:service_completed_successfully:false",
"com.docker.compose.image": "sha256:a9741359e0690182d4c8d1813b661f1791ced2370905b8e45570e4a36a5bd5a9",
"com.docker.compose.oneoff": "False",
"com.docker.compose.project": "ix-ddns-updater",
"com.docker.compose.project.config_files": "/mnt/.ix-apps/app_configs/ddns-updater/versions/1.1.17/templates/rendered/docker-compose.yaml",
"com.docker.compose.project.working_dir": "/mnt/.ix-apps/app_configs/ddns-updater/versions/1.1.17/templates/rendered",
"com.docker.compose.service": "ddns",
"com.docker.compose.version": "2.29.1",
"org.opencontainers.image.authors": "[email protected]",
"org.opencontainers.image.created": "2024-12-24T10:40:42.120Z",
"org.opencontainers.image.description": "Container to update DNS records periodically with WebUI for many DNS providers",
"org.opencontainers.image.documentation": "https://github.com/qdm12/ddns-updater",
"org.opencontainers.image.licenses": "MIT",
"org.opencontainers.image.revision": "78f30614b1d085ef6bfbfce92b0e45ca0204f42a",
"org.opencontainers.image.source": "https://github.com/qdm12/ddns-updater",
"org.opencontainers.image.title": "ddns-updater",
"org.opencontainers.image.url": "https://github.com/qdm12/ddns-updater",
"org.opencontainers.image.version": "2.9.0"
}
},
"NetworkSettings": {
"Bridge": "",
"SandboxID": "255d502d84629425958efcb0be3bfbfbae2248401915f7e35e8a01f61467ad6a",
"SandboxKey": "/var/run/docker/netns/255d502d8462",
"Ports": {
"30007/tcp": [
{
"HostIp": "0.0.0.0",
"HostPort": "30007"
},
{
"HostIp": "::",
"HostPort": "30007"
}
],
"8000/tcp": null
},
"HairpinMode": false,
"LinkLocalIPv6Address": "",
"LinkLocalIPv6PrefixLen": 0,
"SecondaryIPAddresses": null,
"SecondaryIPv6Addresses": null,
"EndpointID": "",
"Gateway": "",
"GlobalIPv6Address": "",
"GlobalIPv6PrefixLen": 0,
"IPAddress": "",
"IPPrefixLen": 0,
"IPv6Gateway": "",
"MacAddress": "",
"Networks": {
"ix-ddns-updater_default": {
"IPAMConfig": null,
"Links": null,
"Aliases": [
"ix-ddns-updater-ddns-1",
"ddns"
],
"MacAddress": "02:42:ac:10:03:02",
"DriverOpts": null,
"NetworkID": "f9a3872cdedc718a9fc658ff45e856a8f18f51148d7cc9f61b525554886bcf44",
"EndpointID": "0e480e602fcbfdd2b8558c63f878b5073da9c144754bf42faa7a2f5c16f20de8",
"Gateway": "172.16.3.1",
"IPAddress": "172.16.3.2",
"IPPrefixLen": 24,
"IPv6Gateway": "",
"GlobalIPv6Address": "",
"GlobalIPv6PrefixLen": 0,
"DNSNames": [
"ix-ddns-updater-ddns-1",
"ddns",
"735848f55ee6"
]
}
}
}
}
]
I encountered the same problem in TrueNAS, but after setting this environment variable in the app settings, it now shows as 'Running'.
RESOLVER_ADDRESS: 8.8.8.8:53
I tried this:
and the container log says:
2025-05-14 15:36:35.245115+00:00βββ Resolver
2025-05-14 15:36:35.245140+00:00| βββ Address: 8.8.8.8:53
2025-05-14 15:36:35.245158+00:00| βββ Timeout: 5s
but it made no difference for me - the app stayed in Deploying status.
For anyone else having this issue. I worked around the issue by specifying a dns server in the ddns-updater docker-compose file.
dns: - '8.8.8.8'I found mine in the following location.
/mnt/.ix-apps/app_configs/ddns-updater/versions/1.0.0/templates/rendered/docker-compose.yaml
Thanks, this fixed the issue for me. It was because I have a local DNS entry on my host system pointing "mydomain.com" to its local IP, which was then confusing the healthcheck because it was comparing the local IP to the external IP and finding them to be different. It meant my container was constantly being restarted every minute and never exiting the "starting" state.
I now have 5368 IP "changes" (in fact they are all the same) to manually delete from the updates.json file! :)
I encountered the same problem in TrueNAS, but after setting this environment variable in the app settings, it now shows as 'Running'.
RESOLVER_ADDRESS: 8.8.8.8:53I tried this:
and the container log says:
2025-05-14 15:36:35.245115+00:00βββ Resolver 2025-05-14 15:36:35.245140+00:00| βββ Address: 8.8.8.8:53 2025-05-14 15:36:35.245158+00:00| βββ Timeout: 5sbut it made no difference for me - the app stayed in
Deployingstatus.
Are you perhaps overriding the DNS somewhere, like a forwarding rule on your router? I do this to ensure my Pihole is used by everything but I have my main server excluded from the rule because (a) I trust it, and (b) issues like this!
@Sophist-UK Just FYI, you included sensitive security credentials in your debug output. I highly advise you to update your comment to remove those credentials and then change whatever passwords you accidentally exposed. I really think you should do that ASAP.
Same problem again. Deleting updates.json didn't solve it this time.
In my case, the problem appears to be that I have DNS proxying turned on at my DNS provider. Seems like something that you should be able to add to your config...
Ah lovely, you can set "proxied": true for CloudFlare domains. π This has fixed the issue for me.