finds.dev

amail/deploy.sh

Deploy.sh is a universal deployment script that makes it easy for you to deploy your code, files, configurations etc. to multiple servers via ssh. Perfect for the cloud. Written as a shell script (standard bourne shell) and runs on every unix server. No need for remote install. Just run the deploy.sh script on the local machine.

View on GitHub

★ 69ShellBSD-3-Clauseupdated Apr 2012

// the take

A plain POSIX shell script for pushing code and config files to multiple servers over SSH, built around a .deploy config file and distinct begin/copy/replace/finish phases. Aimed at people who want cloud server deploys without installing an agent (Capistrano, Fabric, Ansible) on either end.

Zero runtime dependencies — it's sh, so it works on any unix box without installing Python, Ruby, or a config management agent on the targets. The phased design (--begin, --copy, --replace, --finish, --update-s2) is a genuinely useful idea: you can re-run a failed deploy from the step it died on instead of starting over, and it copies to /tmp first before swapping files in, which limits half-deployed states.

Dead project — last commit 2012, no issues or PRs merged since, so it predates widespread SSH config hardening, systemd, and basically all modern CI/CD practice. The security model documented in the README is rough for anything but a toy: passphrase-less SSH keys, the same key and username across every server, and 'optional' passwordless sudo — that's a lot of blast radius if one server or one developer's laptop is compromised. No rollback mechanism if --replace fails partway through multiple servers, just the hope that --update-s2 can patch things up. No tests, no changelog, and the README leans on vague tips ('write your .deploy file with if statements') rather than documenting what actually happens on failure.

We read the README, the directory tree and a key source file in October 2026. Nobody pays to be listed. How we judge →

// at a glance

Stars
69
Forks
45
Language
Shell
License
BSD-3-Clause
Last commit
22 Apr 2012

// nearby

If deploy.sh isn't quite it.

All repos →