2.4.0 • Published 7 years ago

pm2-hook v2.4.0

Weekly downloads
2
License
MIT
Repository
github
Last release
7 years ago

pm2-hook

npm npm

PM2 module to process webhooks and update your project realtime. Supports multiple ports and pathes, pre-hook and post-hook features, comparing branches, and different types of updating.

This module is an advanced version of pm2-webhook created by Anton Isaykin. (The most important conceptual features have been rewritten. A lot of features have been added.)

Installation

You must have pm2 installed. Just add the module:

pm2 install pm2-hook

Usage

GitHub/Bitbucket webhook

Your repository page → Settings → Webhooks & services → Add webhook

FieldValue
Payload URLhttp://example.com:27777/webhook
Content Typeapplication/json
Secretsome secret phrase

PM2 config

Options:

OptionTypeExampleRequiredDefault
portnumber27777yes
pathstring"/webhook"no/
secretstring"some secret phrase"no
actionstring"pullAndReload"nopullAndRestart
pre_hookstring"npm run stop"no
post_hookstring"npm run generate_docs"no

Some notes:

  1. You can use all the actions described in the PM2 docs that take process name as argument.
  2. Webhook has a compare branches feature. It makes a pull request only if catches a request from VCS with the correct branch (if the current branch on your local git is the same as the remote branch contained in the VCS request).

Add environment variables in your ecosystem.json file. Only the port variable is mandatory.

{
    "apps": [
        {
            "name": "app",
            ...
            "env_webhook": {
                "port": 23928,
                "path": "/webhook",
                "secret": "some secret phrase",
                "action": "pullAndReload",
                "pre_hook": "npm run stop",
                "post_hook": "npm run generate_docs"
            },
            ...
        },
        ...
    ]
}

If your process has been already started, first kill it using the command pm2 delete ecosystem.json (We need this, because PM2 has some problems with reloading process configuration and if you only restart your process nothing will work :cry:). Start your processes with pm2 start ecosystem.json.

That's it. Each time you push to your repository, this module runs pm2 <action> <app name>.

Copyright and license

Copyright 2016-2017 Yurii Kramarenko, Dmitry Poddubniy.

Licensed under the MIT License.

2.4.0

7 years ago

2.2.3

7 years ago

2.3.2

7 years ago

2.3.1

7 years ago

2.3.0

7 years ago

2.2.2

7 years ago

2.2.1

7 years ago