Healthchecks.io ditches managed S3 for self‑hosted object storage

April 17, 2026
Detailed view of a server rack with a focus on technology and data storage.
Photo by panumas nikhomkhai on Pexels

The move

It has been reported that Healthchecks.io has migrated its S3‑compatible object storage from managed providers to a self‑hosted setup. The service now serves its S3 API with the Versity S3 Gateway, backed by a plain Btrfs filesystem. For context: Healthchecks.io stores the first 100KB of any POST ping body — tiny payloads go into PostgreSQL, larger ones land in S3 — and today that’s about 14 million objects totaling 119 GB, with an average object size of 8 KB and steady upload rates (30/s average, spikes to 150/s).

Why leave the cloud?

The reasons are familiar to anyone wrestling with cloud bills and flaky performance. AWS’s per‑request pricing would have made frequent PutObject calls expensive, and the CLOUD Act would force extra encryption complexity. Healthchecks.io initially picked OVHcloud (no per‑request fees, EU provider) then moved to UpCloud in 2024, but both drifted into worsening latency and reliability — DeleteObjects calls slowed, operations hit timeouts, and the team had to add load‑shedding. Frustration piled up. Enough is enough.

What they tested — and what they wanted

The team trialed Minio, SeaweedFS and Garage, but balked at the operational overhead of keeping a production cluster healthy: automating node setup, rehearsing upgrades, replacing failed nodes, and building cluster‑specific monitoring. Those are solvable problems, sure — but costly in time and risk. At Healthchecks.io’s current scale everything still fits on a single system, making a simpler self‑hosted stack more attractive.

Trade‑offs and takeaways

This isn’t about chasing peak redundancy. Healthchecks.io treats object storage as important but not mission‑critical: if the object store fails, the service keeps running (alerts still fire); users just lose access to ping bodies. Latency matters more — some S3 ops occur during request handling — so local control buys snappier behavior without per‑request bills. It’s a quiet example of cloud repatriation: when costs, compliance and performance line up, running your own humble rack can beat handing everything off to the big providers.

Sources: healthchecks.io, Hacker News