I use wireguard + adguard home. Both docker containers (in a docker-compose.yaml), easy to set adguard as the dns resolver for any wireguard connection. It runs from my basement.
I also hear great things about TailScale, will also try that (soon I'll be "forced" off my fiber/fixed-ip connection).