Gotify-compatible tools (Beszel, Watchtower, Scrutiny, Unraid)
A lot of self-hosted tools don’t have a Telegram or webhook integration of their own — they speak Gotify, either directly or through shoutrrr. InfraInbox answers like a Gotify server, so any of them can point at it by changing only the server URL and token: Beszel, Watchtower and Scrutiny (through shoutrrr), Unraid’s built-in Gotify agent, Uptime Kuma and Sonarr among them.
Tested with: shoutrrr 0.8 and 0.16 (the versions behind Watchtower, Scrutiny and Beszel), Unraid’s Gotify agent.
What you get
Section titled “What you get”Priority maps to severity:
| Gotify priority | Severity | Effect |
|---|---|---|
| 0–3 | INFO | Stays in the inbox; no incident |
| 4–7 | WARNING | Opens an incident |
| 8–10 | ERROR | Opens an incident |
The shipped preset adds one more rule: a Scrutiny SMART failure (gotify.scrutiny.smart) never auto-expires — it needs a manual resolve, since a failing drive doesn’t fix itself.
Prerequisites
Section titled “Prerequisites”One InfraInbox source can take messages from as many Gotify-speaking tools as you like — they all share the same server URL and each gets its own token underneath it, though the simplest setup is one source per tool so their events are easy to tell apart.
-
Go to Add source → Gotify-compatible and name it after the tool.
-
InfraInbox shows the server URL and a token (its ingest key — this is not the same key used on other routes, so keep the two separate if you also wire this source’s Events API):
Server URL: https://infrainbox.example.com/hooks/gotifyToken: iik_src_… -
Paste those into the tool’s own Gotify notification settings. For a shoutrrr-based tool (Watchtower, Scrutiny, Beszel), that’s usually a single URL instead of separate fields:
gotify://infrainbox.example.com/hooks/gotify/iik_src_…?priority=5 -
Trigger the tool’s own test notification, or wait for a real one. The source switches to Receiving events.
Unraid
Section titled “Unraid”Unraid’s Gotify agent (Settings → Notification Settings → Gotify) sends as multipart/form-data; point it at the same server URL and token as above.
A sender that can’t set a header
Section titled “A sender that can’t set a header”Some senders — older shoutrrr builds, and Uptime Kuma configured for Gotify rather than its own webhook — only send the token as ?token= in the query string, never as a header. Enable the query auth mode on this source in InfraInbox to accept that form. It works, but the token then sits in the URL, which your reverse proxy or any request log may capture — prefer a tool’s own webhook integration (Uptime Kuma) or the header form wherever the tool supports it.
Check it works
Section titled “Check it works”Send the tool’s own test notification. The source’s connection switches to Receiving events, and — for a priority of 4 or above — an incident opens.
Limitations
Section titled “Limitations”- Priority is the only severity signal Gotify carries; a tool that always sends the same priority will always land at the same severity here.
- The root alias (a client that drops the path and posts straight to
/message) is accepted too, for clients that can’t be told to keep/hooks/gotifyin their server URL.
- Routing rules — route by title or by tag
- Presets — see or change the SMART-failure rule