bedrock-capistrano
These are the Capistrano configs for deploying Bedrock projects.
Capistrano is a remote server automation and deployment tool. It will let you deploy or rollback your application in one command:
Screencast (
Status: This project is stable, feature complete, and production ready. This means that we won't be adding new features. Only fixing existing bugs and ensuring that base functionality works.
Requirements
- Ruby >= 1.9
Required Gems:
capistrano
(> 3.1.0)capistrano-composer
These can be installed manually with gem install <gem name>
but it's highly suggested you use Bundler to manage them. Bundler is basically the Ruby equivalent to PHP's Composer. Just as Composer manages your PHP packages/dependencies, Bundler manages your Ruby gems/dependencies. Bundler itself is a Gem and can be installed via gem install bundler
(sudo may be required).
The Gemfile
in the root of this repo specifies the required Gems (just like composer.json
). Once you have Bundler installed, run bundle install
to install the Gems in the Gemfile
. When using Bundler, you'll need to prefix the cap
command with bundle exec
as seen below (this ensures you're not using system Gems which can cause conflicts).
See http://capistranorb.com/documentation/getting-started/authentication-and-authorisation/ for the best way to set up SSH key authentication to your servers for password-less (and secure) deploys.
Installation/configuration
- Copy the following files into the root of your Bedrock project:
Capfile
Gemfile
Gemfile.lock
- Copy the following files/folders into your
config
directory:
config/deploy/*
config/deploy.rb
- Edit your
config/deploy/
stage/environment configs to set the roles/servers and connection options. - Before your first deploy, run
bundle exec cap <stage> deploy:check
to create the necessary folders/symlinks. - Add your
.env
file toshared/
in yourdeploy_to
path on the remote server for all the stages you use (ex:/srv/www/example.com/shared/.env
) - Run the normal deploy command:
bundle exec cap <stage> deploy
- Enjoy one-command deploys!
Usage
- Deploy:
cap production deploy
- Rollback:
cap production deploy:rollback
Composer support is built-in so when you run a deploy, composer install
is automatically run. Capistrano has a great deploy flow that you can hook into and extend it.
Contributing
Contributions are welcome from everyone. We have contributing guidelines to help you get started.
Support
Use the Roots Discourse forum to ask questions and get support.