Capistrano

No Change
hold
First Added:April 5, 2023 Updated: May 18, 2026

Capistrano is a Ruby remote-deployment DSL: SSH into servers, run recipes (cap deploy), symlink releases; classic 2000s Ruby on Rails ops. We rate it hold: it predates Declarative IaC and GitOps; imperative deploy scripts drift, hide blast radius, and fight container-native workflows.

Blurb

Capistrano is a framework for building automated deployment scripts.

Summary

Why hold: serial SSH orchestration with mutable servers is the opposite of reconciled desired state. Recipes become tribal knowledge; rollbacks depend on symlink tricks; secrets and host lists rot in repo or .cap config.

Historical credit: helped teams practice repeatable deploys before modern DevSecOps, but that problem is better solved today without Capistrano.

Use instead

NeedPrefer
Configure existing VMsAnsible (adopt, last-resort second touch)
Provision cloud shapeTerraform + Declarative IaC
Run the appKubernetes + ArgoCD (GitOps CD)
Legacy Rails monolithStrangle to containers/CI; don’t extend Capistrano

Details

  • Imperative IaC: same failure mode as Imperative IaC generators; hard to review, hard to test, hard to audit.
  • Migration: freeze Capistrano recipes; mirror deploy steps in pipeline + declarative infra; retire SSH-based deploy users when apps move to K8s or immutable images.

Related: