I still deploy #RubyOnRails apps with Capistrano.
Not out of nostalgia. Out of experience.
I run it inside Docker, with no CI and no SSH agents.
It works on my machine. And on any other machine. And that’s the point.
Most “modern” deploys break because the stack is over-engineered.
Legacy tooling + deliberate constraints = elegant resilience.