I am unsure if there is a simpler way of doing this, but I have an internal network domain setup that works pretty well.
I run an AdGuard container on a custom docker network, then have that set up to do DNS rewrites for my internal domain *.home.arpa
I have my router's DNS pointing to the AdGuard IP address.
The Adguard rewrites point the incoming *.home.arpa requests to an Nginx Proxy Manager container that is set up with the hostname that I want like plex.home.arpa and then Nginx Proxy Manager points to the actual internal IP address of Plex.
It's not too bad if you have some of these containers already set up, I originally found this strategy from a reddit post, but I'm curious if there might be simpler ways to do it.