When the time comes to deploy your Ruby on Rails application, you have a lot of options. You could use one of the platform as a service (PaaS) offerings such as Heroku. They do all of the server management and most of the database management. You just have to "git push heroku master" to deploy your app. However, there are trade offs. Your app has to work within their infrastructure and it can start to get costly as you scale up.
Another option is to deploy your rails app to your own server. This has the advantage of you being able to control your entire environment and be able to choose the provider you want to work with. You could choose to deploy to AWS, Rackspace, Digital Ocean, Linode, etc.
The Stack
This course is a free series of videos that show you how to deploy your Ruby on Rails application to a single server. It is opinionated (much like Rails itself) since I will be showing you how to do it with the following stack:
- Ubuntu (Operating System)
- PostgreSQL (Database)
- Nginx (Web Server)
- Unicorn (Ruby Application Server)
Since you will be able to control your application stack, you can feel free to replace any of these items with others you prefer. For example, here are some common replacements: Red Hat Enterprise Linux instead of Ubuntu, MySQL instead of PostgreSQL, Apache instead of Nginx, and Passenger, Thin, or Puma instead of Unicorn.
Prerequisites
This series of training videos assumes you know how to setup your development environment. It also assumes you know how to use git and github to save your code to source control. This guide will be pulling code from github during the deployment. If you need help with either of these, review how to setup a Rails development environment or Rails development with git and github.