Skip to content

Repository files navigation

Gotify-CLI travus-badgebadge-release

Gotify-CLI is a command line client for pushing messages to gotify/server. It is not required to push messages. See alternatives.

Features

  • stores token/url in a config file
  • initialization wizard
  • piping support (echo message | gotify push)
  • simple to use
  • watch and push script result changes (gotify watch "curl http://example.com/api | jq '.data'")

Alternatives

You can simply use curl, HTTPie or any other http-client to push messages.

$ curl -X POST "https://push.example.de/message?token=<apptoken>" -F "title=my title" -F "message=my message"
$ http -f POST "https://push.example.de/message?token=<apptoken>" title="my title" message="my message"

Installation

Manually

Download the latest release for your os: (this example uses version v2.2.0)

$ wget -O gotify https://github.com/gotify/cli/releases/download/v2.2.0/gotify-cli-linux-amd64
# or
$ curl -Lo gotify https://github.com/gotify/cli/releases/download/v2.2.0/gotify-cli-linux-amd64

Make gotify executable:

$ chmod +x gotify

Test if the Gotify-CLI works: (When it doesn't work, you may have downloaded the wrong file or your device/os isn't supported)

$ gotify version

It should output something like this:

Version: 2.2.0
Commit: 95cc125e39f805a1369b0c746c8bf3af15797a57
BuildDate: 2020-09-25-16:27:04

(optional) Move the executable to a folder on your $PATH:

$ mv gotify /usr/bin/gotify

Arch Linux

Gotify-CLI is available in the AUR, so you can install it with any AUR helper, i.e. yay:

$ yay -S gotify-cli

Maintenance of the AUR package is not performed by the Gotify team.

macOS

Gotify-CLI is available in Homebrew, so you can install it with:

$ brew install gotify

Maintenance of the Brew package is not performed by the Gotify team.

Usage

Now you can either run the initialization wizard or create a config manually. This tutorial uses the wizard.

$ gotify init

When you've finished initializing Gotify-CLI, you are ready to push messages to gotify/server.

Here are some examples commands, you can view the "push help" via gotify help push (or have a look at push help).

$ gotify push my message
$ gotify push "my message"
$ echo my message | gotify push
$ gotify push < somefile
$ gotify push -t "my title" -p 10 "my message"
$ gotify watch "curl http://example.com/api | jq '.data'"

Help

Uses version v2.2.0

NAME:
Gotify - The official Gotify-CLI
USAGE:
gotify [global options] command [command options] [arguments...]
VERSION:
2.2.0
COMMANDS:
init Initializes the Gotify-CLI
version, v Shows the version
config Shows the config
push, p Pushes a message
watch watch the result of a command and pushes output difference
help, h Shows a list of commands or helpfor one command
GLOBAL OPTIONS:
--help, -h show help
--version, -v print the version

Watch help

NAME:
gotify watch - watch the result of a command and pushes output difference
USAGE:
gotify watch [command options] <cmd>
OPTIONS:
--interval value, -n value watch interval (sec) (default: 2)
--priority value, -p value Set the priority (default: 0)
--exec value, -x value Pass command to exec (default: "sh -c")
--title value, -t value Set the title (empty for command)
--token value Override the app token [$GOTIFY_TOKEN]
--url value Override the Gotify URL
--output value, -o value Output verbosity (short|default|long) (default: "default")

Push help

$ gotify help push
NAME:
gotify push - Pushes a message
USAGE:
gotify push [command options] <message-text>
DESCRIPTION:
the message can also provided in stdin f.ex:
echo my text | gotify push
OPTIONS:
--priority value, -p value Set the priority (default: 0)
--title value, -t value Set the title (empty for app name)
--token value Override the app token [$GOTIFY_TOKEN]
--url value Override the Gotify URL
--quiet, -q Do not output anything (on success)
--contentType value The content type of the message. See https://gotify.net/docs/msgextras#client-display
--disable-unescape-backslash Disable evaluating \n and \t (if set, \n and \t will be seen as a string)

Configuration

Note: The config can be created by gotify init.

Gotify-CLI will search the following paths for a config file:

  • /etc/gotify/cli.json
  • $XDG_CONFIG_HOME/gotify/cli.json
  • ~/.gotify/cli.json
  • ./cli.json

Structure

namedescriptionexample
tokenan application token (a client token will not work)A4ZudDRdLT40L5X
urlthe URL to your gotify/serverhttps://gotify.example.com
defaultPriorityDefault priority ( set to 0 if not present)6

Config example

{
"token": "A4ZudDRdLT40L5X",
"url": "https://gotify.example.com",
"defaultPriority": 6
}

Configuration option

If needed, you can disable SSL handcheck validation using an environment variable:

export GOTIFY_SKIP_VERIFY_TLS=True

For better security with self-signed certificate, you can also set custom root CA or pin the server cert for TLS verification:

export SSL_CERT_FILE=/path/to/cert.pem

Dockerfile

The Dockerfile contains the steps necessary to build a new version of the CLI and then run it in a minimal Alpine container.

Build:

docker build -t gotify/gotify-cli .

Run (this assumes your cli.json file is in the current working directory):

docker run -it -v "$PWD/cli.json:/home/app/cli.json" gotify/gotify-cli:latest push -p 5 "Test from Gotify CLI"

About

A command line interface for pushing messages to gotify/server.

Topics

Resources

Stars

581 stars

Watchers

10 watching

Forks

Releases

Packages

Used by

Contributors

Languages