Skip to content

Releases: binwiederhier/ntfy

v2.3.1

31 Mar 01:26
Compare
Choose a tag to compare

Changelog

v2.3.0

30 Mar 01:32
Compare
Choose a tag to compare

This release primarily fixes an issue with delayed messages, and it adds support for Go's profiler (if enabled), which will allow investigating usage spikes in more detail. There will likely be a follow-up release this week to fix the actual spikes caused by iOS devices.

Features:

  • ntfy now supports Go's pprof profiler, if enabled (relates to #677)

Bug fixes + maintenance:

  • Fix delayed message sending from authenticated users (#679)
  • Fixed plural for Polish and other translations (#678, thanks to @bmoczulski)

v2.2.0

18 Mar 17:46
Compare
Choose a tag to compare

With this release, ntfy is now able to expose metrics via a /metrics endpoint for Prometheus, if enabled. The endpoint exposes about 20 different counters and gauges, from the number of published messages and emails, to active subscribers, visitors and topics. If you'd like more metrics, pop in the Discord/Matrix or file an issue on GitHub.

On top of this, you can now use access tokens in the ntfy CLI (defined in the client.yml file), fixed a bug in ntfy subscribe, removed the dependency on Google Fonts, and more.

🔥 Reminder: Purchase one of three ntfy Pro plans for 50% off for a limited time (if you use promo code MYTOPIC). ntfy Pro gives you higher rate limits and lets you reserve topic names. Buy through web app.

❤️ If you don't need ntfy Pro, please consider sponsoring ntfy via GitHub Sponsors and Liberapay. ntfy will stay open source forever.

Features:

Bug fixes + maintenance:

  • ntfy sub --poll --from-config will now include authentication headers from client.yml (if applicable) (#658, thanks to @wunter8)
  • Docs: Removed dependency on Google Fonts in docs (#554, thanks to @bt90 for reporting, and @ozskywalker for implementing)
  • Increase allowed auth failure attempts per IP address to 30 (no ticket)
  • Web app: Increase maximum incremental backoff retry interval to 2 minutes (no ticket)

Documentation:

  • Make query parameter description more clear (#630, thanks to @bbaa-bbaa for reporting, and to @wunter8 for a fix)

v2.1.2

04 Mar 22:14
Compare
Choose a tag to compare

This is a hotfix release, mostly to combat the ridiculous amount of Matrix requests with invalid/dead pushkeys, and the corresponding HTTP 507 responses the ntfy.sh server is sending out. We're up to >600k HTTP 507 responses per day 🤦. This release solves this issue by rejecting Matrix pushkeys, if nobody has subscribed to the corresponding topic for 12 hours.

The release furthermore reverts the default rate limiting behavior for UnifiedPush to be publisher-based, and introduces a flag to enable subscriber-based rate limiting for high volume servers.

Features:

  • Support SMTP servers without auth (#645, thanks to @sharknoon for reporting)

Bug fixes + maintenance:

Additional languages:

v2.1.1

01 Mar 17:04
Compare
Choose a tag to compare

This is a tiny release with a few bug fixes, but it's big for me personally. After almost three months of work,
today I am finally launching the paid plans on ntfy.sh 🥳 🎉.

You are now able to purchase one of three plans that'll give you higher rate limits (messages, emails, attachment sizes, ...),
as well as the ability to reserve topic names for your personal use, while at the same time supporting me and the
ntfy open source project ❤️. You can check out the pricing, and purchase plans through the web app (use
promo code MYTOPIC for a 50% discount, limited time only).

And as I've said many times: Do not worry. ntfy will always stay open source, and that includes all features. There
are no closed-source features. So if you'd like to run your own server, you can!

Bug fixes + maintenance:

  • Fix panic when using Firebase without users (#641, thanks to u/heavybell for reporting)
  • Remove health check from Dockerfile and document it (#635, thanks to @Andersbiha)
  • Upgrade dialog: Disable submit button for free tier (no ticket)
  • Allow multiple log-level-overrides on the same field (no ticket)
  • Actually remove ntfy publish --env-topic flag (as per deprecations, no ticket)
  • Added billing-contact config option (no ticket)

v2.1.0

26 Feb 02:37
Compare
Choose a tag to compare

This release changes the way UnifiedPush (UP) topics are rate limited from publisher-based rate limiting to subscriber-based rate limiting. This allows UP application servers to send higher volumes, since the subscribers carry the rate limits. However, it also means that UP clients have to subscribe to a topic first before they are allowed to publish. If they do no, clients will receive an HTTP 507 response from the server.

We also fixed another issue with UnifiedPush: Some Mastodon servers were sending unsupported Authorization headers, which ntfy rejected with an HTTP 401. We now ignore unsupported header values.

As of this release, ntfy also supports sending emails to protected topics, and it ships code to support annual billing cycles (not live yet).

As part of this release, I also enabled sign-up and login (free accounts only), and I also started reducing the rate limits for anonymous & free users a bit. With the next release and the launch of the paid plan, I'll reduce the limits a bit more. For 90% of users, you should not feel the difference.

Features:

  • UnifiedPush: Subscriber-based rate limiting for up* topics (#584/#609/#633, thanks to @karmanyaahm)
  • Support for publishing to protected topics via email with access tokens (#612, thanks to @tamcore)
  • Support for base64-encoded and nested multipart emails (#610, thanks to @Robert-litts)
  • Payments: Add support for annual billing intervals (no ticket)

Bug fixes + maintenance:

  • Web: Do not disable "Reserve topic" checkbox for admins (no ticket, thanks to @xenrox for reporting)
  • UnifiedPush: Treat non-Basic/Bearer Authorization header like header was not sent (#629, thanks to @Boebbele and @S1m for reporting)

Documentation:

Additional languages:

v2.0.1

18 Feb 03:00
Compare
Choose a tag to compare

This is a quick bugfix release to address a panic that happens when attachment-cache-dir is not set.

Bug fixes + maintenance:

  • Avoid panic in manager when attachment-cache-dir is not set (#617, thanks to @ksurl)
  • Ensure that calls to standard logger log.Println also output JSON (no ticket)

v2.0.0

16 Feb 19:34
Compare
Choose a tag to compare

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.

v1.31.0

15 Feb 03:14
Compare
Choose a tag to compare

This is a tiny release before the really big release, and also the last before the big v2.0.0. The most interesting things in this release are the new preliminary health endpoint to allow monitoring in K8s (and others), and the removal of upx binary packing (which was causing erroneous virus flagging). Aside from that, the go-smtp library did a breaking-change upgrade, which required some work to get working again.

Features:

  • Preliminary /v1/health API endpoint for service monitoring (no ticket)
  • Add basic health check to Dockerfile (#555, thanks to @bt90)

Bug fixes + maintenance:

  • Fix chown issues with RHEL-like based systems (#566/#565, thanks to @danieldemus)
  • Removed upx (binary packing) for all builds due to false virus warnings (#576, thanks to @shawnhwei for reporting)
  • Upgraded go-smtp library and tests to v0.16.0 (#569)

Documentation:

Additional languages:

v1.30.1

23 Dec 14:44
Compare
Choose a tag to compare

This is a special holiday edition version of ntfy, with all sorts of holiday fun and games, and hidden quests.
Nahh, just kidding. This release is an intermediate release mainly to eliminate warnings in the logs, so I can
roll out the TLSv1.3, HTTP/2 and Unix mode changes on ntfy.sh (see #552).

Features:

Bug fixes + maintenance:

  • Remove --env-topic option from ntfy publish as per deprecation (no ticket)
  • Prepared statements for message cache writes (#542, thanks to @nicois)
  • Do not warn about invalid IP address when behind proxy in unix socket mode (relates to #552)