Add ntfy / Web Push notification channel #72

Closed
opened 2026-07-18 05:31:34 +00:00 by claude-bot · 1 comment
Contributor

The notifier architecture is one-file-per-channel; ntfy is the de-facto self-hosted push standard and would give phone push without Twilio costs or Discord/Matrix infrastructure. Missed because the channel list tracks what the owner already ran. Effort S, value High for any phone user.


Filed from the 2026-07-17 codebase audit (docs/.internal/report-2026-07-17.md), finding I-02.

The notifier architecture is one-file-per-channel; ntfy is the de-facto self-hosted push standard and would give phone push without Twilio costs or Discord/Matrix infrastructure. Missed because the channel list tracks what the owner already ran. Effort S, value High for any phone user. --- _Filed from the 2026-07-17 codebase audit (`docs/.internal/report-2026-07-17.md`), finding I-02._
Author
Contributor

Done in #112 (merged). ntfy channel implemented end-to-end: ChannelType.ntfy + migration 0025, notifiers/ntfy.py (POST to {server_url}/{topic} with Title/Priority/Tags, Bearer or Basic auth, severity→priority default, Transient/Permanent outbox error classification, RFC-2047 header encoding), NtfyConfig validation + secret redaction, both dispatch chains wired, and full web-form UI in channels.html. Like email/pushover/sms it carries NWS alerts + all-clears (the SPC/forecast/AI dispatch chains are discord+webhook-only by design). 20 notifier tests; migration 0025 verified on a real-DB copy.

Web Push (VAPID keys + service worker + subscription management) is intentionally not in this — it's a substantially larger effort. If wanted, file it fresh; ntfy already delivers the phone-push value this issue was about.

Done in #112 (merged). ntfy channel implemented end-to-end: `ChannelType.ntfy` + migration 0025, `notifiers/ntfy.py` (POST to `{server_url}/{topic}` with Title/Priority/Tags, Bearer or Basic auth, severity→priority default, Transient/Permanent outbox error classification, RFC-2047 header encoding), `NtfyConfig` validation + secret redaction, both dispatch chains wired, and full web-form UI in `channels.html`. Like email/pushover/sms it carries NWS alerts + all-clears (the SPC/forecast/AI dispatch chains are discord+webhook-only by design). 20 notifier tests; migration 0025 verified on a real-DB copy. **Web Push** (VAPID keys + service worker + subscription management) is intentionally **not** in this — it's a substantially larger effort. If wanted, file it fresh; ntfy already delivers the phone-push value this issue was about.
Sign in to join this conversation.
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
rbrooks/WeatherBot#72
No description provided.