JSPM

  • Created
  • Published
  • Downloads 149
  • Score
    100M100P100Q98314F

CLI tool for deploying apps with PM2

Package Exports

    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]