I've to manage 50 Raspberry Pis remotely, e.g. via VNC over the web. The RPis are behind a router, so I can't access them by IP.
I'm looking for something like a self-hosted TeamViewer.
The desired setup would be something like:
- Server reachable via vnc.mydomain.tld, acting as a middleman
- Server on the RPi
- Viewer on my local machine
Desired process (scripted with Python)
I send a message (MQTT) to the RPi that I want to control:
"Hey RPi, please start your VNC server and let me know how I can find you!"
RPi starts its server, makes it accessible via the middleman and returns the session information via MQTT to me:
"Hey Admin, VNC started. You can find me via: xxxxxx"
I ask the middleman to connect me:
"Hey middleman, connect me to RPi. Credentials: xxxxxx"
I send a message (MQTT) to the RPi that I just controlled:
"Please stop your VNC server"
RPi stops its server
Edit: I'm not allowed to touch the router.
Any (alternate) ideas?