It is a little difficult to explain what the Personal Message Bus (PMB) is, so it's perhaps easier to state first what it can help you do:
- Remote copy - copy small and large snippets of text from any remote system, no matter how many levels of SSH deep, into your local clipboard
- Opening URLs in local browser - send URLs from your remote editor or IRC client and open it locally in your desktop browser, works for html content as well
- Long running job notification - run that 20 minute deployment script, kick off that 11Gb database import, or run any other long job and get a notification on your desktop when it is complete
- Log file streaming - send log files from a dozen servers and aggregate them locally or on a remote system
- Remote command coordination - update a cloud database from one server and then run a database import on another, making sure that the commands are done in order and as soon as possible, receiving notifications for each step
- Mobile and watch notification - leave work with a deployment running and receive a message on your watch halfway through dinner that the deployment succeeded
- File download notification - download large files and get a notification when the download is complete.
All this, and all communication is encrypted and sent over an SSL connection. There are no complex firewall holes to punch, everything goes through a RabbitMQ instance out in the cloud.
To learn more and get started using PMB, head over here.
The rest of this document details how to hack on PMB.
$ go get github.com/justone/pmb
# cd $GOPATH/src/github.com/justone/pmb
# go build
If you need a nice clean go environment, try out skeg.
- remotecopy - My first foray into copying data from remote systems to my local clipboard. PMB started because I really liked the power of remotecopy and wanted to apply that power to other problems.
- remote-pbcopy - The inspiration for remotecopy and, transitively, PMB.
- lemonade
- DoIt
This project wouldn't be possible without the following libraries:
Copyright © 2014-2017 Nate Jones
Distributed under the Apache License Version 2.0.