Package Exports
- @deployit/cli
- @deployit/cli/bin/cli.mjs
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@deployit/cli) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
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.json
for 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 true
Or install globally:
pnpm add -g @deployit/cli
Then:
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 deployit
You'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]