deployer for node applications
JavaScript Shell Ruby Makefile
Latest commit 2c82bf7 Oct 4, 2016 @jtary jtary 5.2.4
 * test: fix race in worker exit state test (Ryan Graham)
 * test: skip e2e docker tests on swarm (Ryan Graham)
 * test: make install tests with docker optional (Ryan Graham)
 * Add 'use strict' to top of file (Kevin Delisle)
 * Update URLs in CONTRIBUTING.md (#360) (Ryan Graham)

README.md

strong-pm Logo

strong-pm - Process Manager

Gitter

StrongLoop PM is a production process manager for Node.js applications with built-in load balancing, monitoring, multi-host deployment, and a graphical console.

For more details, see http://strong-pm.io

Installation

Requirements: git needs to be installed

Install the client-side CLI and GUI (slc arc):

npm install -g strongloop
slc -h

Run app

slc start app.js

Or to deploy and manage remotely, install the manager on a production server using npm:

npm install -g strong-pm && sl-pm-install

Or using docker:

curl -sSL http://strong-pm.io/docker.sh | sudo /bin/sh

Quick Start

Under production, you will install the process manager as a system service, see http://strong-pm.io/prod, but if you are just trying the manager out locally, you can run an app directly from the command line.

Get a sample app (or use your own app):

git clone git@github.com:strongloop/express-example-app.git
cd express-example-app
npm install

Start the app under the process manager:

slc start

Interact with the app using the StrongLoop GUI:

slc arc

See http://strong-pm.io for more information.

Features

  • Build, package, and deploy your Node application to a local or remote system
  • Aggregate & rotate logs
  • Built-in load balancing
  • Keep processes and clusters alive forever
  • Profile CPU to find event loop stalls
  • Profile memory to find leaks
  • View performance metrics on your application
  • Use graphical tool or CLI
  • Docker support

Great for production!

  • Supports remote deploy and management
  • Git-based deploy for easy deployment versioning and rollback
  • Deployment does not have external dependencies (production hosts don't have to fetch from npmjs.org or Git)
  • Docker support
  • Built and supported by Node core maintainers at StrongLoop, battle-tested by enterprise customers

Build & Deploy

  • Multi-host deploy
  • Zero-downtime application restarts and upgrades
  • Install dependencies, run custom build steps, and prune development dependencies without affecting your source tree
  • SSH, HTTP, or Git-based deploy

Profile

  • Heap snapshots and CPU profiles
  • Profile applications to find performance bottlenecks
  • Use StrongLoop's unique event loop triggered profiling to start CPU profiling when the Node event loop stalls

Manage processes and clusters

  • Use all available CPU cores
  • Automatic restart on failure
  • Log aggregation and management
  • Change cluster size, view clustering info remotely
  • Set up secure access via SSH / HTTPS
  • Manage Nginx load-balancer for multi-host deployments

Metrics

  • View performance metrics such as event loop times, CPU and memory consumption
  • Publish metrics to StatsD-compatible servers, and view in 3rd-party consoles such as:
    • DataDog
    • Graphite
    • Splunk
    • Even syslog and raw log files
    • See Integrating with third-party consoles for details.
  • Third-party probe metrics, for example for Memcached, MongoDB, Redis, MySQL, and so on.

Docs & Community

For more resources, including links to blogs, see http://strong-pm.io/resources/.

Troubleshooting

Q: On deploy getting an `git: fatal: unable to access 'http://127.0.0.1:8701/default/': Empty reply from server

A: Check to make sure git is installed

License

You may use this library under the terms of the Artistic 2.0 license