github.com/bom-d-van/harp (go): Package harp is a go application deploy tool (or an easy way to start go daemon or run go programs on remote servers).  Please consult up-to-date README from https://github.com/bom-d-van/harp. Docs here are made for good GoDoc Searches.  Harp simply builds your application and upload it to your server. It brings you a complete solution for deploying common applications. It syncs, restarts, kills, and deploys your applications.  The best way to learn what harp does and helps is to use it. (In test directory, there are docker files and harp configurations you can play with)  Usage:  example:  How to specify server or server sets:  Using the configuration above as example, server set means the key in `Servers` object value, i.e. `prod`, `dev`. While server is elemnt in server set arrays, you can specify it by `{User}@{Host}{Port}`.  Or run a go package/file on remote server. You can specify server or server sets on which your migration need to be executed.  Simple:  With env and arguments:  Multiple migrations:  __Note__: Harp saved the current migration files in `$HOME/harp/{{.App.Name}}/migrations.tar.gz`. You can uncompress it and execute the binary manually if you prefer or on special occasions.  By default harp will save three most recent releases in `$HOME/harp/{{.App.Name}}/releases` directory. The current release is the newest release in the releases list.  And there is also a `rollback.sh` script in `$HOME/harp/{{.App.Name}}` that you can use to rollback release.  You can change how many releases you want to keep by `RollbackCount` or disable rollback by `NoRollback` in configs.  Add `BuildCmd` option in `App` as bellow:  Build override is useful doing cross compilation for cgo-involved projects, e.g. using Mac OS X building Linux binaries by docker or any other tools etc.  Note: harp expects build output appears in directory `tmp/{{app name}}` where you evoke harp command (i.e. pwd).  harp supports you to override its default deploy script. Add configuration like bellow:  The script could be a `text/template.Template`, into which harp pass a data as bellow:  A default deploy script is:  Similarly, restart script could be override too. And its default template is:  You can inspect your script by evoking command: `harp -s prod inspect deploy` or `harp -s prod inspect restart`.  If you need to initialize cross compilation environment, harp has a simple commend to help you:
Keywords: deployment|go|tool