Stabilizing Container Deployments in a Self-Hosted Stack

While deploying my Rails app using Kamal, I started seeing intermittent failures pulling containers from GitHub Container Registry (GHCR). Nothing catastrophic but just enough flakiness to erode trust in automation: occasional timeouts during docker pull inconsistent deploy reliability retries sometimes fixing it, sometimes not These are the kinds of issues worth fixing early to maintain both reliability and velocity. And once you stop trusting deploy automation, velocity drops fast. This is the “Hollywood” version for fun. The real work is quieter: logs, retries, and incremental fixes. ...

February 26, 2026 · 5 min · 872 words · Mark Holton

Decoupling Cache from Container Lifecycle

Start simple. Then add complexity where it makes your life easier. I maintain this Hugo blog for general writing. But I also needed something different inside my Rails app at NoraFoundry.dev — a way to publish position papers, technical notes, and architecture essays directly in the application. Hugo’s great, but bolting a separate publishing stack alongside Rails for a handful of markdown documents felt like overkill. ...

February 15, 2026 · 6 min · 1103 words · Mark Holton

Self-Hosting Rails (and Python) Apps with Cloudflare Tunnels: Why I Swapped $17/Month Cloud Hosting for Self-hosting

Be adventurous and free - start hosting this stuff yourself with no barriers to your exploration! The $17/Month Death by a Thousand Cuts I love building side projects. I tend to use them to explore technologies in a fun way - Fantasy golf leagues, personal dashboards - the kind of apps that scratch a specific itch but don’t need to scale to millions of users. But every time I’d spin up a new Rails app, I’d hit the same wall: hosting costs that kill exploration. ...

August 10, 2025 · 11 min · 2241 words · Mark Holton