I am using duckdns.org and let my router ping it when it's public IP changes. Then I use nginx as a reverse proxy with help of https://nginxproxymanager.com/ so I don't need to write config files and it also runs certbot for my so I don't need to deal with https manually.
Actually I also have my own domain so I use a subdomain pointing via CNAME to the duckdns subdomain. This way I can easily change the provider of dyndns.