Beyond code

Self-hosting & homelab

Running my own services, with nothing exposed to the internet but a tunnel.

DeliverTable production architecture: a Cloudflare Tunnel in front of Nginx, a Blazor frontend and an ASP.NET Core API, across three isolated networks

I like knowing where my data lives and how my services run. If I use something every day, I try to run it myself — on a small homelab where I can break things safely.

The pattern I keep coming back to is simple: everything in Docker Compose, isolated networks, and a Cloudflare Tunnel as the only way in. No ports forwarded on the router, nothing for a scanner to find. This portfolio runs that way, and so do my open source deployment repos for Nextcloud, Odoo and ERPNext — each with scheduled backups, restore procedures and upgrade notes.

The hobby feeds the job: most of what I know about networks, hardening and recovering from my own mistakes, I learned at home first.

Worth trying: put one service you use every day behind a tunnel on a machine you own — then practise restoring it from a backup before you actually need to.

Gallery · 2

  • The same pattern in production: DeliverTable behind a Cloudflare Tunnel
  • Earlier days: mapping every container network by hand

Related