Minestrone ๐ฒ
Minestrone is a simplified fork of old Capistrano 2.x. A kind ofโฆ mini-capistrano.
Project description
Minestrone is a tool for deploying Ruby applications to a server, based on the code of the classic deploy tool Capistrano, the older 2.x version, but simplified and cleaned up, with various features removed that I decided I'm never going to need myself. The focus is on deploying Ruby apps to a single host from Git over SSH. It keeps the core deploy DSL with compatibility maintained where possible, the git remote cache and copy strategies, release rotation with rollbacks, and the logging/formatting code.
What is removed
- server roles, multiple servers and "primary" server designation โ you only define a single server hostname and everything happens there
- support for any parallel execution
- multiple stages
- SSH gateways
- password authentication for SSH and Git
- Windows support
- REPL shell
- legacy SCMs โ only
:gitand:noneare left - most deploy strategies โ only
:remote_cacheand:copyare left - maintenance page tasks
- normalizing asset timestamps
deploy:cold,deploy:startanddeploy:stoptasks- any legacy/deprecated code from Capistrano 1.x era or for ancient versions of Ruby or Rails
Other API changes
- default deploy path is
/var/www/#{application} servermethod in the DSL only accepts a single string + options:use_sudois false by defaultdeploy:cleanupruns automatically, with 5 last releasesdeploy/bundlerrecipe handles Bundler integration- migration & asset tasks set a
RACK_ENVinstead ofRAILS_ENV(which Rails also accepts), unless:rails_envis explicitly defined - added
upload_fileas alias forupload - added
appendandremovefor adding/removing items from array variables - renamed
_csettoset_if_empty - Ruby 3.0+ is required
Project status
[!WARNING] This project is an early, untested alpha version. Most of the work stripping out various parts from the old codebase was done using Codex AI coding agent (with manual code reviews to some degree). Use with caution.