It works fine for updating the DNS that's pointing to the router IPV6. However, the only way I know how to configure a DDNS service on the server with IPV6 is by installing the DDNS scripts on the server itself (not on OpenWRT). Is there any way of doing it on OpenWRT? Can I make the duckdns address update with the IPV6 of my server instead of updating it with the IPV6 of the router?
A bit of custom scripting is probably in order. It is trivial to have a script run when the WAN goes up, and updating DuckDNS with custom values is not a problem, it's a simple HTTP request. However, lacking the experience I cannot say how much trouble it is to find the external IPv6 of the machine in the network, someone else has to answer that.
The easiest approach would probably be to run a ddns client on the server itself (there should be several to choose from for most linux distributions). There are said to be ddns providers that allow API access for changing the prefix of a bunch of clients in one go, but I'm not really aware of one (or the ddns clients supporting that).
Where server-name is the client's name, I ignore all local addresses (they start with fd here), and I print the ip itself.
This script then I use it with DDNS (in luci you go to services > dynamic dns > select or create the service > enter all basic settings as required (see ddns docs) > advanced settings > IP address source = Script, Script = /path/to/script.sh