

I did this using a router to handle traffic for about a year between sites 240 miles apart. The only downside was it used a lot of bandwidth. Maybe it can be done with some IP cameras, but I expect they’d be expensive commercial models. OpenWRT compatible routers can be dirt cheap.
If your MIL’s router supports OpenWRT or you can replace it with one that does, you can use a VPN and PBR (Policy Based Routing) to your home router or server and do exactly what you want with any camera that supports RSTP (Real Time Streaming Protocol). That includes most cheap wired TP-Link cameras and plenty of others. PBR on the router at your MIL’s home would be used to route all traffic from camera IP addresses to your server.
I used Frigate software and Home Assistant for occupancy detection/alerts and Wireguard for transport. It worked perfectly but I eventually got around to adding 2nd server.





I had the same setup and the same problems with VPN (in my case Wireguard) server availability. While looking for a solution I realized I was trying to solve an architecture problem with software.
Instead of trying to find a software solution to work around my WG server uptime issues, I moved the Wireguard endpoint to an OpenWRT router. Now if my router is up, my WG endpoint is up and my network is accessible. I’ve been running this configuration for years and it has been 100% accessible.
I’m comfortable with the security of WG - open ports for WG endpoints are invisible to network scanners because they do not respond at all and appear closed unless they are sent the the correct key. Even if an attacker has some way of know a WG peer is listening on a specific port, cracking a 256-bit key would take trillions of years. I was then free to choose a remote access application without worrying about remote attackers gaining access to my servers because of some company’s failed security.
FOSS VNC server apps work OK, but I found them somewhat limited so I added NoMachine as my primary option and run both. It’s a commercial app but it’s free, and is one of the only closed source app I use. It can be run 100% locally (although they have a paid option that uses their servers). It allows full control over your servers including file transfer and audio.
Doesn’t check all your boxes, but it comes close.