Hosting your own PrivateDNS for Android?
How do you run your own DNS for privateDNS for Android?
I am currently using OPNsense with unbound for my DNS. My wireguard vpn is also on OPNsense.
I have LSIO Swag for my reverse proxy with Let's Encrypt and CloudFlare for my SSL and DNS.
Docker compose for my containers.
Can Pi-Hole, Ad Guard Home, Technitium be used as and entry for PrivateDNS on android?
You can use any of those for DNS, Unbound, Pihole, Adguard, etc..
Since you have unbound already with opnsense you can just use that, it supports blocklists and has a dashboard to monitor things.
How do I set that up for access outside my network?
I don't want to tunnel traffic with wireguard since my upload is too low.
Tunnel just DNS over wireguard in that case, instead of using it as a default gateway and tunneling all traffic.
I recommend setting up selective routing in your opnsense wireguard and use that for the PrivateDNS. That way you won't tunnel traffic through your home unnecessarily.