I have a device with a couple of local services running on it, specifically an HTTP server on port 80/443 and a websocket server running on port 9000. I would like to access these services in a similar way I can currently do with terminal/SSH on the balena dashboard by selecting a target and starting a terminal session. I did not have to open any ports or do any special network configuration for terminal sessions to work and I’m looking to do the same with the two other services my device runs. The way I imagine things working is I would open the target device in the balena dashboard and instead of starting a terminal session I would start a “service?” (maybe a better name for it) session. It would provide a list of all local services with ports opened as defined in my docker-compose file and then create temporary random public URLs to access the selected services.
This would be helpful for starting a debug session remotely or for opening the web interface remotely to configure the device or troubleshoot it. You could also have a permanent service being forwarded for telemetry or simply to provide the service to the outside world.
I think I could likely DIY a solution using ngrok.com but it would be nice to have it integrated into the dashboard.