Skip to content
← All work

Self-hosted VPN

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

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

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

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

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