Dynamic DNS

Time Required

5 Minutes



You can use a Dynamic DNS container to automatically update your Cloudflare managed domain, to keep it up to date with your dynamic public IP address


Compose Files

You will be able to use the https://github.com/trentnbauer/agg-docs/blob/main/guides/cloudflare/broken-reference/README.md guide to put these compose files into production

Example .ENV file


Some things to note

  • If you are setting up DDNS for your root domain, leave the subdomain variable blank

  • It is recommended to leave proxied as true but if your service fails to load, try it as false.

  • You may need to configure a Cloudflare tunnel, per Tunnel

Confirm the Container is working

Log into Portainer and view the logs for the container, you should see something similar to below

[s6-init] making user provided files available at /var/run/s6/etc...exited 0.
[s6-init] ensuring user provided files have correct perms...exited 0.
[fix-attrs.d] applying ownership & permissions fixes...
[fix-attrs.d] done.
[cont-init.d] executing container initialization scripts...
[cont-init.d] 30-cloudflare-setup: executing... 
DNS Zone: <REDACTED> (ebf622fd8125a2b85523ddd64814a66e)
DNS record for '<REDACTED>' was not found in <REDACTED> zone. Creating now...
DNS Record: <REDACTED> (5109ffe562242554b4a4599b06ffa0f0)
[cont-init.d] 30-cloudflare-setup: exited 0.
[cont-init.d] 50-ddns: executing... 
No DNS update required for <REDACTED> (<REDACTED>).
[cont-init.d] 50-ddns: exited 0.
[cont-init.d] done.
[services.d] starting services
Starting crond...
crond: crond (busybox 1.31.1) started, log level 6
[services.d] done.

Last updated