I love ngrok and I've gladly paid the fees necessary to gain access to the commercial add-ons to their insanely robust and dependable solution to gain remote access to locally run services on many kinds of machines (Mac, Win, Linux).
However, when you have whole fleets of machines to run and especially in development mode when you need to be able to enable ad-hoc remote access (read ssh) to machines in the field, ngrok can become expensive as your go-to solution. While an excellent choice in many cases, if you need to be able to run your own public proxy and enable your own levels of scalability, ngrok's commercial offerings, while they are capable, make things difficult.
Enter Pagekite (https://pagekite.net/) - functionally similar in many ways to ngrok, it offers an open source alternative that you can make your own.
Weirdly enough the team does not seem to be believe in the value they bring of being able to host your own proxy on the internet and make the feature a poorly documented afterthought. But if you can work out the relatively simple issues in terms of getting it all to work then they have a lightweight alternative to ngrok that can provide 90% of ngrok's features out of the box.
They offer their own hosted proxy service and if you're ok with that you'll find it simple enough to use. If you're looking to host your own and having trouble - feel free to write to me for tips