I don’t have time right now to learn how to setup Capistrano. I just want a recipe that works and does the job. Here are my notes.
- First install the Capistrano gem
sudo gem install capistrano
- Next you need to go into the directory of your Ruby on Rails application and capify it:
capify .
- Next I recommend this article (I’ll rip off the deploy.rb soon and post it here)
Capistrano Deploy with Git and Passenger
- Once you’ve configured your deploy.rb, run this command to have it setup the directories on the remote server (releases, shared, logs, etc).
cap deploy:setup
- Next run this command to get the list of other capistrano commands you can run:
cap -T
The output should look like
cap deploy # Deploys your project.
cap deploy:check # Test deployment dependencies.
cap deploy:cleanup # Clean up old releases.
cap deploy:cold # Deploys and starts a `cold' application.
cap deploy:migrate # Run the migrate rake task.
cap deploy:migrations # Deploy and run pending migrations.
cap deploy:pending # Displays the commits since your last deploy.
cap deploy:pending:diff # Displays the `diff' since your last deploy.
cap deploy:restart # Restarting mod_rails with restart.txt
cap deploy:rollback # Rolls back to a previous version and restarts.
cap deploy:rollback:code # Rolls back to the previously deployed version.
cap deploy:setup # Prepares one or more servers for deployment.
cap deploy:start # start task is a no-op with mod_rails
cap deploy:stop # stop task is a no-op with mod_rails
cap deploy:symlink # Updates the symlink to the most recently deployed ...
cap deploy:update # Copies your project and updates the symlink.
cap deploy:update_code # Copies your project to the remote servers.
cap deploy:upload # Copy files to the currently deployed version.
cap deploy:web:disable # Present a maintenance page to visitors.
cap deploy:web:enable # Makes the application web-accessible again.
cap invoke # Invoke a single command on the remote servers.
cap shell # Begin an interactive Capistrano session.