Go is a great language. I used it a few times when dealing with bugs in open source programs. And though I never used it besides that, I could spot and fix these easy issues fast.
Rust is not like that. The syntax is a little harder to read and a lot of widely used libraries use complex macros to ease their users lives.
But:
I cannot count the times rust has saved my ass.
Examples:
Sqlx checks my sql files against a local test-db and always errors, when my scripts miss parameters after changing the sql file.
I have to use a complicated mess of an API at work to get the data I need and I now use a 50-60 element enum that tells me exactly, what I got back from the API-calls.
Okay, the others are a little short for what you need.
Your VPN needs it's own DNS. With that DNS you can route the traffic internally from the VPN subnet to the server.
Then you can set the server up to only take requests from that subnet either via firewall or the reverse proxy.
Having some of them as Twitter-links was not that good of an idea...
And it has that awesome xerox scanner bug found by David Kriesel! 😂
I watch his talk (german) like once or twice a year, because it is that funny!