Updated: 2022-07
I wrote the first edition of this as a guide for myself at the end of 2017 - it was a mashup of Pi-Hole + PiVPN scripts and an IPsec script installed within a separate Raspian Docker image... and it actually worked!
But things have come a long way, and WireGuard happened - I've since streamlined and simplified my setup into a single Docker Compose script.
The steps below assume the following: