Automate deploying your app to one or more servers with a single command from your local machine.
Deploy to separate staging and production environments from one configuration with per-environment overrides.
Run deployment steps in parallel across a fleet of servers to speed up large-scale releases.
Roll back to a previous release instantly using Capistrano's standard directory structure on your server.
Requires SSH key-based authentication configured on all target servers before first deploy, does not provision servers or install dependencies.
Capistrano is a tool for automating the process of deploying software to servers. It is written in Ruby and works by connecting to your servers over SSH and running a sequence of commands you define. Although Capistrano itself is written in Ruby, it can deploy projects built in any language, including Java, PHP, or Rails. The core idea is that you write your deployment steps as tasks (using a Ruby-based task runner called Rake), and then run a single command from your local machine that executes those steps on your server or servers. A community of plugins provides pre-written task collections for common setups, such as deploying Ruby on Rails applications or WordPress sites. Capistrano supports deploying to multiple environments, which it calls stages, from a single configuration. You define the general deployment process once and specify only what differs per stage, such as the server address for production versus staging. It can also run tasks in parallel across multiple servers, which is useful when deploying to a fleet of application servers. The tool imposes a standard directory structure on the servers it deploys to. This consistency means teams do not need to invent their own approach to where files go, which version is live, or how to roll back to a previous release. There are things Capistrano does not handle: it does not provision servers (install databases, web servers, or language runtimes), it does not know how to start or restart your application processes without you writing those steps or finding a plugin, and it requires key-based SSH authentication to be set up before you begin. It is designed for developers comfortable working with SSH and the command line.
← capistrano on gitmyhub — every repo by this author, as a profile.
Verify against the repo before relying on details.