Deploying a website is a pain. Using a "simplified" service, e.g. Heroku, it's still a pain but you don't learn very much. I learned that firsthand when I deployed my first Django project using Heroku. When the process was complete, I felt I had learned vaguely how to use Heroku's tools, and next to nothing about deployment in general.
For my next project, I decided to use a service that could provide me with only a Unix box and force me to do everything else. I went with DigitalOcean, as it offers an inexpensive basic server and met my needs.
DigitalOcean provides some helpful guides for getting started, but I quickly ran into caveats and outdated information that could be very frustrating. Read more...