Live

Self-Hosted Website

You’re loading this from my home server right now. I wanted to actually own where my site runs, not just rent space on someone else’s infrastructure. It’s a Docker container on my G5, exposed through a Cloudflare Tunnel — no port forwarding, no exposed IP, just an outbound connection to Cloudflare’s edge. NPM handles the internal proxying.

Stack

Host

HP ProDesk 600 G5 running Ubuntu Server 24.04. i5-9600T, 16GB RAM, on VLAN 20 (Servers).

Container

Static site served from an Nginx Docker container, managed alongside the rest of the stack in Docker Compose.

Nginx Proxy Manager

Handles internal reverse proxying and SSL certificate management for all hosted services including this site.

Cloudflare Tunnel

Outbound-only tunnel from the server to Cloudflare's edge. No open inbound ports, no exposed home IP address.

How I Built It

I built this entire site using Claude Code straight from the terminal. I focused on design and content decisions rather than writing code from scratch — the layout, the project pages, the color scheme, the content. Claude handled the HTML and CSS while I directed every decision. It’s an effective way to ship something real without getting slowed down by syntax.

What I Learned

The biggest takeaway was learning how to expose something to the internet without actually opening your network up. The Cloudflare Tunnel means pfSense never needed a port forward — traffic comes in through Cloudflare, never directly to my server. That’s the kind of security thinking I want to keep applying everywhere.