
Security News
Follow-up and Clarification on Recent Malicious Ruby Gems Campaign
A clarification on our recent research investigating 60 malicious Ruby gems.
Capistrano is old and busted, right? Time to move on? WRONG! Caplets makes capistrano the new hotness once again. It bring capistrano into the future with all your favorite goodies: git, bundler, unicorn, and more.
WARNING: Caplets has evolved out of Mint Digital's real-world deployments of many large Rails/Rack applications. Although we have tried to keep it as generic and customizable as possible, it is still very opinionated. That is to say, it is largely tailored to how we like to deploy applications. If caplets is missing something important to you, submit an issue or fork away.
$ gem install caplets
# config/deploy.rb
require 'caplets'
load 'caplets/memcached'
load 'caplets/whenever'
# etc...
Caplets depends heavily on capistrano's concept of server roles to apply tasks only to the servers that require them. Most often, your sever definitions will look like this:
server 'app1.mintdigital.com',
:app, :memcached, :sphinx, :assets,
:primary => true
Caplets is a series of load
able capistrano extensions. This given you
maximum flexibility in your deployments without having to remember to
set/unset loads of capistrano variables. Only the tasks you need get run.
See the MODULES file for descriptions of all the available modules, along with what tasks they add and what variables they use.
The one module you will always get, even if you just require
caplets/basic
is caplets/deploy
. This file is the heart of caplets; it
sets up the essentials of what caplets considers a modern deployment.
The biggest change to the standard capistrano setup is that we use git to manage releases. Let me say that again as it's important:
** Instead of using subdirectories and symlinks to manage releases, caplets uses git.**
That means:
releases
or shared
directories.:deploy_to
directory.:current_path
, :current_release
, :release_path
, :latest_release
,
and :shared_path
will all be the same.git reset
Here are a few other changes that caplets/deploy
makes:
:use_sudo
is false by default:rails_env
is replaced with :environment
, which caplets expects you to
set in your deploy file.:user
and :group
default to deploy
:shared_children
is not used. Use :required_children
instead.deploy
task is disabled. Use deploy:quick
to do an
deploy:update
+ deploy:reload
. Load caplets/db
for caplets'
replacement deploy:migrations
task.deploy:web:enable
and deploy:web:disable
are
disabled. Load caplets/web
for caplets' replacements.Requiring caplets
gets you the most common modules in one go. If you don't
want them all, you can always require caplets/basic
instead.
# config/deploy.rb
require 'caplets'
# Equivalent to...
require 'caplets/basic'
load 'caplets/bundle'
load 'caplets/db'
load 'caplets/logs'
load 'caplets/web'
load 'caplets/yaml'
FAQs
Unknown package
We found that caplets demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
A clarification on our recent research investigating 60 malicious Ruby gems.
Security News
ESLint now supports parallel linting with a new --concurrency flag, delivering major speed gains and closing a 10-year-old feature request.
Research
/Security News
A malicious Go module posing as an SSH brute forcer exfiltrates stolen credentials to a Telegram bot controlled by a Russian-speaking threat actor.