Skip to content

v2.5.0 — channels that say what they are doing

Choose a tag to compare

@amayer1983 amayer1983 released this 08 Aug 18:28
· 1 commit to main since this release

Every notification channel now says whether it is actually going to send anything, can be switched off without losing its settings, and can be tested.

Three states, not one

A channel used to be on exactly when it was filled in. Fine as a default, and a poor answer to the question people actually ask — why is nothing arriving? Each card now says one of three things:

Active                            [x] Send through this channel   Send test
Switched off
Not active — missing: Server, From, To

Three, because they need three different things done about them. What is missing comes from the channel itself, so it stays right when a channel's requirements change; ntfy answers for itself, since "a topic URL or a server plus a topic" is not a list.

A switch per channel

Turning a working channel off used to mean clearing its fields — and for the five channels whose credentials are write-only in the interface, that means fetching a token again to turn it back on.

Default on, so upgrading changes nothing. The switch only appears once a channel is complete: offering to turn on something that would then do nothing is exactly how you get "I enabled it and nothing happened".

A test button on every channel

Not just the two webhooks. It sends through your saved settings — e-mail alone has seven fields, and a test built from whatever is currently in the form would answer about a configuration that exists nowhere — with every other channel blanked in a copy of the config, so the answer is about the channel you pressed it on.

And it reports what actually happened. The first version of it wrapped the send in a try, which is useless here: the channels are best-effort by contract, they log and return and never raise. Measured with a deliberately wrong webhook — the endpoint answered {"ok": true} while the channel printed Discord webhook error: HTTP 404. The verdict now comes from what the channel said, which also saves you the trip to docker logs.

And the page is ordered by it

Active first, then switched off, then not set up, with a 2 active · 1 off · 5 not set up line at the top. Eight cards is a lot to scroll, and burying the two that work under five that are not configured defeats the point of having said which is which.

The Discord webhook and the generic webhook have their own cards now, so every card is exactly one channel.


Nothing to do on upgrade. Every channel you already had stays on, and every CHANNEL_*_ENABLED variable defaults to true.