public
Description: Remote multi-server automation tool
Homepage: http://www.capify.org
Clone URL: git://github.com/jamis/capistrano.git
jamis (author)
Mon Mar 05 09:32:16 -0800 2007
commit  54cee940d2834f406d960d30193b8e442f55126a
tree    8c758b3ecb0c37cf34a3b72fea5d079d258e1c06
parent  614152fbc445d148cb21a73e7d9c9ac127c47b5a
name age message
file CHANGELOG Mon Mar 05 09:32:16 -0800 2007 Don't send no-auth-cache if no auth credentials... [jamis]
file MIT-LICENSE Sun Mar 05 19:48:35 -0800 2006 part 2, rename switchtower -> capistrano [jamis]
file README Sun Mar 05 19:48:35 -0800 2006 part 2, rename switchtower -> capistrano [jamis]
file Rakefile Sat Jun 28 07:31:06 -0700 2008 No, seriously. Gem dependencies for real. [jamis]
file THANKS Sat Aug 26 23:55:15 -0700 2006 Add SCM module for Mercurial from Matthew Elder... [jamis]
directory bin/ Sat Sep 01 08:03:58 -0700 2007 capify-generated Capfile will autoload all reci... [jamis]
file capistrano.gemspec Sun Aug 27 02:53:49 -0700 2006 Fix gemspec to include license file, etc. [jamis]
directory examples/ Sun Mar 04 14:25:51 -0800 2007 THANKS file is not applicable anymore. Bring va... [jamis]
directory lib/ Thu Nov 13 10:44:57 -0800 2008 version bump [jamis]
file setup.rb Wed Mar 28 21:48:34 -0700 2007 Add deploy:check test for verifying that depend... [jamis]
directory test/ Thu Nov 13 10:42:23 -0800 2008 Fix issue with "Unable to resolve revision... [jamis]
README
= Capistrano

Capistrano is a utility and framework for executing commands in parallel on multiple remote machines, via SSH. It uses a 
simple DSL (borrowed in part from Rake, http://rake.rubyforge.org/) that allows you to define _tasks_, which may be 
applied to machines in certain roles. It also supports tunneling connections via some gateway machine to allow 
operations to be performed behind VPN's and firewalls.

Capistrano was originally designed to simplify and automate deployment of web applications to distributed environments, 
and so it comes with many tasks predefined for that ("update_code" and "deploy", for instance).

== Dependencies

Capistrano depends upon the Net::SSH library by Jamis Buck (http://net-ssh.rubyforge.org). Net::SSH itself depends on 
the Needle library (http://needle.rubyforge.org), also by Jamis Buck.

== Assumptions

In keeping with Rails' "convention over configuration", Capistrano makes several assumptions about how you will use it 
(most, if not all, of which may be explicitly overridden):

* You are writing web applications and want to use Capistrano to deploy them.
* You are using Ruby on Rails (http://www.rubyonrails.com) to build your apps.
* You are using Subversion (http://subversion.tigris.org/) to manage your source code.
* You are running your apps using FastCGI, together with Rails' spinner/reaper utilities.

As with the rest of Rails, if you can abide by these assumptions, you can use Capistrano "out of the box". If any of 
these assumptions do not hold, you'll need to make some adjustments to your deployment recipe files.

== Usage

More documentation is always pending, but you'll want to see the user manual for detailed usage instructions. (The 
manual is online at http://manuals.rubyonrails.org/read/book/17).

In general, you'll use Capistrano as follows:

* Create a deployment recipe ("deploy.rb") for your application. You can use the sample recipe in examples/sample.rb as 
a starting point.
* Use the +cap+ script to execute your recipe (see below).

Use the +cap+ script as follows:

    cap -vvv someaction

By default, the script will look for a file called one of <tt>config/deploy</tt>, <tt>config/deploy.rb</tt>, 
<tt>capistrano</tt>, or <tt>capistrano.rb</tt>. You can the <tt>-v</tt> switch multiple times (as shown) to increase the 
verbosity of the output. The +someaction+ text indicates which action to execute.