jerry@homelab:~$ whoami
I am a programmer & developer who builds automation tooling on top of a self-hosted homelab — Linux, open-source software, and containerization all the way down. When I'm not writing the next integration for my Signal bot, you'll find me skateboarding.
Recently integrated Authelia for secure single sign-on (SSO) and two-factor authentication across my self-hosted services. Read the architecture breakdown.
Built a Signal-controlled automation hub (FastAPI) to run my homelab from my phone — a dozen-plus integrations across Pi-hole, Immich, Paperless, Minecraft, and more. No third-party cloud, no app to install. One favorite detail: wrote a Source RCON client from scratch after a PyPI library turned out to be thread-incompatible with the async request handling.
jerry@homelab:~/task-bot$ git log --oneline -4
fix(minecraft): swapped a PyPI RCON library for a hand-rolled Source RCON client — it used SIGALRM-based timeouts that silently break outside the main thread, and every command handler runs in a threadpool.
fix(badlands): containers reporting healthy with unpublished ports — a startup race between Docker and Tailscale, fixed with a systemd drop-in.
security: caught an accidental git add . as root that staged SSH host keys and a signing secret — rotated both before anything shipped, tightened .gitignore project-wide.
debug: a location check-in silently found nothing for hours — turned out one endpoint wanted Unix timestamps, a sibling endpoint on the same API wanted ISO8601.
(Paraphrased from my actual commit history and debugging sessions — not a literal copy-paste.)
jerry@homelab:~$ ssh wasteland 'docker compose ps'
jerry@homelab:~$ ssh badlands 'docker compose ps'
jerry@homelab:~$ ssh website 'docker compose ps'
jerry@homelab:~$ ssh uptimekuma 'docker compose ps'
jerry@homelab:~$ ssh rpihole 'docker compose ps'
jerry@homelab:~$ cat ~/.config/uses.yml
daily driver: Windows, VS Code, PuTTY/SSH for everything on the homelab
wasteland: Intel NUC12WSKi5 — primary server, most of what's above
badlands: Intel NUC10i5FNKN2 — secondary server
networking: Tailscale mesh, Caddy, Authelia SSO — no service is bound to 0.0.0.0, ever
backups: restic, staggered local + offsite, four copies across three locations, a dead man's switch on every run
why self-host: I'd rather learn by breaking something on a Tuesday night than click through a SaaS dashboard
not pursued: tools I evaluated and said no to, including one I fully built then fully tore back down
jerry@homelab:~$ █