ddns-updater icon indicating copy to clipboard operation
ddns-updater copied to clipboard

Bug: Stuck in the 'Deploying' STate

Open khowe085 opened this issue 1 year ago β€’ 14 comments

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

  1. Is this urgent: No
  2. DNS provider(s) you use: CloudFlare
  3. Program version: 2.9.0 built on 2024-12-24T10:40:42.120Z (commit 78f3061)
  4. What are you using to run the container: TrueNAS Scale community apps
  5. 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

khowe085 avatar Jan 02 '25 03:01 khowe085

also experiencing this on TrueNAS Scale v24.10, same conditions

briveramelo avatar Jan 02 '25 03:01 briveramelo

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 -.-

haldi4803 avatar Jan 02 '25 17:01 haldi4803

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

khowe085 avatar Jan 09 '25 02:01 khowe085

Same problem here, it would be cool to give ddns-updater the possibility to set the dns server like in some other apps.

tina-junold avatar Mar 19 '25 14:03 tina-junold

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

starlink89 avatar Mar 23 '25 13:03 starlink89

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

8aXaJzvh avatar Mar 28 '25 16:03 8aXaJzvh

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

JimmyRascon avatar Mar 31 '25 15:03 JimmyRascon

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"
          ]
        }
      }
    }
  }
]

Sophist-UK avatar May 14 '25 15:05 Sophist-UK

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:

Image

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.

Sophist-UK avatar May 14 '25 15:05 Sophist-UK

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:53

I tried this:

Image

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.

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!

DragonQ avatar May 28 '25 12:05 DragonQ

@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.

rex avatar Sep 22 '25 18:09 rex

Same problem again. Deleting updates.json didn't solve it this time.

Sophist-UK avatar Oct 14 '25 20:10 Sophist-UK

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...

rolledback avatar Oct 31 '25 03:10 rolledback

Ah lovely, you can set "proxied": true for CloudFlare domains. πŸ˜„ This has fixed the issue for me.

rolledback avatar Oct 31 '25 03:10 rolledback