
Self-hosting ntfy the easy way
Yulei Chenntfy (pronounced "notify") is a simple, open-source push notification service based on HTTP. You can send notifications to your phone or desktop from any script, cron job, or application using a simple PUT/POST request. The hosted version at ntfy.sh is free for basic use, but comes with rate limits and no control over your data. Self-hosting removes those limits and keeps your notifications private.
Sliplane is a managed container platform that makes self-hosting painless. With one-click deployment, you can get ntfy up and running in minutes - no server setup, no reverse proxy config, no infrastructure to maintain.
Prerequisites
Before deploying, ensure you have a Sliplane account (free trial available).
Quick start
Sliplane provides one-click deployment with presets.
- Click the deploy button above
- Select a project
- Select a server (If you just signed up you get a 48-hour free trial server)
- Click Deploy!
About the preset
The one-click deploy above uses Sliplane's ntfy preset. Here's what it includes:
- The official
binwiederhier/ntfyimage (v2.24.0) - The
servecommand to start the ntfy server - Two persistent volumes: one for the message cache (
/var/cache/ntfy) and one for the auth database (/var/lib/ntfy) NTFY_BEHIND_PROXYset totrueso ntfy works correctly behind Sliplane's reverse proxy- Signup and login enabled by default
- A 24-hour message cache duration
Next steps
Once ntfy is running on Sliplane, access it using the domain Sliplane provided (e.g. ntfy-xxxx.sliplane.app). You'll see the ntfy web UI where you can subscribe to topics and send test notifications.
Sending your first notification
You can send a notification from any terminal:
curl -d "Hello from ntfy!" https://ntfy-xxxx.sliplane.app/mytopic
Replace ntfy-xxxx.sliplane.app with your actual Sliplane domain. To receive notifications on your phone, install the ntfy Android app or ntfy iOS app and subscribe to the same topic.
Setting up access control
By default, the preset allows read-write access to all topics for everyone. To restrict access, you can change the NTFY_AUTH_DEFAULT_ACCESS environment variable to deny-all and then create user accounts via the ntfy CLI inside the container.
Environment variables you might want to customize
| Variable | Default | Description |
|---|---|---|
NTFY_AUTH_DEFAULT_ACCESS | read-write | Default access for unauthenticated users (read-write, read-only, write-only, deny-all) |
NTFY_CACHE_DURATION | 24h | How long messages are cached |
NTFY_ATTACHMENT_FILE_SIZE_LIMIT | 10M | Max size per attachment |
NTFY_ATTACHMENT_TOTAL_SIZE_LIMIT | 1G | Total attachment storage limit |
NTFY_VISITOR_MESSAGE_DAILY_LIMIT | 100 | Max messages per visitor per day |
NTFY_ENABLE_SIGNUP | true | Allow users to sign up via the web UI |
NTFY_UPSTREAM_BASE_URL | https://ntfy.sh | Upstream server for push notifications on iOS |
Logging
ntfy logs to stdout by default, which works well with Sliplane's built-in log viewer. For general Docker log tips, check out our post on how to use Docker logs.
Troubleshooting
If ntfy doesn't start, check the logs in the Sliplane dashboard. Common issues:
- Web push not working: Web push requires additional setup with VAPID keys. Set
NTFY_WEB_PUSH_PUBLIC_KEY,NTFY_WEB_PUSH_PRIVATE_KEY, andNTFY_WEB_PUSH_EMAIL_ADDRESSenvironment variables. You can generate VAPID keys usingnpx web-push generate-vapid-keys. - iOS notifications not arriving: iOS push notifications require the
NTFY_UPSTREAM_BASE_URLto be set tohttps://ntfy.sh(the default), since Apple Push Notification Service (APNs) is routed through the ntfy.sh relay.
Cost comparison
You can also self-host ntfy with other cloud providers. Here is a pricing comparison for the most common ones:
FAQ
What can I use ntfy for?
ntfy is great for any scenario where you need push notifications. Common use cases include server monitoring alerts, CI/CD pipeline notifications, n8n workflow triggers, cron job status updates, IoT device alerts, and home automation notifications. Anything that can make an HTTP request can send notifications through ntfy.
Can I use ntfy with other self-hosted tools?
Yes! ntfy integrates with many popular tools. Uptime Kuma supports ntfy as a notification provider, and automation platforms like n8n and Activepieces can send HTTP requests to your ntfy instance. You can also use it with Grafana, Prometheus Alertmanager, and many other monitoring tools.
How do I update ntfy?
Change the image tag in your service settings on Sliplane and redeploy. Check Docker Hub for the latest stable version.
How do I set up email notifications?
ntfy can forward notifications via email. Set the SMTP environment variables (NTFY_SMTP_SENDER_ADDR, NTFY_SMTP_SENDER_USER, NTFY_SMTP_SENDER_PASS, NTFY_SMTP_SENDER_FROM) to your mail server details and redeploy. After that, you can use the Email header when publishing messages to have them forwarded to an email address.
Is ntfy secure for sensitive notifications?
ntfy supports access control with user accounts and per-topic permissions. When self-hosted on Sliplane, your instance runs on a dedicated server with HTTPS enabled by default. For sensitive data, set NTFY_AUTH_DEFAULT_ACCESS to deny-all and create specific user accounts with granular topic permissions.