Skip to content

Deploy Bash v2 - BULLET

Latest

Choose a tag to compare

@Scion-Kin Scion-Kin released this 19 Oct 02:43
· 6 commits to main since this release

Summary

BULLET (v2) is a major performance & UX update to deploy-bash.
This release focuses on faster deployments (concurrent server work), flexible password support for SSH & sudo, and a nicer, skippable countdown so you can launch instantly when ready. It keeps the familiar CLI/flag behaviour but brings meaningful automation & convenience improvements.

Highlights

  1. Massive speedup (3–5× claimed / 300%–500%) by using a single ssh connection per server, to execute all commands.
  2. Countdown skipping — interactive countdown spinner that lets you hit ENTER to bypass the wait and start immediately. Great for impatient bros.
  3. Remote password support for SSH & sudo — if no SSH_KEY is provided the script will detect/install sshpass and use an entered password to scp/ssh and for sudo operations on the target hosts. (Note: this is intended for convenience; see Security notes.)

Full changelog (important bits)

All commands in one ssh connection. This is the reason for the massive speed gains.
By avoiding disconnecting and reconnecting on every 2-3 commands we gain so much time in deployment.

Interactive countdown with instant-deploy option — spinner + read -t checks let users press ENTER during the countdown to start immediately. Default countdown remains (10s) but is interruptible.

sshpass auto-detection & install — when no SSH key is provided the script checks for sshpass, installs it via apt-get if missing, and uses sshpass -p for scp/ssh when a password is supplied.

Remote sudo password prompt support — prompts per server for a sudo/SSH password (stored to use with sshpass for that server’s scp/ssh). If password not supplied the script assumes passwordless sudo and proceeds accordingly.

Minor UX & safety improvements — clearer colored output and more error checks.

Upgrade / Usage notes

Tag name for this release: BULLET — Fast as light!

Backwards-compatible: existing flags/config still supported (--config=, --servers=[...], --npm, --apt-update, --deploy-dir=, --rollback=, etc.). See README

To get the speed benefits, simply target multiple servers as before — the script will run the per-server tasks concurrently and wait for all to finish.

If you prefer non-interactive runs (CI), you can pre-export SUDO_PASS or provide a key via SSH_KEY so the script does not prompt interactively.

Security & operational notes (please read)

Using sshpass and passing passwords to scripts is inherently less secure than SSH key-based auth. Passwords may be viewable in process lists on some systems or remain in shell history if misused. Prefer SSH keys + ssh-agent for production and CI. The script does default to SSH keys when SSH_KEY is set.

If you must use passwords:

Prefer supplying SUDO_PASS from a protected environment (CI secret store) rather than typing it on an untrusted machine.

The script currently targets Debian-based systems and uses apt-get to install sshpass and dnsutils if required. If you run on other distros, expect to add package-manager adjustments.
GitHub

image image