Skip to content

Releases

pizdeploy v0.1.0 — First Public Release 🚀

Choose a tag to compare

@jt3k jt3k released this 24 Oct 18:33

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 for sudo.
  • 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 active state and listening TCP port (ss -tln), or verifies NRestarts stays 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 ps for a fleet view, logs for journalctl --user, start / stop / restart / remove for 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