As this tool is very similar to this one, it has been deprecated and repository archived.
The only service not supported directly by notify is pushitbot but it can be used with their custom provider, eg:
custom:
- id: pushitmd
custom_webook_url: https://tgbots.skmobi.com/pushit/<TOKEN PROVIDED BY PUSHITBOT>
custom_method: POST
custom_format: 'format=Markdown&msg={{data}}'
Another feature that might be missed from this tool is the --web flag has been added in my notify fork: plan is to clean it up and open a PR but fork has its own releases and docker image.
Similar to notify-push (in python), pushit is a CLI tool to push notifications straight to your phone.
The usual sysadmin method is to send alerts via email but there are tons of services out there with mobile apps that allow us to send push notifications, why not use those for faster and cleaners alerts?
Use go get:
go get github.com/fopina/pushit
Or download a pre-built binary from releases.
The pre-built binary has the --update flag to allow easier updates in the future.
$ pushit -h
Usage of pushit:
-c, --conf string configuration file (default "/Users/fopina/.pushit.conf")
-h, --help this
-l, --lines int number of lines of the input that will be pushed - ignored if --stream is used (default 10)
-o, --output echo input - very useful when piping commands
-p, --profile string profile to use
-s, --stream stream the output, sending each line in separate notification
-u, --update Auto-update pushit with latest release
-v, --version display version
-w, --web Run as webserver, using raw POST data as message
-b, --web-bind string Address and port to bind web server (default "127.0.0.1:8888")The configuration file is required but an example is available here in the repo.
default: pushitbot-demo
profiles:
pushitbot-demo:
service: pushitbot
params:
token: 105e48ff92b92263f3397ed55f275a81
format: Markdowndefaultis the default profile when--profileis not specifiedprofilesis a mapping with configured profilespushitbot-demois the profile name, free choiceserviceis the notification service, check below for optionsparamsis a mapping of options specific to the service, check below for options
Pushing messages is now as simple as:
$ pushit hello worldOr using stdin (useful for shell piping):
$ pushit
hello
$ echo hello world | pushitA flag worth highlighting is --stream that will post a message per line read from stdin, just try:
$ (echo one; sleep 1; echo done) | pushit --streamIn some restricted (container?) environments it might be useful to have a single pushit installation (and configuration) available for multiple services/scripts to use it.
--web starts a local webserver and anything POSTed to that URL will be pushed as if it was stdin.
$ pushit -w
Up and running!
Post raw data to http://127.0.0.1:8888/, as in:
curl http://127.0.0.1:8888/ -d 'testing 1 2 3'
This will send that data as message using the default profile.
To use a specific one, post to http://127.0.0.1:8888/PROFILE
--web mode is specially useful in a cluster of containers so that pushit does not need to be installed and configured in every image.
An image is ready to be used in the hub:
$ docker run --rm \
-v ~/.pushit.conf:/.pushit.conf:ro \
-p 8888:8888 \
fopina/pushit \
-w -b 0.0.0.0:8888
Params are the possible values to use in configuration file params profile entry
| Service | Description | Params |
|---|---|---|
| slack | Use Slack Incoming Webhooks | url: webhook URL (required) channel: channel to post the message to username: username to display icon_emoji: emoji to use as bot picture icon_url: URL to use as bot picture |
| pushitbot | Use PushItBot | token: token provided by @PushItBot (required) format: blank (default), HTML or Markdown, as defined in the service documentation |
| telegram | Use Telegram Bot API | token: token provided by @BotFather (required) chat_id: target user/group ID - use @myidbot to find your ID or a group ID (required) |
| requestbin | Use Requestbin.com - demo service for testing/debugging | url: requestbin.com generated endpoint Any other params defined will be posted to the endpoint as well |