self-hosting A command channel nobody on the internet can reach: Tailscale in a container in front of a private ntfy Why my ChatOps commands go through a second, private ntfy with no public port, published to my tailnet only by a Tailscale container with Funnel switched off, and how the setup script gets there without me typing a hostname.
self-hosting Why I run my VPS from a chat topic on my phone instead of SSH How a question about logging expenses from my phone became a ChatOps listener on a private ntfy server: rebuilt four times in a day, then broken in four instructive ways once it met the real server.