If you only need public access to things like HTTP or SSH you don’t necessarily need to run dynamic ip and just setup Cloudflare Tunnels. So far I haven’t needed to put anything public that doesn’t run on the provided tunnels.
Look under the Zero Trust category and then once there you'll see another menu item called Access. There you'll find Tunnels, in addition to Tunnels you can add an Application in the same Access menu to create policies that only allow certain clients to connect.
Cloudflare tunnels is the way to go for small self hosted content. You’re hiding behind their ddos protection and your IP / location remains hidden from end users.
I've had SSH and VNC sessions rendered in web pages with tunnels, but never RDP.
I would prefer to use TailScale (www.tailscale.com) for something like RDP though, much easier to configure / set up and again you're hiding behind their infrastructure.