I arrived at a pretty similar system starting from similar goals.
https://rustyswarf.com, which runs on a very simple framework called Travail.
In practice, I found cloudflare necessary to deter bots/crawlers. It is indeed fairly cheap, but you're still dependent upon three entities you don't really control: the DNS, the host, and Cloudflare.
You don't need to deter bots and crawlers. Cloudflare wants you to think you do.