Repository navigation
Releases
Releases · jt3k/pi-zero-deploy
pizdeploy v0.1.0 — First Public Release 🚀
pizdeploy v0.1.0 — First Public Release 🚀
Zero-privilege, atomic deployment CLI for Node.js applications on Raspberry Pi and any systemd Linux server.
Build locally on your laptop, ship over SSH, atomically switch symlinks, health-check ports, and auto-rollback on failure — without Docker, without sudo, and without SSH npm install.
✨ Highlights
- Zero-Privilege — runs entirely in user mode via
systemctl --user, never touches/etc/systemd/system, never asks forsudo. - Atomic Deploys & Rollback — instant symlink switch to immutable release dirs; auto-rollback if the service fails to start or the port check fails.
- Health Verification — checks
activestate and listening TCP port (ss -tln), or verifiesNRestartsstays at 0 for bots/workers without a port. - Zero Host Build Overhead — heavy compilation and bundling happen on your Mac/PC; the single-board computer only runs plain
node. - Lifecycle & Monitoring —
pizdeploy psfor a fleet view,logsforjournalctl --user,start/stop/restart/removefor control. - Batteries Included — 108 automated tests, zero external test network dependencies, strict TypeScript.
📦 Install
bun add -g github:jt3k/pi-zero-deploy
pizdeploy --version
### 🚀 Quickstart
cd my-app
pizdeploy init # optional: scaffold systemd unit template
pizdeploy --ssh pi@raspberrypi.local # deploy
Or set "pizdeploy": { "ssh": "pi@zero.local", "port": 3000 } in package.json and run pizdeploy.
### 📋 Requirements
• Host — any Linux with systemd (systemctl --user) + Node.js installed.
• Client — macOS or Linux with Bun https://bun.sh ≥ 1.0 + OpenSSH (ssh, scp).
• Access — SSH key auth (ssh-copy-id). Password prompts are not supported (BatchMode=yes).
│ This is the initial public release (v0.1.0). API may change in 0.x. Feedback and issues are welcome.
Full changelog: https://github.com/jt3k/pi-zero-deploy/commits/v0.1.0