@deployit/cli
v1.0.42
Published
A powerful CLI tool to deploy multiple apps with one command, using PM2 and Git.
Maintainers
Readme
🚀 Deployit CLI Tool
A powerful CLI tool to deploy multiple apps with one command, using Git, PM2, and Node.js.
✨ Features
- Multi-App Deployment: Deploy multiple apps at once by selecting apps and ports.
- Git Sync: Optionally sync the latest remote repo before deploying.
- PM2 Process Manager: Restart or reload apps with zero downtime.
- Dry Run Mode: Simulate the entire deployment without making changes.
- Config File Support: Use
.deployrc.jsonfor easy setups. - Interactive Mode: Automatically prompts for missing options.
- Rollback on Failure: Automatically reverts to the previous working Git commit if a deployment fails.
- App Health Check: Pings the app after deployment to verify it's running.
- CI/CD Friendly: Usable in GitHub Actions or any CI pipeline.
📦 Installation
Use directly with npx (no install needed):
npx deployit --project MyProject --app app1,app2 --port 3000,3001 --env dev --sync trueOr install globally:
pnpm add -g @deployit/cliThen:
deployit --project MyProject --app app1,app2 --port 3000,3001 --env prod⚙️ Usage
One-Line Command
npx deployit --project MyProject --app web,public --port 1440,1441 --env dev --sync true --dry-run false --health-check| Option | Description | |-------------------|--------------------------------------------------| | --project | Name of the project | | --app | Comma-separated list of apps | | --port | Comma-separated list of ports | | --env | Environment: dev or prod | | --sync | Git sync before deployment: true or false | | --dry-run | Simulate deployment without executing | | --health-check | Perform a health check after app deployment |
🛠️ Interactive Mode
If you run without enough arguments, the CLI will ask interactively:
npx deployitYou'll be prompted to enter project name, apps, ports, and environment.
🛠️ .deployrc.json Config (Optional)
Create a .deployrc.json in your project root:
{
"project": "MyProject",
"app": ["web", "public"],
"env": "dev",
"ports": {
"web": 1440,
"public": 1441
}
}Then simply run:
npx deployit✅ It will auto-read .deployrc.json!
🔄 How It Works
- (Optional) Git Sync
- Save current Git commit hash
- Cleanup old PM2 apps
- Build your apps
- Start apps using PM2
- Health check the apps (optional)
- If any step fails, automatically rollback to the saved Git commit
🚨 Exit Codes
| Situation | Exit Code | |-----------------------------|-----------| | Success | 0 | | App Build Failure | 1 | | Invalid Arguments/Config | 2 | | Git Sync Failure | 3 |
📜 License
MIT © [Deployit]
