There are two iX apps that I have been using to achieve this purpose to access a few of my apps (e.g. AudioBookShelf, LinkDing) externally.
The first is ddns-updater which is a Dynamic DNS updater. This will check your current external IP address and update your DNS records accordingly. The update interval is around 5 minutes.
The second is a nginx-proxy-manager which is a reverse proxy manager. I’ve had to use it since AudioBookShelf, LinkDing, and Kavita do not natively support secure connections. This will allow you to set up your domain and subdomains that can be accessed externally and point it to your internal instances. (E.g. abs.example.com points to my TrueNAS server at http://192.168.1.2 on port 10223), plus force HTTPS connections. I put together a configuration guide at Nginx Proxy Manager - Configuration Tips (especially if you are stuck at Deploying) to help. I had some hiccups with nginx when I migrated from Dragonfish to Electric Eel in that the app didn’t migrate over, and I had to do a reinstall. Also, you will need to do some port forwarding of ports 80 and 443 to the NGinx ports as defined by the app (30021 and 30022 respectively).
I also happen to use Cloudflare, so you will need to get some API tokens in order to intergrate the nginx-proxy-manager and ddns-updater with Cloudflare.