Issue №26 · 2026July 22, 2026iameberhard.com
Back to the journal

Engineering

Self-hosting my blog on a Raspberry Pi 5

I migrated this site off a managed PaaS and onto a Pi 5 sitting on my desk. Cloudflare Tunnel removes the need for any open ports, Docker keeps it tidy, and the whole thing runs cooler than my router.

EEberhard1 min read

Why

Managed hosting is convenient, but I missed having ownership of the box. I also wanted to learn what a real production stack looks like end-to-end without paying a subscription for it.

The stack

  • Raspberry Pi 5 (8 GB, NVMe SSD)
  • Next.js 16 + Postgres 16 in Docker Compose
  • Cloudflare Tunnel so I never open ports on my router
  • Tailscale for admin access from anywhere

The migration

Moving the database was the part I was most nervous about. Turns out: dump to a file, scp over the tailnet, restore on the other side. Done in fifteen minutes.

No regrets so far.

Filed under

raspberry-piself-hostedcloudflare-tunnelnext.js