Releases: bufferpunk/deploy-bash
Deploy Bash v2 - BULLET
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
- Massive speedup (3–5× claimed / 300%–500%) by using a single ssh connection per server, to execute all commands.
- Countdown skipping — interactive countdown spinner that lets you hit ENTER to bypass the wait and start immediately. Great for impatient bros.
- 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

Deploy Bash v1.0.0 – Initial Release
Deploy Bash v1.0.0 – Initial Release
Say goodbye to tedious manual deployments. Deploy Bash is here to make your life easier with a zero-dependency, high-performance Bash deployment tool designed for real-world projects.
Whether you’re deploying Flask, Node.js, static files, or custom binaries — this script brings automation, flexibility, and sanity to your release process.
What's Inside
Single-command deployment to remote Linux servers via SSH.
Environment config parsing from config files for easy customization.
Automatic project archiving with timestamped backups.
Zero-downtime deployment via current symlink switching.
Systemd integration: gracefully reload and restart your services.
Automatic IP/domain detection for quick setup.
Safe file upload and extraction using SCP and tar.
Modular structure for easy extension/custom logic.
How It Works
Run the script locally and it reads your deploy.conf file or any other file you specify and:
Archives your project
Uploads it via SCP
Extracts and configures it on the server
Executes commands that you include
Restarts your app (via systemd)
Your app is now live via a clean current symlink on 1, 10 or any number of servers.
Perfect For
Fast deployments to cloud/VPS servers
Small to medium-scale production environments
Developers who want control without the weight of tools like Ansible or Capistrano
Check out the README for more info.
Built with love by Buffer Park
Open source. No bloat. Just deploy.