ntfy: push notifications from your own server to your phone
Description and use
Set up a private ntfy server behind Traefik, configure HTTPS and authentication, subscribe to a topic, and send notifications via curl. Alerts arrive instantly on the phone via the ntfy app.
Problem
Receive real‑time alerts (e.g., backup failures, disk space warnings, SSH logins) on a phone without relying on third‑party push services.
Outcome
A lightweight, self‑hosted push notification system that delivers instant alerts to phone apps or browsers, keeping all data on the private server and eliminating third‑party dependencies.
Workflow
- 1. Create project directory /opt/ntfy and write compose.yaml with ntfy image, environment variables, Traefik labels, and volumes.
- 2. Run
docker compose up -dand verify container status withdocker compose psand health endpointcurl https://ntfy.YOUR_DOMAIN/v1/health. - 3. Create an admin user with
docker exec -it ntfy ntfy user add --role=admin adminand set a password. - 4. Log into the web client at https://ntfy.YOUR_DOMAIN, subscribe to a topic (e.g., serverkueche-alerts).
- 5. Configure the ntfy app on phone (Settings → Default server) and add the same topic.
- 6. Send a test message with
curl -u admin:YOUR_PASSWORD -d "Backup completed" https://ntfy.YOUR_DOMAIN/serverkueche-alerts.
Evidence
ntfy is extremely lightweight (runs easily on the smallest VPS) and the data stays with you.
Because we set deny-all, you need at least one user.
Send a message via curl. Because the server is private, you supply your credentials (-u USER:PASSWORD).
- Record date: 2026-09-22T19:15:49.111Z