How I brought this blog to life...

Share

Hey, I’m Jack. I’ve been an IT Infrastructure Specialist for the last 15 years, spending the better part of my career architecting systems and enterprise solutions for businesses. Recently, I decided it was finally time to carve out my own little corner of the internet.

Naturally, being the engineer I am, buying an off-the-shelf shared hosting package and clicking "install WordPress" felt entirely too sensible ... and far too easy.

Instead, you are reading this page directly from my home lab, hosted behind a CGNAT residential fiber connection courtesy of YouFibre.

The Setup

Under the hood, the foundation is straightforward enough:

  • The Hypervisor: A dedicated Proxmox VE host patched directly into my home LAN.
  • Network Segmentation: Inside Proxmox, a MikroTik RouterOS container handles routing to ensure the lab environment remains completely segregated from the rest of the household network.
  • The CMS: A lightweight VM running Ghost.

Spin up a VM, deploy Ghost, and you have a blog... right?

Well, not quite.

Defeating CGNAT

Because YouFibre runs Carrier-Grade NAT (CGNAT), I don’t have a publicly routable IPv4 address. Pointing an A record at my WAN IP and setting up basic port forwarding wasn't an option.

To solve this, I set up a small VPS over at Hetzner to serve as the gateway. Here's how traffic actually reaches this machine:

  1. Overlay Mesh: Both the Hetzner VPS and the local Proxmox environment run NetBird, creating a secure, wireguard-backed peer-to-peer overlay network between the cloud and my home lab.
  2. Reverse Proxy: Hetzner runs Nginx, accepting public HTTPS traffic for jackd.cloud and proxying requests securely through the NetBird tunnel straight to the Ghost instance in my lab.
  3. Graceful Fallback: If my home fiber drops, the power cuts out, or I manage to break something mid-experiment, Nginx serves a clean fallback page explaining exactly what went wrong instead of throwing an ugly generic timeout error.

Why Do It This Way?

Could I have just run Ghost directly on the Hetzner box and called it a day? Absolutely.

Would that have been any fun? Not in the slightest.

If you aren't over-engineering your personal infrastructure, what’s the point of running a home lab?

Welcome to the site. Expect plenty more unnecessarily complex builds, lab breakdowns, and technical deep-dives to follow.