node package manager
Share your code. npm Orgs help your team discover, share, and reuse code. Create a free org »



GitHub Deployments, Simplified.

What it does

  • Registers GitHub webhooks for enabled repositories
  • Pulls the latest version after a push
  • Runs user-defined setup/teardown scripts

What it doesn't do

  • Attempt to figure out the deployment strategy (npm start, docker start, etc.)
  • Daemonize your process or restart it if it dies (that's up to you)

Hubbard is essentially a glorified git post-checkout hook with GitHub mojo. That's it.



$ npm install -g hubbard
$ hubbard --help
  Usage: hubbard [command]
    start   Start Hubbard server as a daemon
    stop    Stop running Hubbard server
    --help                            output usage information
    --version                         output the version number
    -c, --config [config file]        Configuration file to use
    -h, --host [host]                 Hostname to bind server and webhooks
    -p, --port [port]                 Port to bind server and webhooks [8080]
    -s, --use-https                   Use HTTPS
    -t, --access-token [token]        GitHub personal access token
    --pass, --password [password]     Login password
    --data, --data-dir [directory]    Directory to store nedb data in
    --repos, --repos-dir [directory]  Directory to store repositories in
    -l, --log-file [file]             File to write logs to
    -ll, --log-level [level]          Logfile verbosity [err, info, verbose]
    -lf, --log-file-format [format]   Format to log to logfile [text, json]
    -pf, --pid-file [file]            File to output process id to

You may also clone this repo and use config.js, or environment variables.

NOTE: You shouldn't put your GitHub access token in config.js, nor any other sensitive values in your repos' scripts, to avoid exposing them in plain-text on disk. Any environment variables accessible to Hubbard will be accessible in your scripts.