Skip to content

Dalas/pm2-hook

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

76 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

Field Value
Payload URL http://example.com:27777/webhook
Content Type application/json
Secret some secret phrase

PM2 config

Options:

Option Type Example Required Default
port number 27777 yes
path string "/webhook" no /
secret string "some secret phrase" no
action string "pullAndReload" no pullAndRestart
pre_hook string "npm run stop" no
post_hook string "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 😢). 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.

About

PM2 module to process webhooks and update your project realtime. Supports multiple ports and pathes.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 100.0%