Moving from Heroku to Dokku
Summary: After a few months of experimenting with different Pinball Map hosting solutions, we have settled on Dokku for deployments, and DigitalOcean for the web server and database. The site seems quite a bit faster, the cost is the same, and we are happy with the move.
For many years (9? Just guessing) we’ve been happily using Heroku to host the site. Heroku smoothly deploys rails apps and manages the database and tracks and manages usage, etc. It’s cool! O’er the years we’ve had to upgrade from a free tier to a cheap tier and then to a less cheap tier. The next tier after this is like double the cost per month! And for what seems to not double the bang for the buck.
So, we started wondering if there are Heroku alternatives that we’d like. And also, it seemed smart to have a backup in case something changed at Heroku. And then also, Heroku had a breach a few months ago (that didn’t affect us) that they handled poorly, and what stemmed from that were tons of posts about “the Heroku platform is stagnant and their owners aren’t investing in it anymore; and there are lots of great alternatives.”
So over the past few months we slowly tried a few alternatives, and then we settled on one. We don’t want to make this post about why we didn’t choose others, since our reasons are very specific, so we’re not even going to name them.
Long story short, the site has been off of Heroku for the past… month? And now it’s on DigitalOcean using Dokku. Cost-wise, we are paying the same amount per month, but the web server has 4x the RAM, and the database has double the ram (though that is a little unclear because Heroku is not up front about the specs on the managed database plan we had been using). In short, the site seems faster!
Dokku bills itself as a free and open-source version of Heroku. It uses the Heroku buildpacks, and has lots of well-integrated plugins and configs, and many identical commands (including how to deploy). To use Dokku you need to run it somewhere (which is where DigitalOcean and the costs come in). Overall, it feels really similar to Heroku, except it takes a little more hands-on work to configure thing (like, typing stuff instead of clicking stuff). The biggest downside is that metrics/logging/resource management/tasks aren’t out of the box. But our site is pretty chill, and with a few resource management configurations the site seems to not be breaking.