Host ntfy without installing anything
One line of curl in a script and the phone buzzes — no vendor account, no library to install, no API key to request.
Starting at €2.99/month
Introduction
ntfy installed, updated and backed up by us, on a machine in France. Send yourself notifications on your phone from any script, with a simple HTTP request. Android and iOS apps, with no account and no third-party service. You install nothing and configure no server: the application is online a few minutes after you order, under your own name.
The plan that suits it is App Découverte at €2.99/month incl. VAT — 1 GB of memory. ntfy is a single program written in Go, with a small SQLite database that keeps messages long enough for a switched-off phone to catch up: it is the lightest application in the catalogue, and it lives in a few tens of megabytes in practice. What takes a little room are the connections held open for instant delivery and the files attached to messages. The rest of the memory goes to the system, and to never wondering whether the alert will get through.
What gets replaced here is Pushover, Pushbullet, or the habit of emailing yourself until you stop reading those emails. Publishing needs no library: an HTTP request to a topic address is enough, from a shell script, a cron job, a spreadsheet, an industrial controller or a business application. On the receiving side there are the Android apps — on the Play Store and on F-Droid — and iOS, plus the web interface. And ntfy can play one more role: acting as a UnifiedPush distributor for apps that support it, which lets a phone with no Google services still receive its notifications.
What managed hosting changes
Publishing fits on one line
A curl call carrying the message text to your topic address, and off it goes. No token to negotiate, no dependency to install, no mandatory JSON: anything that can make an HTTP request can notify you, including an old script found in a crontab.
Notifications that carry their context
Five priority levels — the highest rings even on silent — a title, tags, an address to open with one tap, action buttons that call another URL, and an attachment. A backup alert can therefore carry the link to its own report.
Delayed, scheduled, and nothing lost
A message can be dated to leave in thirty minutes or tomorrow at nine. And since messages stay cached on the server for a while, a phone that was off or out of range picks them up on reconnection instead of missing them.
Topics that belong to you
On your own instance, accounts and access lists decide who may read and who may write on each topic. You reserve a name, give write access to a server and read access to two phones — which a shared public service does not allow.
Why hand it over rather than install it
The backup that says what it did
One line at the end of the script, and the phone shows "42 GB backed up in 18 minutes" with a link to the log. You no longer open a log file to find out whether the night went well.
A plant room getting hot
A probe crosses the threshold, the message goes out at maximum priority and rings even if the phone is silenced. That is the kind of alert that has to wake someone, and priority exists precisely for it.
A shop announcing an order
The website calls the topic address on every confirmed order, with the amount as the title. The trader knows there is something to prepare before opening a computer.
A house that speaks
The gate left open, the washing machine finished, a power cut: home automation platforms and flow tools can all call a URL, so they can all notify you.
A phone with no Google services
On a de-Googled system, notifications from UnifiedPush-compatible apps go through your ntfy instance. The messages arrive, and they no longer pass through a giant's infrastructure.
Hosted in France
A notification message often holds more than you think: a customer name, an amount, a server address. Yours goes through our own datacentre in Nouvelle-Aquitaine, which we operate ourselves.
Frequently asked questions
You pick a topic name, subscribe to it in the mobile app, then send an HTTP request containing the message text to your instance address followed by that name. In shell it is a curl call; in Python, PHP or PowerShell it is the HTTP request function you already use. The options — title, priority, tags, link to open — are passed as headers, so there is nothing new to learn.
Yes, there is an iOS app, with one nuance worth knowing in advance: Apple requires instant notifications to go through its own delivery service. A self-hosted instance therefore has to be configured to relay through the ntfy project's service so the iPhone is woken; the setting exists for that. On Android, the app connects directly to your instance, with no intermediary.
On Android, instant delivery holds a connection open, which shows slightly on the battery; you may prefer periodic polling. Messages are not end-to-end encrypted: the instance sees their content — which is exactly why it is worth the instance being yours. Phone channels such as voice calls or SMS depend on a paid third-party account. And ntfy monitors nothing: it delivers. To learn that a service is down you need a monitor upstream that talks to it.
App Découverte, at €2.99/month incl. VAT. It provides 1 GB of memory where the application asks for 256 MB at minimum: the headroom serves the system, not the decor. You can change plan later without reinstalling.
On the server, nothing: the instance is ready. On the phone, the ntfy app from the Play Store, F-Droid or the App Store, where you enter your instance address before subscribing to a topic.