Hello!
I'm launching a free app soon that interacts with an API I maintain, which gets around 10k active monthly users.
Requirements:
What would you recommend to use as a hosting provider. (considering that I offer the app for free, I don't want anything that breaks the bank, but still delivers decent service).
Dokku(open source rough equivalent of Heroku) on Digital Ocean. Dokku has plugins for all of the regular things you're looking to do including Redis, DB, & crons. Dokku doesn't have a web interface(yet) but the CLI is everything you'd expect from Heroku. DO also has a decent hosted database offering if you want to offload that too.
Another option if you just want to deal with a simple virtual machine is to just use a marketplace image for Rails from DO but I find those to be more difficult to deal with unless your requirements match pretty closely to those.
Personally I use DigitalOcean's managed Kubernetes service (together with their managed Postgres and Redis). I love Kubernetes, but if you don't have the energy or time to learn it or don't want to deal with ANY infrastructure at all, then I strongly recommend Heroku. It's hands down the best PaaS for Rails. DigitalOcean now also has a PaaS which is cheaper than Heroku, but nowhere near comparable to it. It's very limited, and deployments are ridiculously slow, so I wouldn't recommend it for the time being.
The other option is to install Dokku in a DO VPS.More bang for the buck
Last time I checked it out Dokku was good for a single server though, so it's not scalable. Maybe something has changed in the meantime?
That does not make it un-scalable. You can both scale vertically (move up to a more powerful droplet) or horizontally (moving the database, redis,etc to their own droplet). I think if OP reaches that case, that is a very nice problem to have. What you dont have is the ability to dynamically scale up/down, but as the saying goes, there is no such thing as a free lunch.
Since it's a free app, the biggest saving is in running things yourself.
I think you can do just one cheap virtual machine + attached storage for DB data. I like Digital Ocean for its UI.
I am just now writing and finishing Deployment from Scratch which does include running PostgreSQL and Redis alongside the usual Rails stuff if you are interested to get better at details you don't yet know.
If you have a concrete question about self hosting, I'll try to help you.
Check out heroku if you need painless ci/cd. DO app platform also feels like a good candidate for you
You can check & compare major VPS providers as per your requirement here:
https://comparewebservices.com/compare-vps-hostings
Hope this helps.
Are you planning to monetize the app in the future, or it will be an open-source one? :)
I'm using DigitalOcean's App Platform. Cheap and easy to set up.