Learn how to deploy Ruby on Rails to your own server
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.
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:
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.
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.
First, we want to securely setup our server and lock it down before we do anything else. This link takes you to the first video.
Next, we want to install and configure all the software necessary on the server to deploy your application This link takes you to the next video.
Finally, we want to get a basic application to deploy to our new server. This link takes you to the final video.