Hi I'm Phil π, I'm a software engineer, and I maintain an open source push notification tool called ntfy. I'm also German π©πͺ, and a big fan of π¬π§ & πΊπΈ, and a dad of two π¦π§
The Changelog podcast interviewed me about ntfy
This week Jerod goes solo with Philipp Heckel, creator of ntfy, to discuss this simple HTTP-based service that lets you send notifications to your phone or desktop via scripts from any computer. They discuss why he built it, how he built it, and what his plans are for the future of this beloved side...
--message-expiry-duration
is an option that you can pass when creating a new tier (in your selfhosted instance). It is equivalent to the cache-duration
for users publishing in that tier.
For instance, if you are a ntfy Pro user, your messages are cached much longer than the normal 12h (see https://ntfy.sh/v1/tiers).
The naming is a little odd. I think cache-duration
should probably be called something else.
Go to "http://ntfy.example.com/mytopic/json?poll=1"
With your selfhosted URL and your topic filled in. See what you get back. You can also enable debugging to see if there any clues in the logs, both Android or the server.
Can you elaborate what you mean by "it is asking"? Are you using the Android app or iOS app? Which screen? Can you provide a step by step of what you're doing, or a screenshot?
It's probably easy as pie to implement. Feel free to open a ticket on GitHub.
Got it. Yeah no that's not supported. I have thought about adding that many times, but nobody's asked for it so far.
I'd probably call them extras
though or something, so it'd be:
{
"topic": "1234",
"message": "foo",
"title": "bar",
"extras": {
"customField": "baz"
}
}
Just try it out. I make no guarantees for odd setups like that though. :-)
It is not possible to log to both. I'm sure there is some Unix trick to do both, but I don't know.
Can you make an example? Like, you want to just send custom fields when you publish the message and then pass it along to where?
Thanks you for considering a donation.
Open Collective does not accept single-maintainer projects. I tried to open an account and had an email exchange with a person there, and they told me that I'd need a second owner for the account.
I can dig up the exact wording, but there's sadly not much I can do.
That .... actually looks and feels pretty slick. Very neat UI.
Great writeup thank you. May I just say that tmyour original plan was both ambitious and a little insane. And even the current cost and infrastructure is bonkers IMHO.
I do hope you're getting donations to help with the cost. Good luck.
My instance is on the other end of the spectrum: I pay $6/month for it on digitalocean. It has 1G of RAM. It crashes every now and then, likely because of the RAM and OOM killer. But it's only for me and a few ntfy fans, so it's quite different.
I do cover the costs yes, through donations and the paid plans.
It's definitely fun to do some things, but others are daunting indeed. I do, however, learn a lot. I have learned a lot that I was able to reuse elsewhere. All that is priceless.
Thanks. I don't work on it full time, no. It's a side gig project I've been doing for a year and a half. I recently added paid plans to get a little side income, but it's not really taken off. Likely because the free tier is too generous hehe.
Use ntfy.sh. It's open source and has a free server.
Disclaimer: I made it ;-)
You can type reset
to fix your terminal if it gets messed up like that.
In case you're wondering, yes, I was notified about this post via the script π
Notify via ntfy on new Lemmy posts
Lemmy doesn't support notifications of all new posts for a certain community, so I [1] wrote a little script to send me a ntfy notification for each new post in the ntfy community. Here it is:
https://gist.github.com/binwiederhier/70f13b7c7338a2b75e15438b5567a6d6
[1] When I say "I", I really mean 99% ChatGPT. But hey, I made it prettier and refined it a little at least: https://chat.openai.com/share/7703dbe5-6801-4d5b-8d56-c3f18ca3ac4a
Here ya go. ChatGPT did all the hard work: https://chat.openai.com/share/7703dbe5-6801-4d5b-8d56-c3f18ca3ac4a
Edit: here's a manually refined version: https://gist.github.com/binwiederhier/70f13b7c7338a2b75e15438b5567a6d6
That's what saving the IDs is for right? It's easy enough to do in a bash script I think. I'll post it here later, assuming I get it to work.
Oh that's a good idea. Any reader suggestions? I have thought about trying RSS again for a while. Maybe this is a good enough reason.
Thanks dude. I'm going to try the curl route. What do you mean by it sends you every post? Isn't that what I want?
How to notify on every new post for a specific community?
Is it possible for Lemmy to send me a notification whenever somebody submits a new post to a specific community (one that I own)?
I started a project-specific community [email protected] that's supposed to be a support forum, and I have missed a few posts for many hours because there are no notifications.
I'd be ok too if there was a simple API and I'd have to write a small script, but it'd be nicer if it was built-in
Guide: Hide your Lemmy instance from search engines
Due to the nature of the default robots.txt and the meta tags in Lemmy, search engines will index even non-local communities. This leads to results that are undesirable, such as unrelated/undesirable content being associated with your instance.
As of today, lemmy-ui does not allow hiding non-local (or any) communities from Google and other search engines. If you, like me, do not want your instance to be associated with other content, you can add a custom robots.txt and response headers to avoid indexing.
In nginx, simply add this: ```
Disallow all search engines
location / { ... add_header X-Robots-Tag noindex; }
location = /robots.txt { add_header Content-Type text/plain; return 200 "User-agent: *\nDisallow: /\n"; } ```
Here's a commit in my fork of the lemmy-ansible playbook. And here's a corresponding issue I opened in lemmy-ui.
I hope this helps someone :-)
ntfy release π - Now with Web Push and a progressive web app (hello iOS friends β€οΈ), and with dark mode for the web app! ntfy lets you send push notifications to your phone via a simple REST API, and
cross-posted from: https://discuss.ntfy.sh/post/30818
> Hello friends π, it's that time again. A new ntfy release has landed. This one is pretty cool!
>
> For those who don't know, ntfy is a a tool that lets you send push notifications to your phone from any script or server using a simple HTTP PUT/POST requests. It's 100% open source and self-hostable, and has an Android app and a web app. You can use ntfy like this (more in the docs). This will send a notification to your phone:
>
> > curl -d "Backup on $(hostname) complete" ntfy.sh/mytopic >
>
> I host free and open version on ntfy.sh, but you can host your own of course.
>
> π₯ What's new? With this release, the ntfy web app now contains a progressive web app (PWA) with Web Push support, which means you'll be able to install the ntfy web app on your desktop or phone similar to a native app (even on iOS! π₯³). Installing the PWA gives ntfy web its own launcher, a standalone window, push notifications, and an app badge with the unread notification count. Note that this needs to be configured for selfhosted servers!
>
> !
>
> !
>
> On top of that, this release also brings dark mode π§π to the web app.
>
> π A huge thanks for this release goes to @nimbleghost, for basically implementing the Web Push / PWA and dark mode feature by himself. I'm really grateful for your contributions.
>
> β€οΈ If you like ntfy, please consider sponsoring us via GitHub Sponsors or Liberapay, or buying a paid plan via the web app. Contrary to "popular" belief, I am not swimming in money due to the paid plans. π¬
>
> Detailed release notes: https://docs.ntfy.sh/releases/
>
> Other links:
>
> - ntfy website: https://ntfy.sh/
> - ntfy web app: https://ntfy.sh/app
> - GitHub (server): https://github.com/binwiederhier/ntfy
> - GitHub (Android): https://github.com/binwiederhier/ntfy-android
> - Google Play: https://play.google.com/store/apps/details?id=io.heckel.ntfy
> - F-Droid: https://f-droid.org/en/packages/io.heckel.ntfy/
> - Discord: https://discord.com/invite/cT7ECsZj9w
> - Matrix: https://matrix.to/#/#ntfy:matrix.org
> - Lemmy (brand new π₯): https://discuss.ntfy.sh/ (register on other instances please)
>
> Public topics:
> - https://ntfy.sh/stats (daily stats scraped from nginx logs)
> - https://ntfy.sh/announcements (release announcements)
ntfy release π - Now with Web Push and a progressive web app (hello iOS friends β€οΈ), and with dark mode for the web app! ntfy lets you send push notifications to your phone via a simple REST API, and
Hello friends π, it's that time again. A new ntfy release has landed. This one is pretty cool!
For those who don't know, ntfy is a a tool that lets you send push notifications to your phone from any script or server using a simple HTTP PUT/POST requests. It's 100% open source and self-hostable, and has an Android app and a web app. You can use ntfy like this (more in the docs). This will send a notification to your phone:
curl -d "Backup on $(hostname) complete" ntfy.sh/mytopic
I host free and open version on ntfy.sh, but you can host your own of course.
π₯ What's new? With this release, the ntfy web app now contains a progressive web app (PWA) with Web Push support, which means you'll be able to install the ntfy web app on your desktop or phone similar to a native app (even on iOS! π₯³). Installing the PWA gives ntfy web its own launcher, a standalone window, push notifications, and an app badge with the unread notification count. Note that this needs to be configured for selfhosted servers!
On top of that, this release also brings dark mode π§π to the web app.
π A huge thanks for this release goes to @nimbleghost, for basically implementing the Web Push / PWA and dark mode feature by himself. I'm really grateful for your contributions.
β€οΈ If you like ntfy, please consider sponsoring us via GitHub Sponsors or Liberapay, or buying a paid plan via the web app. Contrary to "popular" belief, I am not swimming in money due to the paid plans. π¬
Detailed release notes: https://docs.ntfy.sh/releases/
Other links:
- ntfy website: https://ntfy.sh/
- ntfy web app: https://ntfy.sh/app
- GitHub (server): https://github.com/binwiederhier/ntfy
- GitHub (Android): https://github.com/binwiederhier/ntfy-android
- Google Play: https://play.google.com/store/apps/details?id=io.heckel.ntfy
- F-Droid: https://f-droid.org/en/packages/io.heckel.ntfy/
- Discord: https://discord.com/invite/cT7ECsZj9w
- Matrix: https://matrix.to/#/#ntfy:matrix.org
- Lemmy (brand new π₯): https://discuss.ntfy.sh/ (register on other instances please)
Public topics:
- https://ntfy.sh/stats (daily stats scraped from nginx logs)
- https://ntfy.sh/announcements (release announcements)
π’ ntfy Web Push / PWA: Request for testing!
cross-posted from: https://discuss.ntfy.sh/post/25279
> Hello folks, > > Request for testing: The next ntfy server release will contain a progressive web app (PWA) with Web Push support, which means you'll be able to install the ntfy web app on your desktop or phone similar to a native app (even on iOS! π₯³), and get basic push notification support (without any battery drain). > > Installing the PWA gives ntfy web its own launcher (e.g. shortcut on Windows, app on macOS, launcher shortcut on Linux, home screen icon on iOS, and launcher icon on Android), a standalone window, push notifications, and an app badge with the unread notification count. > > ! > > ! > > Testing instructions: The (hopefully) production ready version of the PWA is currently deployed on https://staging.ntfy.sh/app -- Install instructions with screenshots can be found in the docs (https://docs.ntfy.sh/subscribe/pwa/). > > Please report bugs or issues on Discord, Matrix, or Lemmy ([email protected]). PLEASE HELP TEST > > Huuuuge thanks goes to @nimbleghost for developing this entire feature top to bottom. If you throw donations (GitHub Sponsors or Liberapay) my way, I'll share them with him. He certainly deserves it for all this great work. π > > -- > If you don't know what ntfy is: ntfy (pronounce: notify) is a simple HTTP-based pub-sub notification service. You can use it to send push notifications to your phone via HTTP PUT/POST. You can selfhost it or use the hosted version on ntfy.sh >
π’ ntfy Web Push / PWA: Request for testing!
Hello folks,
Request for testing: The next ntfy server release will contain a progressive web app (PWA) with Web Push support, which means you'll be able to install the ntfy web app on your desktop or phone similar to a native app (even on iOS! π₯³), and get basic push notification support (without any battery drain).
Installing the PWA gives ntfy web its own launcher (e.g. shortcut on Windows, app on macOS, launcher shortcut on Linux, home screen icon on iOS, and launcher icon on Android), a standalone window, push notifications, and an app badge with the unread notification count.
Testing instructions: The (hopefully) production ready version of the PWA is currently deployed on https://staging.ntfy.sh/app -- Install instructions with screenshots can be found in the docs (https://docs.ntfy.sh/subscribe/pwa/).
Please report bugs or issues on Discord, Matrix, or Lemmy ([email protected]). PLEASE HELP TEST
Huuuuge thanks goes to @nimbleghost for developing this entire feature top to bottom. If you throw donations (GitHub Sponsors or Liberapay) my way, I'll share them with him. He certainly deserves it for all this great work. π
-- If you don't know what ntfy is: ntfy (pronounce: notify) is a simple HTTP-based pub-sub notification service. You can use it to send push notifications to your phone via HTTP PUT/POST. You can selfhost it or use the hosted version on ntfy.sh
If I gave you $1 million in cash to spend in 1 hour, after which the money will disappear, what would you buy?
I have asked this question to countless people (mostly in hair salons) as an alternative to small talk, and it always yields interesting results.
Rules:
- You get the money right now, right where you are. If it's 10pm and you're in the middle of nowhere, your money will still go poof at 11pm.
- As a result of the above, tell us what time it is and roughly where you are (big city, desert, small town, ...)
- You must spend the money. You cannot give it to someone to hold on to it for you for a while.
- Normal world rules apply, e.g. you cannot buy a $250k car at a dealership in 1h in cash, and you cannot buy a house in 1h either.
- Remember that getting from where you are to the place you need to go takes time. Factor that in!
Edit: I'm glad you guys had fun with this one. Feel free to post similar hypothetical questions. I kinda like these.
Edit edit: Free advertising π
--> I run and maintain an open source push notification service called ntfy, which let's you send notifications to your phone via PUT/POST, like curl -d "backup successful" ntfy.sh/mytopic
. Go check it out.
ntfy is a simple HTTP-based pub-sub notification service. It allows you to send notifications to your phone or desktop via scripts from any computer, and/or using a REST API.
Hey folks,
ntfy (pronounce: notify) is a simple HTTP-based pub-sub notification service. You can use it to send push notifications to your phone via HTTP PUT/POST.
You can use it like this (see the docs for dozens more features):
curl -d "Backup successful" ntfy.sh/mytopic
Feel free to ask anything about ntfy here or on the Discord/Matrix.
- ntfy website: https://ntfy.sh/
- ntfy web app: https://ntfy.sh/app
- ntfy docs (all the things!!): https://ntfy.sh/docs
- GitHub (server): https://github.com/binwiederhier/ntfy (β it if you like it)
- GitHub (Android): https://github.com/binwiederhier/ntfy-android
- GitHub (iOS): https://github.com/binwiederhier/ntfy-ios
- Google Play: https://play.google.com/store/apps/details?id=io.heckel.ntfy (β it if you like it)
- F-Droid: https://f-droid.org/en/packages/io.heckel.ntfy/
- Discord: https://discord.com/invite/cT7ECsZj9w
- App Store: https://apps.apple.com/us/app/ntfy/id1625396347 (β it if you like it)
- Matrix (main room): https://matrix.to/#/#ntfy:matrix.org
- Matrix (space): https://matrix.to/#/#ntfy-space:matrix.org
- Lemmy: https://discuss.ntfy.sh
If you'd like to become a sponsor, I would be humbled to accept your donation via GitHub Sponsors or Liberapay πΈπ°.
ntfy Web Push / PWA support is coming soon
Resolves #346 Resolves #199 Adds a PWA manifest, service worker, the required go server routes, and VAPID-based web push I can't test Android, but this is what it looks like on macOS and iOS:
ntfy iOS support is about to get much better. While I haven't worked on the native app in a while, the progressive web app (PWA) is going to make the web app enough to receive notifications on iOS (and others).
Almost all of the credit goes to @nimbleghost for the implementation.
Using healthchecks.io and ntfy.sh to wake you up if your services are down
cross-posted from: https://discuss.ntfy.sh/post/3200
> I use ntfy (on another instance) + healthchecks.io to wake me up at night when ntfy.sh is down (crazy inception, right?). It's the "poor man's PagerDuty" if you will. It works amazingly.
>
> Here's how I set it up:
>
> - I signed up healthchecks.io (free plan) and configured a project for "ntfy.sh" with a "ntfy" integration, i.e. publish to ntfy.example.com/<secret>
with max priority
> - I have two different hosts execute small "integration ntfy.sh tests" and only ping healthchecks.io if they succeed. If they don't healthchecks.io will publish to ntfy.example.com/<secret>
> - In the ntfy Android app, I subscribe to ntfy.example.com/<secret>
, enable "Keep alerting on highest priority", and make it override DND (do not disturb) for this topic.
>
> Now when ntfy.sh goes down, the integration tests in the cronjobs will fail, and so healthchecks.io will not be pinged, which will trigger it to publish to ntfy.example.com/<secret>
and let my phone consistently ring until I acknowledge it.
(Disclamer: I am the maintainer of ntfy. Hope posting this is fine. Happy to answer questions; I also have a brand new ntfy community, feel free to join)
Using healthchecks.io and ntfy.sh to wake you up if your services are down
I use ntfy (on another instance) + healthchecks.io to wake me up at night when ntfy.sh is down (crazy inception, right?). It's the "poor man's PagerDuty" if you will. It works amazingly.
Here's how I set it up:
- I signed up healthchecks.io (free plan) and configured a project for "ntfy.sh" with a "ntfy" integration, i.e. publish to
ntfy.example.com/<secret>
with max priority - I have two different hosts execute small "integration ntfy.sh tests" and only ping healthchecks.io if they succeed. If they don't healthchecks.io will publish to
ntfy.example.com/<secret>
- In the ntfy Android app, I subscribe to
ntfy.example.com/<secret>
, enable "Keep alerting on highest priority", and make it override DND (do not disturb) for this topic.
Now when ntfy.sh goes down, the integration tests in the cronjobs will fail, and so healthchecks.io will not be pinged, which will trigger it to publish to ntfy.example.com/<secret>
and let my phone consistently ring until I acknowledge it.
r/ntfy moving to Lemmy
Hey folks, the r/selfhosted community has always been very kind to ntfy, and with recent events, I'm moving the r/ntfy subreddit to Lemmy.
https://discuss.ntfy.sh/c/ntfy
Feel free to join and/or ask questions about ntfy.
Welcome to the new ntfy discussion board
Welcome to the ntfy community β€οΈ
ntfy.sh (pronounced notify) is a simple HTTP-based pub-sub notification service. You can use it to send push notifications to your phone via HTTP PUT/POST. Check out the docs for more info.
Feel free to ask anything about ntfy here or on the Discord or Matrix.
How do I sign-up on discuss.ntfy.sh?
Registration to this Lemmy instance are disabled (for now), because managing the spam accounts and such is a huge hassle. You can sign-up on any of the other instances (e.g. lemm.ee, discuss.tchncs.de, sopuli.xyz, or others), and then subscribe to this community or post here.
Donations & sponsorships
If you like ntfy, please consider sponsoring me via GitHub Sponsors or Liberapay πΈπ°.
Links
- ntfy website: https://ntfy.sh/
- ntfy web app: https://ntfy.sh/app
- ntfy docs (all the things!!): https://ntfy.sh/docs
- GitHub (server): https://github.com/binwiederhier/ntfy (β it if you like it)
- GitHub (Android): https://github.com/binwiederhier/ntfy-android
- GitHub (iOS): https://github.com/binwiederhier/ntfy-ios
- Google Play: https://play.google.com/store/apps/details?id=io.heckel.ntfy (β it if you like it)
- F-Droid: https://f-droid.org/en/packages/io.heckel.ntfy/
- Discord: https://discord.com/invite/cT7ECsZj9w
- App Store: https://apps.apple.com/us/app/ntfy/id1625396347 (β it if you like it)
- Matrix (main room): https://matrix.to/#/#ntfy:matrix.org
- Matrix (space): https://matrix.to/#/#ntfy-space:matrix.org