--- title: Installation layout: default --- Capistrano is bundled as a Ruby Gem. **It requires Ruby 2.0 or newer.** Capistrano can be installed as a standalone Gem, or bundled into your application.

It is recommended to fix the version number when using Capistrano, and is therefore recommended to use an appropriate bundler.

### General Usage The following command will install the latest released capistrano `v3` revision: ```bash $ gem install capistrano ``` Or grab the bleeding edge head from: ```bash $ git clone https://github.com/capistrano/capistrano.git $ cd capistrano $ gem build *.gemspec $ gem install *.gem ``` ### Usage in a Rails project Add the following lines to the Gemfile: ```ruby group :development do gem "capistrano", "~> 3.10", require: false gem "capistrano-rails", "~> 1.3", require: false end ``` The `capistrano-rails` gem includes extras specifically designed for Ruby on Rails, specifically: * Asset Pipeline Support * Database Migration Support The documentation for these components can be found in [their][capistrano-rails-asset-pipeline-readme], [respective][capistrano-rails-gem-bundler-readme], [READMEs][capistrano-rails-database-migrations-readme]. However for the most part, to get the best, and most sensible results, simply `require` in Capfile, after the `require 'capistrano/deploy'` line: ```ruby require 'capistrano/rails' ``` ##### SSH Capistrano deploys using SSH. Thus, you must be able to SSH (ideally with keys and ssh-agent) from the deployment system to the destination system for Capistrano to work. You can test this using a ssh client, e.g. `ssh myuser@destinationserver`. If you cannot connect at all, you may need to set up the SSH server or resolve firewall/network issues. Look for a tutorial (here are suggestions for [Ubuntu](https://help.ubuntu.com/community/SSH) and [RedHat/CentOS](https://www.cyberciti.biz/faq/centos-ssh/)). If a password is requested when you log in, you may need to set up SSH keys. GitHub has a [good tutorial](https://help.github.com/articles/generating-ssh-keys/) on creating these (follow steps 1 through 3). You will need to add your public key to `~/.ssh/authorized_keys` on the destination server as the deployment user (append on a new line). More information on SSH and login is available via the [Authentication and Authorisation](https://capistranorb.com/documentation/getting-started/authentication-and-authorisation/) section of the guide. If you are still struggling to get login working, try the [Capistrano SSH Doctor](https://github.com/capistrano-plugins/capistrano-ssh-doctor) plugin. ##### Help! I was using Capistrano `v2.x` and I didn't want to upgrade! If you are using Capistrano `v2.x.x` and have also installed Capistrano `v3` by mistake, then you can lock your Gem version for Capistrano at something like: ```ruby gem 'capistrano', '~> 2.15' # Or whatever patch release you are using ``` This is the [pessimistic operator][rubygems-pessimistic-operator] which installs the closest matching version, at the time of writing this would install `2.15.4`, and any other point-release in the `2.15.x` family without the risk of accidentally upgrading to `v3`. [rubygems]: http://rubygems.org/ [rubygems-pessimistic-operator]: http://guides.rubygems.org/patterns/#pessimistic-version-constraint [capistrano-rails-asset-pipeline-readme]: https://github.com/capistrano/rails/blob/master/README.md [capistrano-rails-database-migrations-readme]: https://github.com/capistrano/rails/blob/master/README.md [capistrano-rails-gem-bundler-readme]: https://github.com/capistrano/bundler/blob/master/README.md