I can see the value of learning to do this yourself - you could use something like Capistrano to do the application deployment, and follow this guide to setup the box.
Alternatively, you could use a service like Cloud 66 to set all of this up for you and then manage it. It's like Heroku on your own cloud.
Disclaimer: I work for Cloud 66.
If you're still looking for an option, care to checkout Cloud 66 for Docker? There's a choice of web UI or CL, and we integrate with Packet for baremetal, with the added choice to BYOS.
Check out Cloud 66 - a full stack container management as a service, that offers Heroku- like functionality on any cloud provider or on your own server. (Disclaimer: I work at Cloud 66).
Have a look at Cloud 66 (http://www.cloud66.com/), offers Heroku-like functionality on any cloud provider or on your own server. You can choose between classic stacks (=RoR), but also use Cloud 66 Docker services. (Disclaimer: I work for Cloud 66).
I've been researching this a bit myself. I've been toying with the idea of creating a service that is pretty much as you've described. So far the only company that I've found in this market is Cloud66.
It might be worth checking out Cloud 66, which helps you deploy and manage your Ruby apps on any cloud or your own servers. We support DigitalOcean, Linode, AWS etc, and you get full SSH access to the servers.
This model has some pretty good price savings when compared with PaaS/DIY.
Disclaimer: I work for Cloud 66.