pudeploy
v0.1.0
Published
Personal infra butler — bootstrap Linux servers, scaffold projects, deploy & operate. SSH + systemd + sqlite, single binary self-hosted.
Downloads
119
Maintainers
Readme
pudeploy
CLI for pudeploy — a self-hosted, single-binary deployment server for personal projects. Bootstrap fresh Linux VPS, scaffold projects from templates, package artifacts, upload, and follow live deployment logs from one CLI.
After install the binary is just deploy — short and ergonomic.
Install
npm install -g pudeploy
# or
pnpm add -g pudeployRequires Node.js ≥ 20.
Quick start
# 1. Bootstrap a fresh Linux VPS (SQLite mode, single binary, ~5 minutes)
deploy bootstrap [email protected] --admin-password 'strong-pw'
# 2. Log into the new server
deploy login --server http://your-vps.example.com:7500
# 3. Scaffold a project from a template
deploy create my-app --template gin-template
# 4. Deploy it
cd my-app
deploy runMain commands
| Command | What it does |
|---|---|
| deploy | Interactive menu (deploy / rollback / status / logs / restart / edit) |
| deploy run | One-shot deploy — prebuild → tar → upload → follow logs |
| deploy bootstrap user@host | Install a fresh deploy server on a Linux VPS |
| deploy create <name> --template <t> | Scaffold project from server template, auto-register + issue token |
| deploy logs <id> | Stream a specific deployment's log (SSE) |
| deploy service-logs -f | Stream the app's journalctl |
| deploy rollback [id] | Roll back to a prior release (default: previous success) |
| deploy status | Project + service status snapshot |
| deploy doctor | Health check: Node / PATH tools / server reachability / project config |
| deploy ai-init | Let AI scan your repo and infer deploy.json |
| deploy template publish [dir] | Upload a local template to the server |
Run deploy --help for the full reference.
Multi-environment
A single project directory can deploy to multiple environments (staging, production, ...) sharing one codebase:
{
"server": "https://deploy.example.com",
"default_env": "staging",
"prebuild": "make build",
"envs": {
"staging": { "project": "my-app-staging", "source": "./bin" },
"production": { "project": "my-app-production", "source": "./bin" }
}
}deploy run # default → staging
deploy run --env production # switchConfiguration
deploy.json (in project root) is the source of truth.
- Tokens live in
~/.deploy/credentials.json(not indeploy.json, not in git) - Per-command flags override env vars override
deploy.json deploy initgenerates a skeleton interactively
License
MIT — see LICENSE.
