For a while now I’ve wanted to reach my machines from outside my home network. Pull a file off the box in the closet while I’m at work. Check a service from my phone on mobile data. Log into the little server sitting in my house from anywhere that isn’t my house. Simple idea. The problem was getting there.

Because the old way to make something at home reachable from the outside world meant opening ports on my router, one door at a time. Want this service reachable remotely? Forward a port. Want that one too? Forward another. And every single one of those is a little doorway pointing at the wide open internet 😬 It got messy fast and honestly it made me nervous. I care about keeping my network tight and punching holes in my router so I could get in from outside felt like exactly the wrong trade -poking holes and hoping nobody else wandered through them.

So I started using a free service called Tailscale.

Tailscale is a VPN mesh. In plain terms: it quietly stitches all my devices into one private network and each device gets its own address that only my other devices can reach. Nothing is exposed to the public internet. Nobody outside my little network even knows it’s there. And here’s the part I actually wanted -it doesn’t matter where I am. My phone on mobile data, my laptop at a coffee shop, a machine three cities away: once it’s on my Tailscale network, I can reach my home devices like I’m sitting right in front of them. Remote access, without leaving anything hanging open to the world.

And it’s free for personal use, which is exactly what I wanted.

Now, I know some of you self-hosting folks are already typing “but what about Headscale?” -that’s the open source, self-hosted version where you run the coordination server yourself. Totally valid and I respect it. But I opted not to go that route. I wanted something consistent and always-on that I don’t have to babysit, for free, for personal use. Tailscale’s hosted coordination gives me exactly that. One less thing for me to keep alive.

Port forwarding, gone. 🎉

The next thing I wanted was to actually remember my devices. A private IP address is great for machines and terrible for humans -nobody wants to memorize a string of numbers just to reach their own stuff. So the next step was giving everything names.

This is where it got fun. Tailscale has a feature called MagicDNS and it basically hands each device a friendly name automatically. Instead of typing an address I don’t remember, I just type the name. So a machine I might call vimes is just… vimes. Reachable by name, from anywhere on my network. (I may or may not have themed my machines after a certain book series -a twoflower here, a vetinari there. No comment. 😄)

Then I took it a step further and mapped things to a domain I own, so my little homelab reads like real, proper addresses instead of something bolted on. Clean. Memorable. Mine.

Here’s my confession though: doing that domain and DNS wiring by hand would have been a project. I mean the kind of project I chip away at after work and on weekends and it still drags on for a week or two before it all clicks. DNS is fiddly. One wrong entry and nothing resolves and you’re squinting at config files at 11pm wondering where the typo is.

So I didn’t do it by hand. I used an AI desktop agent to configure the network and the domain mapping for me. (It was called Windsurf when I set this up -it’s since become Devin. Tools move fast these days!) It’s the same energy as the vibe coding I’ve written about before: less about following a rigid tutorial, more about describing what I want and iterating until it works. What would’ve eaten two weeks of my evenings got sorted out in an afternoon.

Now? The whole thing basically runs itself. All I have to do is make sure Tailscale is up and running on each device and I can reach any of my machines from anywhere -work, a coffee shop, the road- by name, over a private network, with nothing hanging out on the open internet.

No port forwarding. No memorizing IPs. No holes in my router. Just my stuff, available to me wherever I am and invisible to everyone else. Which is exactly what I set out to build.

Sometimes the best upgrade isn’t a new gadget. It’s finally getting the stuff you already own to work together -and getting a little help from the tools that make it painless. 🙂