I have Raspberry Pi 4 running Rasbian Lite OS with Pi-hole.
Everything is set up and working fine.
I've set a static IP(IPv4) for the Raspberry Pi 4 (192.168.1.2) and on the router I set it to be the DNS server.
It's working fine.
The part where I have issues:
After each restart to the router/internet connection, I have to copy the new IPv6 address of the Raspberry Pi 4 and set it on the IPv6 DNS servers on the router.
Is there any way to fix it so that I don't need to manually copy-paste the new IPv6 address?
To be clear - IPv4 is working fine. IPv6 is my problem.
It sounds like your router is picking up a new public IPv6 prefix every restart, causing a renumbering of the network.
The easy way out would be to disable IPv6 completely.
Otherwise look if you can tell the router to advertise your own prefix from the fd00::/8 range. Your devices will use that prefix to set unique-local addresses (ULAs) in addition to the global addresses. Those are basically private IPv6 addresses that should stay constant as the prefix doesn't change.