Monitor your infrastructure.

ntfy

Self-hosted push notifications — send alerts from scripts, CI/CD and monitoring tools with a plain HTTP PUT/POST. Under 30 MB RAM, no database.

512 MB RAM 1 vCPU Port 8080 Available

Tech stack

DockerGoSQLite
Minimum RAM512 MB
Minimum CPU1 vCPU
Default port8080
Compatible OSChoice of Linux distributions

ntfy (pronounced "notify") is an open-source HTTP-based pub/sub notification service (~32 k GitHub stars, Apache 2.0, v2.26.3). You publish a message to a topic with a plain HTTP PUT or POST request — `curl -d "Build passed" http://your-vps/builds` — and any subscriber (ntfy mobile app, web app, or any HTTP client) receives the notification instantly.

Self-hosting ntfy on a ServOrbit VPS gives you private, unlimited topics with no rate limits, no account creation and no monthly fee. The single Go binary runs in a single Docker container using under 30 MB of RAM with a SQLite message cache — no PostgreSQL, no Redis, no complex setup. Access control, user accounts and token auth can be added incrementally via the ntfy CLI, or kept open for a private VPS where only your scripts connect.

ntfy integrates with every monitoring and automation tool that can make HTTP calls: Uptime Kuma, Beszel, Changedetection.io, Grafana, Home Assistant, GitHub Actions, GitLab CI, AWX, cron jobs, Bash scripts, Python, Go — anywhere you can run curl. A multi-platform mobile app (Android + iOS) and a web UI let you subscribe to any topic and receive push notifications in real time, whether the VPS is on a private network or a public IP.

Key features

Send a notification with a plain HTTP PUT/POST — `curl -d "Hello" http://your-vps/your-topic` — zero SDK, zero library dependency.
Receive notifications on Android, iOS, desktop browser and the ntfy web UI — all subscribe to the same topic via WebSocket or SSE.
Notification actions — buttons in the push notification that trigger HTTP callbacks, open URLs or run commands on the subscriber device.
Scheduled notifications — delayed delivery (e.g., `X-Delay: 30min`) to schedule reminders from scripts.
Message priority levels (min / low / default / high / urgent) with DND bypass on mobile for urgent alerts.
Attachments — include images or files up to 15 MB via the `X-Attach` header or multipart upload.
Access control — add usernames, passwords and per-topic ACLs via `ntfy user` and `ntfy access` CLI; publish-only or subscribe-only tokens.
Under 30 MB RAM, SQLite, single container — the lightest self-hosted push notification server in its class.

When to use this solution?

1

CI/CD pipeline alerts

Send a notification when a build passes or fails: `curl -d "Build #$BUILD_NUMBER failed" http://vps:8080/builds`. Works natively in GitHub Actions, GitLab CI, AWX, Jenkins — any CI that can run curl. No Slack workspace, no email thread, instant push to your phone the moment the pipeline finishes.

2

Server monitoring hooks

Uptime Kuma, Beszel, Changedetection.io and Grafana all support ntfy as a notification channel. Point them at your self-hosted ntfy instance and every monitoring alert — service down, disk full, price changed — goes to the same ntfy app on your phone in real time. One notification server, every monitoring tool.

3

Cron job success/failure notifications

Wrap long-running cron scripts: `0 3 * * * /usr/local/bin/backup.sh && curl -d "Backup OK" http://vps/nightly-backup`. Silence means the backup failed; a push notification confirms it ran. Zero cron-monitoring SaaS required — a single curl call at the end of each job is enough.

Deploy ntfy on your VPS

Guide optimized for ServOrbit Cloud VPS.

01

Order a ServOrbit VPS

Any plan with 512 MB RAM is more than sufficient — ntfy idles under 30 MB RAM and has no GPU or heavy dependency requirements. Co-locate it alongside Beszel or Uptime Kuma on any existing VPS to build a complete self-hosted alerting stack at no extra cost.

02

One-click deploy from the marketplace

Open your ServOrbit dashboard → Marketplace → Monitoring → ntfy → Deploy. Docker pulls binwiederhier/ntfy:latest, starts the ntfy server on port 8080, and the web UI is accessible within 5 seconds. No configuration file required to get started.

03

Send your first notification

From any device with curl: curl -d "Hello from my VPS" http://your-vps-ip:8080/my-topic. Open the ntfy web UI in your browser at the same address, navigate to the my-topic channel and you will see your message appear live. Topics are created on first publish — no prior setup needed.

04

Subscribe on your phone

Install the ntfy app (Android: F-Droid or Google Play; iOS: App Store). Tap the + button, enter your server URL and topic name. You will receive push notifications the moment anything publishes to that topic. Topics can be any string — use names like ci-builds, server-alerts or cron-jobs to organise by source.

05

Connect your monitoring tools

In Uptime Kuma: Settings → Notifications → ntfy → set Server URL and Topic. Repeat for Beszel, Changedetection.io and Grafana — each points to the same ntfy server with a distinct topic name. All your monitoring services now send to one self-hosted notification hub, routed to your phone in real time.

Frequently asked questions

ntfy is an open-source HTTP pub/sub notification service — you publish a message to a topic with a plain HTTP PUT or POST, and any subscriber receives it as a push notification instantly. Self-hosting on a ServOrbit VPS gives you unlimited private topics with no rate limits, no third-party account and no monthly fee. You own the notification channel completely.

Monitor your infrastructure.

Activate ntfy on your infrastructure.

Dedicated Cloud VPS — IPv4 included, European datacenter, support included. Your data never leaves your server.

Recommended configuration: 512 MB RAM · 1 vCPU

Need help?

Browse our help center and FAQ, or write to our team — support in French, English and Arabic.