ntfy
HTTP-based pub/sub notification service. Send push alerts to your phone or desktop from any script using a single curl command. No account or API key required
Quick Start
docker run -p 80:80 -itd binwiederhier/ntfy serve Overview
ntfy is a pub/sub notification service built around a single idea: sending a push alert should take one HTTP request. No account registration, no API key, no SDK — just POST to a topic URL and the message appears on your phone. curl -d "Backup complete" ntfy.sh/my-topic is the entire integration for a cron job or shell script.
The Android and iOS apps subscribe to topics and deliver notifications in the background. A web app handles desktop notifications. Any service that can make an HTTP request can publish to a topic, which makes ntfy a practical fit for Home Assistant automations, Uptime Kuma alerts, CI pipelines, or custom scripts that need to reach a human without routing through a full alerting stack.
The public ntfy.sh server handles low-volume personal use for free. Since topics are defined by URL path rather than account registration, the namespace is shared — anyone who guesses or knows your topic URL can read messages on it. For anything beyond casual personal use, self-hosting is the right call. The self-hosted version adds access token authentication, per-topic ACLs, and message persistence configuration.
Deployment is a single container with no external dependencies. ntfy stores messages in SQLite and serves the web app from the same process. The Android app supports UnifiedPush, which means notifications can route through your own server rather than Google’s FCM infrastructure if you prefer to avoid it.
For teams already running Grafana, Uptime Kuma, or n8n, ntfy drops in as a lightweight notification endpoint without adding complexity to the monitoring stack.
ntfy: Pros & Cons
| Pros (The Wins) | Cons (The Friction) |
|---|---|
| Zero setup to start: curl -d “message” ntfy.sh/topic is the full integration. | Shared namespace: Public server topics have no account-based access control. |
| Android + iOS apps: Background push delivery; UnifiedPush support too. | No delivery guarantees: Messages expire after the configurable cache window. |
| Single container: SQLite storage, no external dependencies to manage. | Auth requires self-hosting: Per-topic ACLs only available on your own server. |
| 30.4k stars: Native integrations in Home Assistant, Uptime Kuma, n8n. | Not for high volume: Designed for operational alerts, not event stream pipelines. |
Use Cases
Specific ways to use ntfy for your workflow.
Deployment Strategy
Recommended ways to host ntfy in your own environment.