Dynamic DNS

Time Required

5 Minutes

Difficulty

Low

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

Requirements

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

CLOUDFLARE_APIKEY=
DOMAIN=
SUBDOMAIN=
PROXIED=true

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