Gotify
The Gotify notifier sends each event as a message to your Gotify server. The Gotify Android app and web UI show it as a push notification.
[notifiers.gotify]type = "gotify"url = "https://gotify.example.com"token = "${GOTIFY_TOKEN}"Fields
Section titled “Fields”| Key | Required | What it does |
|---|---|---|
url |
yes | Your Gotify server, like https://gotify.example.com. RunWisp posts to <url>/message. |
token |
yes | The application token. Keep it out of the file; see Storing the secret. |
template_path |
no | A Go template file that replaces the built-in message. |
Creating the token
Section titled “Creating the token”- In the Gotify web UI, open Apps and click Create Application.
- Name it, for example
RunWisp. - Copy the token from the new row. It looks like
AWH4z0Kc.0jpNnG.
Anyone with the token can post as the app, so treat it as a secret. A token
belongs to one app; for a second app, create a second token and a second
[notifiers.*] block. Gotify notifiers don’t accept a gotify:<target>
override.
What a message looks like
Section titled “What a message looks like”❌ backup-postgres failed
Exited with code 1 after 0.3s.Triggered via the REST API · 14 May, 17:11.
Error: connection refuseddial tcp 127.0.0.1:5432: connect:connection refused
from runwisp · bright-falcon- The priority follows the outcome: 8 for failures, 5 for warnings like low disk space, 2 for everything else.
- Tapping the notification opens the run when
external_urlis set. - The last lines of output appear for failures and timeouts, when there is a log.
Changing the message
Section titled “Changing the message”Point template_path at your own Go template. Start from the built-in
gotify.tmpl.json,
a body for Gotify’s
message API. The template
gets the same helpers as the
Slack template.
What’s rejected
Section titled “What’s rejected”- A missing
url, or one that isn’thttp://orhttps://. - A missing
token.