This project is just a fork from this project. Look that one up for more details. This fork only adds three more features:
- The application is packaged and executed as docker container.
- Configurations are injected over environment variables.
- A cron job will execute the script each 5 minutes.
- A record updates can be disabled
A docker-compose file is also provided, to test the application. Be sure to add you credentials in the compose file first.
docker-compose up --build
You dont need to build the image yourself, you can directly pull it from Dockerhub.
The project only makes sense, when your public IPv4 address is only assigned to your host and not double-NATed behind several routers.
In the other case, you should use IPv6 to unambiguously identify your host. Thats where the problem is:
IPv6 and Docker do not work well together. First of all you absolutely need to use a linux machine, because other operating systems do not support docker & IPv6. Additionally, you need to know the IPv6 address range, which you need to pass to docker over the --fixed-cidr-v6=""
flag. In case the IPv6 address prefix gets reset by your ISP, you need to manually change in the docker daemon settings. Thats a big pile of bulls***, thats why we need to come up with another solution. Have a look at go-dynamic-netcup-ipv6-dns-updater.