github binwiederhier/ntfy v2.0.0

latest releases: v2.11.0, v2.10.0, v2.9.0...
19 months ago

This is the biggest ntfy server release I've ever done 🥳 . Lots of new and exciting features.

Brand-new features:

  • User signup/login & account sync: If enabled, users can now register to create a user account, and then login to the web app. Once logged in, topic subscriptions and user settings are stored server-side in the user account (as opposed to only in the browser storage). So far, this is implemented only in the web app only. Once it's in the Android/iOS app, you can easily keep your account in sync. Relevant config options are enable-signup and enable-login.
  • Topic reservations 🎉: If enabled, users can now reserve topics and restrict access to other users. Once this is fully rolled out, you may reserve ntfy.sh/philbackups and define access so that only you can publish/subscribe to the topic. Reservations let you claim ownership of a topic, and you can define access permissions for others as deny-all (only you have full access), read-only (you can publish/subscribe, others can subscribe), write-only (you can publish/subscribe, others can publish), read-write (everyone can publish/subscribe, but you remain the owner). Topic reservations can be configured in the web app if enable-reservations is enabled, and only if the user has a tier that supports reservations.
  • Access tokens: It is now possible to create user access tokens for a user account. Access tokens are useful to avoid having to paste your password to various applications or scripts. For instance, you may want to use a dedicated token to publish from your backup host, and one from your home automation system. Tokens can be configured in the web app, or via the ntfy token command. See creating tokens, and publishing using tokens.
  • Structured logging: I've redone a lot of the logging to make it more structured, and to make it easier to debug and troubleshoot. Logs can now be written to a file, and as JSON (if configured). Each log event carries context fields that you can filter and search on using tools like jq. On top of that, you can override the log level if certain fields match. For instance, you can say user_name=phil -> debug to log everything related to a certain user with debug level. See logging & debugging.
  • Tiers: You can now define and associate usage tiers to users. Tiers can be used to grant users higher limits, such as daily message limits, attachment size, or make it possible for users to reserve topics. You could, for instance, have a tier Standard that allows 500 messages/day, 15 MB attachments and 5 allowed topic reservations, and another tier Friends & Family with much higher limits. For ntfy.sh, I'll mostly use these tiers to facilitate paid plans (see below). Tiers can be configured via the ntfy tier ... command. See tiers.
  • Paid tiers: Starting very soon, I will be offering paid tiers for ntfy.sh on top of the free service. You'll be able to subscribe to tiers with higher rate limits (more daily messages, bigger attachments) and topic reservations. Paid tiers are facilitated by integrating Stripe as a payment provider. See payments for details.

ntfy is forever open source!
Yes, I will be offering some paid plans. But you don't need to panic! I won't be taking any features away, and everything will remain forever open source, so you can self-host if you like. Similar to the donations via GitHub Sponsors and Liberapay, paid plans will help pay for the service and keep me motivated to keep going. It'll only make ntfy better.

Special thanks:

A big Thank-you goes to everyone who tested the user account and payments work. I very much appreciate all the feedback,
suggestions, and bug reports. Thank you, @nwithan8, @deadcade, @xenrox, @cmeis, @wunter8, and the others who I forgot.

Don't miss a new ntfy release

NewReleases is sending notifications on new releases.