Services

infra / running

Tailscale

Mesh VPN with redundant subnet routers — my homelab's LAN follows me anywhere I have a connection.

What it is

Tailscale is a mesh VPN built on WireGuard. Every device I own joins one tailnet; every device can reach every other device by hostname or stable tailnet IP, regardless of NAT or network. The trick that makes it useful for a homelab is subnet routing — a designated node on the home LAN advertises the whole /24 to the tailnet, so my phone on cellular can hit any homelab IP as if it were on the home network.

Why I run it

I want remote access to internal services without exposing anything to the public internet. Tailscale gives me that with no port forwards, no inbound firewall rules, no public DNS for internal stuff. The phone, the laptop, the workstation, and the homelab itself are all on the same tailnet; from anywhere I can curl an internal IP and have it work.

The free tier is generous enough for personal use. The trade-off is depending on a third party for the coordination plane — but the actual data plane is direct WireGuard between my devices, end-to-end encrypted, no Tailscale-the-company-in-the-middle.

How I use it

Day to day I barely notice it. The phone has Tailscale on; the workstation has Tailscale on; Open WebUI and the homepage and the Vaultwarden vault all load over their internal hostnames the same way they do at home. No mode switch, no "enable VPN when away" toggle.

The setup I'm proud of: two subnet routers, one on each Proxmox node, both advertising the same /24. Tailscale's coordination plane picks the active gateway based on path quality and silently fails over if one becomes unreachable. The motivation was a hard crash of one node a few weeks back — I lost remote access entirely until it recovered. Two gateways on different nodes mean a single-node failure no longer takes out remote access.

Setup notes

Runbook