File permissions handling for Capistrano v3.*
Add this line to your application's Gemfile:
gem 'capistrano', '~> 3.0.0' gem 'capistrano-file-permissions'
And then execute:
Or install it yourself as:
$ gem install capistrano-file-permissions
Require the module in your
Set the (relative) paths to the files you want to be handled during deployment, and optionally add a user to give access.
set :file_permissions_paths, ["app/logs", "app/cache"] set :file_permissions_users, ["www-data"]
Add the acl task to the deployment flow
before "deploy:updated", "deploy:set_permissions:acl"
app/logs is a shared directory, and
app/cache is part of the normal
release, this gem would execute the following:
[..] setfacl -Rn -m u:www-data:rwX -m u:<deploy-user>:rwX <path-to-app>/shared/app/logs <path-to-app>/<release>/app/cache
- ### Configuration
The gem makes the following configuration variables available (shown with defaults)
set :file_permissions_roles, :all set :file_permissions_paths,  set :file_permissions_users,  set :file_permissions_groups,  set :file_permissions_chmod_mode, "0777"
- Fork it
- Create your feature branch (
git checkout -b my-new-feature)
- Commit your changes (
git commit -am 'Add some feature')
- Push to the branch (
git push origin my-new-feature)
- Create new Pull Request