# 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.

- **What it is:** Self-hosted VPN
- **James's role:** Side project
- **When:** 2026
- **Where:** Google Cloud · Android

## 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

- **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.
- **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.
- **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.
- **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.

## Key numbers

- **11** server locations to choose from
- **1** location always on, the rest sleep when idle
- **2** ports open on each server, nothing else

## Stack

WireGuard, wg-easy, Docker, Google Cloud, Cloud Functions, Bash, Expo

---

HTML version: https://jamesofoaye.dev/work/personal-vpn
Site summary for AI assistants: https://jamesofoaye.dev/llms.txt · Everything in one file: https://jamesofoaye.dev/llms-full.txt
Contact: email from the contact section of https://jamesofoaye.dev/#contact, or LinkedIn https://www.linkedin.com/in/jamesofoaye