ntfy

devopsdeveloper tools

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

#notifications#push#alerts#automation#self-hosted
Alternative to PushoverPushbulletGotify

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.

01
Get a phone notification when a long-running backup script or cron job finishes
02
Alert your team in Slack or on mobile when a CI pipeline fails without configuring a full alerting stack
03
Send notifications from a home automation script or webhook without registering for a third-party service
04
Replace Pushover for self-hosted alerting where you want no recurring subscription fee

Deployment Strategy

Recommended ways to host ntfy in your own environment.

docker
self-hosted