Thanks. re ngrok, I have to agree, I think they are probably safe for anything "casual" and they are widely used so issues tend to surface eventually with services like that and I'm not aware of any issues. But I probably wouldn't trust them for something really critical.
But there are lots of ways to create a connection yourself, they are just a bit more of a faff to set up. If you are just needing access for yourself and are comfortable with configuring your router, using PUTTY (or a similar SSH client) to connect to your Pi using SSH allows you to create one or more encrypted "tunnels" for IP traffic. This is fairly easy to set up and very secure as long as your SSH is configured securely and has a reasonably strong password. You can save yourself some hassle by not using the default port 22 externally to the Internet, use something like 2222 instead, you can do this using port address translation in your router or by changing the Pi's SSH configuration. It stops your logs being filled by automated bot attacks.
If you need to make your interface more open, you will need to think carefully about what is exposed and what impact it would have if someone was able to intercept the traffic or even send commands to your system. Best to use a reverse proxy to handle the security (both encryption and authentication), something like NGINX, just make sure you secure both https and wss (websocket) channels and restrict to those 2 protocols.