1. if you haven’t got Rails installed locally then do it now.
As of this blog post Rails 4, which you should be using, is pre-release so:
gem install rails –pre
but drop the –pre when Rails 4 is no longer pre-release.
–pre means install the prerelease rails gem.
2. create a simple Rails app
rails new myapp
3. upload your Rails app to github
– create a git rep locally if it doesn’t exist
git init; git add .; git commit -am “first commit”
– create a github repo at
This should tell you what you need to do next however in short:
git remote add origin firstname.lastname@example.org:you/your_repo.git
git push -u origin master
4. capify with
(and remember to push to git with:
git add .; git commit -am “with capistrano”
git push -u origin master)
Note: as you’re running Rails you should put your Capistrano config information in config/deploy.rb. So, your Capfile should look like this:
and your config/deploy.rb file should have all the Capfile details like
set :git_username, “your_git_username”
set :repository, “email@example.com:you/your_repo.git”
5. Use SSH agent forwarding initially
Specifically, make sure you’ve got it set right locally:
6. Read also this post if you’re having problems with your ssh key:
default_run_options[:pty] = true
helps debug. And add your host to your known_hosts file by doing ssh firstname.lastname@example.org and entering yes (it doesn’t matter that the login won’t succeed).
7. Then use:
For more details of what deploy:cold does see:
I found Capistrano wasn’t creating directories in the releases directory with this option:
set :deploy_via, :remote_cache
To automatically run ‘bundle install’ on the server, add this to your deploy.rb file:
8. If using a Dreamhost VPS you may need to unset the DreamHost Managed Apache setting in VPS > Configure Server.
More on deploying Rails including details on Passenger (aka mod_rails), JRuby, Capistrano and Hosting: