ntfy alerts from AlertHub topic URL

ntfy alerts from AlertHub topic URL

Phone-first ops already lives in ntfy: one HTTP POST, a notification on Android, iOS, and the desktop web app. The usual trap is one topic per SaaS, then a pile of curl ntfy.sh/… scripts when someone rotates the secret.

AlertHub treats ntfy like Discord or Gotify: you paste one topic URL on the project. Sources stay on https://api.thealerthub.com/sendAlert (or email ingest). AlertHub detects ntfy (ntfy) and POSTs the message body with Title, Priority, and Tags headers.

Docs: ntfy destination.

How ntfy delivery works

  1. In ntfy: install the app → subscribe to a hard-to-guess topic.
  2. The URL is https://ntfy.sh/YOUR_TOPIC (or https://your-ntfy-host/YOUR_TOPIC; append ?auth=… for a reserved topic).
  3. In AlertHub: project Connections → ntfy → paste the URL.
  4. Warning and critical alerts become ntfy notifications (priority 4 vs 5). Info stays in the dashboard.

The topic name is the password. Pick something unguessable. Self-hosted ntfy works the same way: paste https://your-ntfy-host/YOUR_TOPIC (HTTPS, reachable from the internet).

Setup (once)

  1. Create a project at app.thealerthub.com.
  2. Subscribe to a topic in ntfy and paste https://ntfy.sh/{topic} in AlertHub.
  3. Send a test warning via the Ingestion API.

Alert 1: Phone-first on-call without Slack

Ops already lives in ntfy. Put Stripe failures, uptime, and GitHub Actions on the same AlertHub project so ntfy is the only extra destination to add.

Alert 2: ntfy + email destination

AlertHub also has an email destination for people who mute the phone. Same sources; ntfy for the pocket, email for the auditor.

Alert 3: One topic instead of per-script curls

When each cron job posts to its own ntfy topic, rotating the secret means touching every host. Move ingest to AlertHub (Shopify, email ingest), then keep a single ntfy URL in Connections.

Ideas to squeeze more value

  • Unguessable topic. Treat https://ntfy.sh/{topic} like a webhook secret.
  • Priority. Critical maps to ntfy priority 5 (urgent); warning maps to 4.
  • Same pattern as Gotify. If a second team still uses a self-hosted Gotify, add the Gotify destination on the same project.

FAQ

Is ntfy a first-class destination?
Yes. AlertHub sends headers plus a markdown body when the stored webhook is classified as ntfy, same family as Discord and Gotify.

Does a reserved topic work?
Yes. Paste https://ntfy.sh/mytopic?auth=…. AlertHub forwards the query string.

Does self-hosted ntfy work?
Yes. Paste https://your-host/topic on the ntfy card. AlertHub cannot uniquely regex-match custom hosts, so it only requires HTTPS. The server must be reachable from the internet.

Do info alerts appear in ntfy?
No. Raise the source level when the phone should see it.

Next steps

Paste an ntfy topic URL in Connections, follow the ntfy setup, and send one test warning.

Related: Gotify alerts · GitHub Actions → ntfy · Uptime + VPS → ntfy · On-call with Slack