Hello. I was able to get this to work successfully with Cloudflare Tunnels. What I am having a problem with now is that my local Cloudron server is throwing fits when I go and re-sync DNS records. To get Cloudflare Tunnels to work you have to delete the current *.domain.com DNS record in Cloudflare that your Cloudron server automatically creates. Then in the Cloudflare Tunnels settings it creates a CNAME record in place of the old DNS A record that Cloudron automatically created. You do have to check the settings under TLS and disable TLS verify though. At this point it does work. I can access my site and completely disable port 443 on my router. I have zero ports exposed. Essentially Cloudflare Tunnels acts as a Reverse Proxy through the tunnel. I can route all the apps with their sub-domains this way and it works great. My question is, now that you have a little bit of backstory, how can I make Cloudron and the DNS settings Cloudflare Tunnels create work naturally together so that if DNS records re-sync it keeps everything working properly without breaking the site. To my understanding Cloudron does regular DNS checks and makes sure everything can talk to each other. If I do re-sync DNS settings or if the Cloudron server does it automatically itself via it's regular checks the DNS records get overwritten to point back to my public IP address again, instead of the Cloudflare Tunnel, which then breaks the site because the port fordwarding is turned off.
Thanks @girish