My own VPN
I built my own VPN for my family's phones after the free one turned out to be slow and full of ads.
- Role
- Side project
- When
- 2026
- Where
- Google Cloud · Android
Self-hosted VPN
My own VPN
- server locations to choose from
- 11
- location always on, the rest sleep when idle
- 1
- ports open on each server, nothing else
- 2
Why it exists
I paid for a family VPN plan from 2022 for me, my mum and my uncle. At the start of 2026 I stopped because of the cost, and the free VPN I moved to was full of ads and kept slowing everything down. So I built my own, using WireGuard on Google Cloud.
I needed a VPN I could trust for my family's phones, without ads and without slowdowns, and without paying a big subscription every year.
How it works
- 01
Servers that sleep when nobody is using them
Each location is a small server. One location stays on all the time, and the others shut themselves down after an hour with no traffic. A sleeping server costs about forty cents a month.
- 02
Phones that never need new settings
Every server updates its own address name each time it starts, so the WireGuard settings on the phone keep working no matter how the server was woken up.
- 03
Locked down by default
Only two ports are open. Logins need my SSH key, the admin page is never on the internet, the servers have no access to my cloud account, and security updates install every night.
- 04
One command for everything
A single command creates servers, adds a phone with a QR code, wakes or sleeps a location and checks the status. I also built a small Android app around the WireGuard tunnel library.
Stack
- WireGuard
- wg-easy
- Docker
- Google Cloud
- Cloud Functions
- Bash
- Expo