A powerful CLI tool to deploy multiple apps with one command, using Git, PM2, and Node.js.
- 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.
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
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 |
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.
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
!
- (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
Situation | Exit Code |
---|---|
Success | 0 |
App Build Failure | 1 |
Invalid Arguments/Config | 2 |
Git Sync Failure | 3 |
MIT © [Deployit]