JSPM

  • Created
  • Published
  • Downloads 148
  • Score
    100M100P100Q91600F
  • License MIT

A powerful CLI tool to deploy multiple apps with one command, using PM2 and Git.

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

NPM

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

  1. (Optional) Git Sync
  2. Save current Git commit hash
  3. Cleanup old PM2 apps
  4. Build your apps
  5. Start apps using PM2
  6. Health check the apps (optional)
  7. 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]