GitHub Deployments, Simplified.
- Registers GitHub webhooks for enabled repositories
- Pulls the latest version after a push
- Runs user-defined setup/teardown scripts
- 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]
Commands:
start Start Hubbard server as a daemon
stop Stop running Hubbard server
Options:
--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.