Update binwiederhier/ntfy Docker tag to v2 #103

Open
renovate wants to merge 1 commits from renovate/binwiederhier-ntfy-2.x into main
Collaborator

This PR contains the following updates:

Package Update Change
binwiederhier/ntfy (source) major v1.28.0 -> v2.15.0

Release Notes

binwiederhier/ntfy (binwiederhier/ntfy)

v2.15.0

Compare Source

This release adds a require-login flag to topics, which forces users to log in before they can use the web app. This is useful for self-hosters and will obviously not be enabled on ntfy.sh.

Features:

Bug fixes + maintenance:

v2.14.0

Compare Source

This release adds support for declarative users, declarative ACL entries and declarative tokens. This allows you to define users, ACL entries and tokens in the config file, which is useful for static deployments or deployments that use a configuration management system.

It also adds support for pre-defined templates and custom templates for enhanced JSON webhook support, as well as advanced template functions based on the Sprig functions.

❤️ If you like ntfy, please consider sponsoring me via GitHub Sponsors, Liberapay, Bitcoin (1626wjrw3uWk9adyjCfYwafw4sQWujyjn8), or by buying a paid plan via the web app. ntfy
will always remain open source.

Features:

v2.13.0

Compare Source

This is a relatively small release, mainly to support IPv6 and to add more sophisticated
proxy header support. Quick reminder that if you like ntfy, please consider sponsoring us
via GitHub Sponsors and Liberapay, or buying a paid plan via the web app.
ntfy will always remain open source.

Features:

Languages

  • Update new languages from Weblate. Thanks to all the contributors!
  • Added Estonian (Esti), Galician (Galego), Romanian (Română), Slovak (Slovenčina) as new languages to the web app

v2.12.0

Compare Source

This is mainly a maintenance release that updates dependencies, though since it's been over a year, there are a few new features and bug fixes as well.

Thanks to everyone who contributed to this release, and special thanks to @​wunter8 for his continued user support in Discord/Matrix/GitHub! You rock, man!

Features:

Bug fixes + maintenance:

  • Security updates for dependencies and Docker images (#​1341)
  • Upgrade to Vite 6 (#​1342, thanks Dependabot)
  • Fix iOS delivery issues for read-protected topics (#​1207, thanks a lot to @​barart!)
  • Add Date header to outgoing emails to avoid rejection (#​1141, thanks to @​pcouy)
  • Fix IP address parsing when behind a proxy (#​1266, thanks to @​mmatuska)
  • Make sure UnifiedPush messages are not treated as attachments (#​1312, thanks to @​vkrause)
  • Add OCI image version to Docker image (#​1307, thanks to @​jlssmt)
  • WebSocket returning incorrect HTTP error code (#​1338 / #​1337, thanks to @​wunter8 for debugging and implementing)
  • Make Markdown in the web app scrollable horizontally (#​1262, thanks to @​rake5k for fixing)
  • Make sure WebPush subscription topics are actually deleted (no ticket)
  • Increase the number of access tokens per user to 60 (#​1308)
  • Allow specifying cache and firebase via JSON publishing (#​1119/#​1123, thanks to @​stendler)

Documentation:

Languages

  • Update new languages from Weblate. Thanks to all the contributors!
  • Added Tamil (தமிழ்) as a new language to the web app

v2.11.0

Compare Source

This is a tiny release that fixes a database index issue that caused performance issues on ntfy.sh. It also fixes a bug in the rate visitor logic that caused rate visitors to be assigned to seemingly random topics. Nothing major this time.

❤️ Quick reminder that if you like ntfy, please consider sponsoring us via GitHub Sponsors and Liberapay, or buying a paid plan via the web app. ntfy will always remain open source.

Bug fixes + maintenance:

  • Re-add database index idx_topic to the messages table to fix performance issues on ntfy.sh (no ticket, big thanks to @​tcaputi for finding this issue)
  • Do not set rate visitor for non-eligible topics (no ticket)
  • Do not cache config.js (#​1098, thanks to @​wunter8)

v2.10.0

Compare Source

This release adds support for message templating: in the ntfy server, which allows you to include a message and/or title template that will be filled with values from a JSON body (e.g. curl -gd '{"alert":"Disk space low"}' "ntfy.sh/mytopic?tpl=1&m={{.alert}}"). This is great for services that let you specify a webhook URL but do not let you change the webhook body (such as GitHub, or Grafana).

Features:

That's all. Short and sweet.

If you like ntfy, please consider donating via GitHub Sponsors, Liberapay, or by buying a ntfy Pro plan.

v2.9.0

Compare Source

A small release after a long pause (lots of day job work). This release adds for larger messages and longer message delays in scheduled delivery messages. The web app also now supports pasting images from the clipboard. Other than that, only a few bug fixes and documentation updates, and a teeny tiny breaking change 😬.

⚠️ Breaking changes:

  • The Rate-Topics header was removed due to a DoS issue (see #​1048). This only affects installations with visitor-subscriber-rate-limiting: true, which is not the default and likely very rarely used. Normally I'd never remove a feature, but this is a security issue, and likely affects almost nobody.

Features:

Bug fixes + maintenance:

  • ⚠️ Remove Rate-Topics header due to DoS security issue if visitor-subscriber-rate-limiting: true (#​1048)

Documentation:

❤️ Special thanks to @​wunter8 for always answering all the questions on Discord/Matrix!

v2.8.0

Compare Source

This release brings a handful of random bug fixes: two unrelated access control list fixes, a fix around web app crashes for languages with underscores in the language code (e.g. zh_Hant, zh_Hans, pt_BR, ...), a workaround for the Priority header (often used in Cloudflare setups), and support among others support for HTML-only emails (finally), web app crash fixes

Bug fixes + maintenance:

Additional languages:

v2.7.0

Compare Source

This release ships Markdown support for the web app (not in the Android app yet), and adds support for right-to-left languages (RTL) in the web app. It also fixes a few issues around date/time formatting, internationalization support, a CLI auth bug.

⚠️ Furthermore, it fixes a security issue around access tokens getting erroneously deleted for other users in a specific scenario. This was a denial-of-service-type security issue, since it effectively allowed a single user to deny access to all other users of a ntfy instance. Please note that while tokens were erroneously deleted, nobody but the token owner ever had access to it. Please refer to the ticket for details. Please upgrade your ntfy instance if you run a multi-user system.

Features:

⚠️ Security:

  • Fixes issue with access tokens getting deleted (#​838)

Bug fixes + maintenance:

  • Fix issues with date/time with different locales (#​700, thanks to @​nimbleghost)
  • Re-init i18n on each service worker message to avoid missing translations (#​817, thanks to @​nihalgonsalves)
  • You can now unset the default user:pass/token in client.yml for an individual subscription to remove the Authorization header (#​829, thanks to @​tomeon for reporting and to @​wunter8 for fixing)

Documentation:

v2.6.2

Compare Source

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.

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 and Liberapay, or buying a paid plan via the web app (20% off if you use promo code MYTOPIC). ntfy will always remain open source.

Features:

Bug fixes:

  • Support encoding any header as RFC 2047 (#​737, thanks to @​cfouche3005 for reporting)
  • Do not forward poll requests for UnifiedPush messages (no ticket, thanks to NoName for reporting)
  • Fix ntfy pub % segfaulting (#​760, thanks to @​clesmian for reporting)
  • Newly created access tokens are now lowercase only to fully support <topic>+<token>@&#8203;<domain> email syntax (#​773, thanks to gingervitiz for reporting)
  • The .1 release fixes a few visual issues with dark mode, and other web app updates (#​791, #​793, #​792, thanks to @​nimbleghost)
  • The .2 release fixes issues with the service worker in Firefox and adds automatic service worker updates (#​795, thanks to @​nimbleghost)

Maintenance:

Changes in tarball/zip naming:
Due to a change in GoReleaser, some of the binary release
archives now have slightly different names. My apologies if this causes issues in the downstream projects that use ntfy:

  • ntfy_v${VERSION}_windows_x86_64.zip -> ntfy_v${VERSION}_windows_amd64.zip
  • ntfy_v${VERSION}_linux_x86_64.tar.gz -> ntfy_v${VERSION}_linux_amd64.tar.gz
  • ntfy_v${VERSION}_macOS_all.tar.gz -> ntfy_v${VERSION}_darwin_all.tar.gz

v2.6.1

Compare Source

(⚠️ This release is superseded by v2.6.2)

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.

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 and Liberapay, or buying a paid plan via the web app (20% off if you use promo code MYTOPIC). ntfy will always remain open source.

Features:

Bug fixes:

  • Support encoding any header as RFC 2047 (#​737, thanks to @​cfouche3005 for reporting)
  • Do not forward poll requests for UnifiedPush messages (no ticket, thanks to NoName for reporting)
  • Fix ntfy pub % segfaulting (#​760, thanks to @​clesmian for reporting)
  • Newly created access tokens are now lowercase only to fully support <topic>+<token>@&#8203;<domain> email syntax (#​773, thanks to gingervitiz for reporting)
  • The .1 release fixes a few visual issues with dark mode, and other web app updates (#​791, #​793, #​792, thanks to @​nimbleghost)

v2.6.0

Compare Source

(⚠️ This release is superseded by v2.6.2)

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.

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 and Liberapay, or buying a paid plan via the web app (20% off if you use promo code MYTOPIC). ntfy will always remain open source.

Features:

Bug fixes:

  • Support encoding any header as RFC 2047 (#​737, thanks to @​cfouche3005 for reporting)
  • Do not forward poll requests for UnifiedPush messages (no ticket, thanks to NoName for reporting)
  • Fix ntfy pub % segfaulting (#​760, thanks to @​clesmian for reporting)
  • Newly created access tokens are now lowercase only to fully support <topic>+<token>@&#8203;<domain> email syntax (#​773, thanks to gingervitiz for reporting)

v2.5.0

Compare Source

This release brings a number of new features, including support for text-to-speech style phone calls, an admin API to manage users and ACL (currently in beta, and hence undocumented), and support for authorized access to upstream servers via the upstream-access-token config option.

❤️ If you like ntfy, please consider sponsoring me via GitHub Sponsors and Liberapay, or by buying a paid plan via the web app (20% off if you use promo code MYTOPIC). ntfy will always remain open source.

Features:

  • Support for text-to-speech style phone calls using the X-Call header (no ticket)
  • Admin API to manage users and ACL, v1/users + v1/users/access (intentionally undocumented as of now, #​722, thanks to @​CreativeWarlock for sponsoring this ticket)
  • Added upstream-access-token config option to allow authorized access to upstream servers (no ticket)

Bug fixes + maintenance:

v2.4.0

Compare Source

This release adds a tiny v1/stats endpoint to expose how many messages have been published, and adds suport to encode the X-Title, X-Message and X-Tags header as RFC 2047. It's a pretty small release, and mainly enables the release of the new ntfy.sh website.

❤️ If you like ntfy, please consider sponsoring me via GitHub Sponsors and Liberapay, or by buying a paid plan via the web app. ntfy will always remain open source.

Features:

  • ntfy CLI (ntfy publish and ntfy subscribe only) can now be installed via Homebrew (thanks to @​Moulick)
  • Added v1/stats endpoint to expose messages stats (no ticket)
  • Support RFC 2047 encoded headers (no ticket, honorable mention to mqttwarn and @​amotl)

Bug fixes + maintenance:

Documentation:

Additional languages:

v2.3.1

Compare Source

Changelog

v2.3.0

Compare Source

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

Compare Source

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:

v2.1.2

Compare Source

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:

Bug fixes + maintenance:

Additional languages:

v2.1.1

Compare Source

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

Compare Source

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:

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

Compare Source

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

Compare Source

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

Compare Source

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:

Documentation:

Additional languages:

v1.30.1

Compare Source

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)

v1.29.1

Compare Source

This is mostly a bugfix release to address the high load on ntfy.sh. There are now two new options that allow
synchronous batch-writing of messages to the cache. This avoids database locking, and subsequent pileups of waiting
requests.

Bug fixes:

  • High-load servers: Allow asynchronous batch-writing of messages to cache via cache-batch-* options (#​498/#​502)
  • Sender column in cache.db shows invalid IP (#​503)

Documentation:

Other things:

  • Put ntfy.sh docs on GitHub pages to reduce AWS outbound traffic cost (#​491)
  • The ntfy.sh server hardware was upgraded to a bigger box. If you'd like to help out carrying the server cost, sponsorships and donations 💸 would be very much appreciated

v1.29.0

Compare Source

This release adds the ability to add rate limit exemptions for IP ranges instead of just specific IP addresses. It also fixes a few bugs in the web app and the CLI and adds lots of new examples and install instructions.

Thanks to some love on HN, we got so many new ntfy users trying out ntfy and joining the chat rooms. Welcome to the ntfy community to all of you! We also got a ton of new sponsors and donations 💸, which is amazing. I'd like to thank all of you for believing in the project, and for helping me pay the server cost. The HN spike increased the AWS cost quite a bit.

Features:

Bug fixes + maintenance:

Documentation:

Additional translations:

Sponsorships::

Thank you to the amazing folks who decided to sponsor ntfy. Thank you for
helping carry the cost of the public server and developer licenses, and more importantly: Thank you for believing in ntfy!
You guys rock!

A list of all the sponsors can be found in the README.


Configuration

📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR has been generated by Renovate Bot.

This PR contains the following updates: | Package | Update | Change | |---|---|---| | [binwiederhier/ntfy](https://ntfy.sh/) ([source](https://github.com/binwiederhier/ntfy)) | major | `v1.28.0` -> `v2.15.0` | --- ### Release Notes <details> <summary>binwiederhier/ntfy (binwiederhier/ntfy)</summary> ### [`v2.15.0`](https://github.com/binwiederhier/ntfy/releases/tag/v2.15.0) [Compare Source](https://github.com/binwiederhier/ntfy/compare/v2.14.0...v2.15.0) This release adds a `require-login` flag to topics, which forces users to log in before they can use the web app. This is useful for self-hosters and will obviously not be enabled on ntfy.sh. **Features:** - Add `require-login` flag to redirect to login page if not logged in ([#&#8203;1434](https://github.com/binwiederhier/ntfy/pull/1434)/[#&#8203;238](https://github.com/binwiederhier/ntfy/issues/238)/[#&#8203;1329](https://github.com/binwiederhier/ntfy/pull/1329), thanks to [@&#8203;theatischbein](https://github.com/theatischbein) for implementing most of this) **Bug fixes + maintenance:** - The official ntfy.sh Debian/Ubuntu repository has moved to [archive.ntfy.sh](https://archive.ntfy.sh) ([#&#8203;1357](https://github.com/binwiederhier/ntfy/issues/1357)/[#&#8203;1401](https://github.com/binwiederhier/ntfy/issues/1401), thanks to [@&#8203;skibbipl](https://github.com/skibbipl) and [@&#8203;lduesing](https://github.com/lduesing) for reporting) - Add mutex around message cache writes to avoid `database locked` errors ([#&#8203;1397](https://github.com/binwiederhier/ntfy/pull/1397), [#&#8203;1391](https://github.com/binwiederhier/ntfy/issues/1391), thanks to [@&#8203;timofej673](https://github.com/timofej673)) - Add build tags `nopayments`, `nofirebase` and `nowebpush` to allow excluding external dependencies, useful for packaging in Debian ([#&#8203;1420](https://github.com/binwiederhier/ntfy/pull/1420), discussion in [#&#8203;1258](https://github.com/binwiederhier/ntfy/issues/1258), thanks to [@&#8203;thekhalifa](https://github.com/thekhalifa) for packaging ntfy for Debian/Ubuntu) - Make copying tokens, phone numbers, etc. possible on HTTP ([#&#8203;1432](https://github.com/binwiederhier/ntfy/pull/1432)/[#&#8203;1408](https://github.com/binwiederhier/ntfy/issues/1408)/[#&#8203;1295](https://github.com/binwiederhier/ntfy/issues/1295), thanks to [@&#8203;EdwinKM](https://github.com/EdwinKM), [@&#8203;xxl6097](https://github.com/xxl6097) for reporting) ### [`v2.14.0`](https://github.com/binwiederhier/ntfy/releases/tag/v2.14.0) [Compare Source](https://github.com/binwiederhier/ntfy/compare/v2.13.0...v2.14.0) This release adds support for [declarative users](https://docs.ntfy.sh/config/#users-via-the-config), [declarative ACL entries](https://docs.ntfy.sh/config/#acl-entries-via-the-config) and [declarative tokens](https://docs.ntfy.sh/config/#tokens-via-the-config). This allows you to define users, ACL entries and tokens in the config file, which is useful for static deployments or deployments that use a configuration management system. It also adds support for [pre-defined templates](https://docs.ntfy.sh/publish/#pre-defined-templates) and [custom templates](https://docs.ntfy.sh/publish/#custom-templates) for enhanced JSON webhook support, as well as advanced [template functions](https://docs.ntfy.sh/publish/#template-functions) based on the [Sprig](https://github.com/Masterminds/sprig) functions. ❤️ If you like ntfy, **please consider sponsoring me** via [GitHub Sponsors](https://github.com/sponsors/binwiederhier), [Liberapay](https://en.liberapay.com/ntfy/), Bitcoin (`1626wjrw3uWk9adyjCfYwafw4sQWujyjn8`), or by buying a [paid plan via the web app](https://ntfy.sh/app). ntfy will always remain open source. **Features:** - [Declarative users](https://docs.ntfy.sh/config/#users-via-the-config), [declarative ACL entries](https://docs.ntfy.sh/config/#acl-entries-via-the-config) and [declarative tokens](https://docs.ntfy.sh/config/#tokens-via-the-config) ([#&#8203;464](https://github.com/binwiederhier/ntfy/issues/464), [#&#8203;1384](https://github.com/binwiederhier/ntfy/issues/1384), [#&#8203;1413](https://github.com/binwiederhier/ntfy/issues/1413), thanks to pinpox for reporting, to [@&#8203;wunter8](https://github.com/wunter8) for reviewing and implementing parts of it) - [Pre-defined templates](https://docs.ntfy.sh/publish/#pre-defined-templates) and [custom templates](https://docs.ntfy.sh/publish/#custom-templates) for enhanced JSON webhook support ([#&#8203;1390](https://github.com/binwiederhier/ntfy/issues/1390)) - Support of advanced [template functions](https://docs.ntfy.sh/publish/#template-functions) based on the [Sprig](https://github.com/Masterminds/sprig) library ([#&#8203;1121](https://github.com/binwiederhier/ntfy/issues/1121), thanks to [@&#8203;davidatkinsondoyle](https://github.com/davidatkinsondoyle) for reporting, to [@&#8203;wunter8](https://github.com/wunter8) for implementing, and to the Sprig team for their work) ### [`v2.13.0`](https://github.com/binwiederhier/ntfy/releases/tag/v2.13.0) [Compare Source](https://github.com/binwiederhier/ntfy/compare/v2.12.0...v2.13.0) This is a relatively small release, mainly to support IPv6 and to add more sophisticated proxy header support. Quick reminder that if you like ntfy, **please consider sponsoring us** via [GitHub Sponsors](https://github.com/sponsors/binwiederhier) and [Liberapay](https://en.liberapay.com/ntfy/), or buying a [paid plan via the web app](https://ntfy.sh/app). ntfy will always remain open source. **Features:** - Full [IPv6 support](https://docs.ntfy.sh/config/#ipv6-support) for ntfy and the official ntfy.sh server ([#&#8203;519](https://github.com/binwiederhier/ntfy/issues/519) / [#&#8203;1380](https://github.com/binwiederhier/ntfy/issues/1380) / [#&#8203;4](https://github.com/binwiederhier/ntfy/issues/4)) - Support `X-Client-IP`, `X-Real-IP`, `Forwarded` headers for rate limiting via `proxy-forwarded-header` and `proxy-trusted-hosts` ([#&#8203;1360](https://github.com/binwiederhier/ntfy/issues/1360) / [#&#8203;1252](https://github.com/binwiederhier/ntfy/issues/1252), thanks to [@&#8203;pixitha](https://github.com/pixitha)) - Add STDIN support for `ntfy publish` ([#&#8203;1382](https://github.com/binwiederhier/ntfy/issues/1382), thanks to [@&#8203;srevn](https://github.com/srevn)) **Languages** - Update new languages from Weblate. Thanks to all the contributors! - Added Estonian (Esti), Galician (Galego), Romanian (Română), Slovak (Slovenčina) as new languages to the web app ### [`v2.12.0`](https://github.com/binwiederhier/ntfy/releases/tag/v2.12.0) [Compare Source](https://github.com/binwiederhier/ntfy/compare/v2.11.0...v2.12.0) This is mainly a maintenance release that updates dependencies, though since it's been over a year, there are a few new features and bug fixes as well. Thanks to everyone who contributed to this release, and special thanks to [@&#8203;wunter8](https://github.com/wunter8) for his continued user support in Discord/Matrix/GitHub! You rock, man! **Features:** - Add username/password auth to email publishing ([#&#8203;1164](https://github.com/binwiederhier/ntfy/pull/1164), thanks to [@&#8203;bishtawi](https://github.com/bishtawi)) - Write VAPID keys to file in `ntfy webpush --output-file` ([#&#8203;1138](https://github.com/binwiederhier/ntfy/pull/1138), thanks to [@&#8203;nogweii](https://github.com/nogweii)) - Add Docker major/minor version to image tags ([#&#8203;1271](https://github.com/binwiederhier/ntfy/pull/1271), thanks to [@&#8203;RoboMagus](https://github.com/RoboMagus)) - Add `latest` subscription param for grabbing just the most recent message ([#&#8203;1216](https://github.com/binwiederhier/ntfy/pull/1216), thanks to [@&#8203;wunter8](https://github.com/wunter8)) - Allow using `NTFY_PASSWORD_HASH` in `ntfy user` command instead of raw password ([#&#8203;1340](https://github.com/binwiederhier/ntfy/pull/1340), thanks to [@&#8203;Tom-Hubrecht](https://github.com/Tom-Hubrecht) for implementing) - You can now change passwords via `v1/users` API ([#&#8203;1267](https://github.com/binwiederhier/ntfy/pull/1267), thanks to [@&#8203;wunter8](https://github.com/wunter8) for implementing) - Make WebPush subscription warning/expiry configurable, increase default to 55/60 days ([#&#8203;1212](https://github.com/binwiederhier/ntfy/pull/1212), thanks to [@&#8203;KuroSetsuna29](https://github.com/KuroSetsuna29)) - Support [systemd user service](https://docs.ntfy.sh/subscribe/cli/#using-the-systemd-service) `ntfy-client.service` ([#&#8203;1002](https://github.com/binwiederhier/ntfy/pull/1002), thanks to [@&#8203;dandersch](https://github.com/dandersch)) **Bug fixes + maintenance:** - Security updates for dependencies and Docker images ([#&#8203;1341](https://github.com/binwiederhier/ntfy/pull/1341)) - Upgrade to Vite 6 ([#&#8203;1342](https://github.com/binwiederhier/ntfy/pull/1342), thanks Dependabot) - Fix iOS delivery issues for read-protected topics ([#&#8203;1207](https://github.com/binwiederhier/ntfy/pull/1287), thanks a lot to [@&#8203;barart](https://github.com/barart)!) - Add `Date` header to outgoing emails to avoid rejection ([#&#8203;1141](https://github.com/binwiederhier/ntfy/pull/1141), thanks to [@&#8203;pcouy](https://github.com/pcouy)) - Fix IP address parsing when behind a proxy ([#&#8203;1266](https://github.com/binwiederhier/ntfy/pull/1266), thanks to [@&#8203;mmatuska](https://github.com/mmatuska)) - Make sure UnifiedPush messages are not treated as attachments ([#&#8203;1312](https://github.com/binwiederhier/ntfy/pull/1312), thanks to [@&#8203;vkrause](https://github.com/vkrause)) - Add OCI image version to Docker image ([#&#8203;1307](https://github.com/binwiederhier/ntfy/pull/1307), thanks to [@&#8203;jlssmt](https://github.com/jlssmt)) - WebSocket returning incorrect HTTP error code ([#&#8203;1338](https://github.com/binwiederhier/ntfy/pull/1338) / [#&#8203;1337](https://github.com/binwiederhier/ntfy/pull/1337), thanks to [@&#8203;wunter8](https://github.com/wunter8) for debugging and implementing) - Make Markdown in the web app scrollable horizontally ([#&#8203;1262](https://github.com/binwiederhier/ntfy/pull/1262), thanks to [@&#8203;rake5k](https://github.com/rake5k) for fixing) - Make sure WebPush subscription topics are actually deleted (no ticket) - Increase the number of access tokens per user to 60 ([#&#8203;1308](https://github.com/binwiederhier/ntfy/issues/1308)) - Allow specifying `cache` and `firebase` via JSON publishing ([#&#8203;1119](https://github.com/binwiederhier/ntfy/issues/1119)/[#&#8203;1123](https://github.com/binwiederhier/ntfy/pull/1123), thanks to [@&#8203;stendler](https://github.com/stendler)) **Documentation:** - Lots of new integrations and projects. Amazing! - [ntfy-me-mcp](https://github.com/gitmotion/ntfy-me-mcp) - [UptimeObserver](https://uptimeobserver.com) - [alertmanager-ntfy-relay](https://github.com/therobbielee/alertmanager-ntfy-relay) - [Monibot](https://monibot.io/) - [Daily_Fact_Ntfy](https://github.com/thiswillbeyourgithub/Daily_Fact_Ntfy) - [EasyMorph](https://help.easymorph.com/doku.php?id=transformations:sendntfymessage) - [ntfy-run](https://github.com/quantum5/ntfy-run) - [Clipboard IO](https://github.com/jim3692/clipboard-io) - [ntfy-me-mcp](https://github.com/gitmotion/ntfy-me-mcp) - [InvaderInformant](https://github.com/patricksthannon/InvaderInformant) - Various docs updates ([#&#8203;1161](https://github.com/binwiederhier/ntfy/pull/1161), thanks to [@&#8203;OneWeekNotice](https://github.com/OneWeekNotice)) - Typo in config docs ([#&#8203;1177](https://github.com/binwiederhier/ntfy/pull/1177), thanks to [@&#8203;hoho4190](https://github.com/hoho4190)) - Typo in CLI docs ([#&#8203;1172](https://github.com/binwiederhier/ntfy/pull/1172), thanks to [@&#8203;anirvan](https://github.com/anirvan)) - Correction about MacroDroid ([#&#8203;1137](https://github.com/binwiederhier/ntfy/pull/1137), thanks to [@&#8203;ShlomoCode](https://github.com/ShlomoCode)) - Note about fail2ban in Docker ([#&#8203;1175](https://github.com/binwiederhier/ntfy/pull/1175)), thanks to [@&#8203;Measurity](https://github.com/Measurity)) - Lots of other tiny docs updates, thanks to everyone who contributed! **Languages** - Update new languages from Weblate. Thanks to all the contributors! - Added Tamil (தமிழ்) as a new language to the web app ### [`v2.11.0`](https://github.com/binwiederhier/ntfy/releases/tag/v2.11.0) [Compare Source](https://github.com/binwiederhier/ntfy/compare/v2.10.0...v2.11.0) This is a tiny release that fixes a database index issue that caused performance issues on ntfy.sh. It also fixes a bug in the rate visitor logic that caused rate visitors to be assigned to seemingly random topics. Nothing major this time. ❤️ Quick reminder that if you like ntfy, **please consider sponsoring us** via [GitHub Sponsors](https://github.com/sponsors/binwiederhier) and [Liberapay](https://en.liberapay.com/ntfy/), or buying a [paid plan via the web app](https://ntfy.sh/app). ntfy will always remain open source. **Bug fixes + maintenance:** - Re-add database index `idx_topic` to the `messages` table to fix performance issues on ntfy.sh (no ticket, big thanks to [@&#8203;tcaputi](https://github.com/tcaputi) for finding this issue) - Do not set rate visitor for non-eligible topics (no ticket) - Do not cache `config.js` ([#&#8203;1098](https://github.com/binwiederhier/ntfy/pull/1098), thanks to [@&#8203;wunter8](https://github.com/wunter8)) ### [`v2.10.0`](https://github.com/binwiederhier/ntfy/releases/tag/v2.10.0) [Compare Source](https://github.com/binwiederhier/ntfy/compare/v2.9.0...v2.10.0) This release adds support for [message templating](https://docs.ntfy.sh/publish/#message-templating): in the ntfy server, which allows you to include a message and/or title template that will be filled with values from a JSON body (e.g. `curl -gd '{"alert":"Disk space low"}' "ntfy.sh/mytopic?tpl=1&m={{.alert}}"`). This is great for services that let you specify a webhook URL but do not let you change the webhook body (such as GitHub, or Grafana). **Features:** - [Message templating](https://docs.ntfy.sh/publish/#message-templating): You can now include a message and/or title template that will be filled with values from a JSON body ([#&#8203;724](https://github.com/binwiederhier/ntfy/issues/724), thanks to [@&#8203;wunter8](https://github.com/wunter8) for implementing) That's all. Short and sweet. If you like ntfy, please consider donating via [GitHub Sponsors](https://github.com/sponsors/binwiederhier), [Liberapay](https://en.liberapay.com/ntfy), or by buying a [ntfy Pro plan](https://ntfy.sh/app). ### [`v2.9.0`](https://github.com/binwiederhier/ntfy/releases/tag/v2.9.0) [Compare Source](https://github.com/binwiederhier/ntfy/compare/v2.8.0...v2.9.0) A small release after a long pause (lots of day job work). This release adds for **larger messages** and **longer message delays** in scheduled delivery messages. The web app also now supports pasting images from the clipboard. Other than that, only a few bug fixes and documentation updates, and a teeny tiny breaking change 😬. ⚠️ **Breaking changes**: - The `Rate-Topics` header was removed due to a DoS issue (see [#&#8203;1048](https://github.com/binwiederhier/ntfy/issues/1048)). This only affects installations with `visitor-subscriber-rate-limiting: true`, which is not the default and likely very rarely used. Normally I'd never remove a feature, but this is a security issue, and likely affects almost nobody. **Features:** - Support for larger message delays with `message-delay-limit` (see [message limits](config.md#message-limits), [#&#8203;1019](https://github.com/binwiederhier/ntfy/issues/1019), thanks to [@&#8203;MrChadMWood](https://github.com/MrChadMWood) for reporting) - Support for larger message body sizes with `message-size-limit` (use at your own risk, see [message limits](https://docs.ntfy.sh/config/#message-limits), [#&#8203;836](https://github.com/binwiederhier/ntfy/issues/836)/[#&#8203;1050](https://github.com/binwiederhier/ntfy/issues/1050), thanks to [@&#8203;zhzy0077](https://github.com/zhzy0077) for implementing this, and to [@&#8203;nkjshlsqja7331](https://github.com/nkjshlsqja7331) for reporting) - Web app: You can now paste images into the message bar or publish dialog ([#&#8203;963](https://github.com/binwiederhier/ntfy/issues/963)/[#&#8203;572](https://github.com/binwiederhier/ntfy/issues/572), thanks to [@&#8203;cmj2002](https://github.com/cmj2002) for implementing, and [@&#8203;rounakdatta](https://github.com/rounakdatta) for reporting) **Bug fixes + maintenance:** - ⚠️ Remove `Rate-Topics` header due to DoS security issue if `visitor-subscriber-rate-limiting: true` ([#&#8203;1048](https://github.com/binwiederhier/ntfy/issues/1048)) **Documentation:** - Remove `mkdocs-simple-hooks` ([#&#8203;1016](https://github.com/binwiederhier/ntfy/issues/1016), thanks to [@&#8203;Tom-Hubrecht](https://github.com/Tom-Hubrecht)) - Update Watchtower example ([#&#8203;1014](https://github.com/binwiederhier/ntfy/issues/1014), thanks to [@&#8203;lennart-m](https://github.com/lennart-m)) - Fix dead links ([#&#8203;1022](https://github.com/binwiederhier/ntfy/issues/1022), thanks to [@&#8203;DerRockWolf](https://github.com/DerRockWolf)) - PowerShell file upload example ([#&#8203;1004](https://github.com/binwiederhier/ntfy/issues/1004), thanks to [@&#8203;YMan84](https://github.com/YMan84)) :heart: Special thanks to [@&#8203;wunter8](https://github.com/wunter8) for always answering all the questions on Discord/Matrix! ### [`v2.8.0`](https://github.com/binwiederhier/ntfy/releases/tag/v2.8.0) [Compare Source](https://github.com/binwiederhier/ntfy/compare/v2.7.0...v2.8.0) This release brings a handful of random bug fixes: two unrelated access control list fixes, a fix around web app crashes for languages with underscores in the language code (e.g. `zh_Hant`, `zh_Hans`, `pt_BR`, ...), a workaround for the `Priority` header (often used in Cloudflare setups), and support among others support for HTML-only emails (finally), web app crash fixes **Bug fixes + maintenance:** - Support for HTML-only emails ([#&#8203;690](https://github.com/binwiederhier/ntfy/issues/690)/[#&#8203;693](https://github.com/binwiederhier/ntfy/issues/693), thanks to [@&#8203;teastrainer](https://github.com/teastrainer) and [@&#8203;CrazyWolf13](https://github.com/CrazyWolf13) for reporting) - Fix ACL issue with topic patterns containing underscores ([#&#8203;840](https://github.com/binwiederhier/ntfy/issues/840), thanks to [@&#8203;Joe-0237](https://github.com/Joe-0237) for reporting) - Fix ACL issue with order of read/write rules ([#&#8203;914](https://github.com/binwiederhier/ntfy/issues/914)/[#&#8203;917](https://github.com/binwiederhier/ntfy/issues/917), thanks to [@&#8203;sandman7920](https://github.com/sandman7920)) - Re-add `tzdata` to Docker images for amd64 image ([#&#8203;894](https://github.com/binwiederhier/ntfy/issues/894), [#&#8203;307](https://github.com/binwiederhier/ntfy/issues/307)) - Add special logic to ignore `Priority` header if it resembles an RFC 9218 value ([#&#8203;851](https://github.com/binwiederhier/ntfy/issues/851)/[#&#8203;895](https://github.com/binwiederhier/ntfy/issues/895), thanks to [@&#8203;gusdleon](https://github.com/gusdleon), see also [#&#8203;351](https://github.com/binwiederhier/ntfy/issues/351), [#&#8203;353](https://github.com/binwiederhier/ntfy/issues/353), [#&#8203;461](https://github.com/binwiederhier/ntfy/issues/461)) - PWA: hide install prompt on macOS 14 Safari ([#&#8203;899](https://github.com/binwiederhier/ntfy/issues/899), thanks to [@&#8203;nihalgonsalves](https://github.com/nihalgonsalves)) - Fix web app crash in Edge for languages with underline in locale ([#&#8203;922](https://github.com/binwiederhier/ntfy/issues/922)/[#&#8203;912](https://github.com/binwiederhier/ntfy/issues/912)/[#&#8203;852](https://github.com/binwiederhier/ntfy/issues/852), thanks to [@&#8203;imkero](https://github.com/imkero)) **Additional languages:** - Finnish (thanks to [@&#8203;Seppo](https://hosted.weblate.org/user/Seppo/)) ### [`v2.7.0`](https://github.com/binwiederhier/ntfy/releases/tag/v2.7.0) [Compare Source](https://github.com/binwiederhier/ntfy/compare/v2.6.2...v2.7.0) This release ships Markdown support for the web app (not in the Android app yet), and adds support for right-to-left languages (RTL) in the web app. It also fixes a few issues around date/time formatting, internationalization support, a CLI auth bug. :warning: Furthermore, it fixes a **security issue** around access tokens getting erroneously deleted for other users in a specific scenario. This was a denial-of-service-type security issue, since it **effectively allowed a single user to deny access to all other users of a ntfy instance**. Please note that while tokens were erroneously deleted, **nobody but the token owner ever had access to it.** Please refer to [the ticket](https://github.com/binwiederhier/ntfy/issues/838) for details. **Please upgrade your ntfy instance if you run a multi-user system.** **Features:** - Add support for [Markdown formatting](https://docs.ntfy.sh/publish/#markdown-formatting) in web app ([#&#8203;310](https://github.com/binwiederhier/ntfy/issues/310), thanks to [@&#8203;nihalgonsalves](https://github.com/nihalgonsalves)) - Add support for right-to-left languages (RTL) in the web app ([#&#8203;663](https://github.com/binwiederhier/ntfy/issues/663), thanks to [@&#8203;nimbleghost](https://github.com/nimbleghost)) ⚠️ **Security:** - Fixes issue with access tokens getting deleted ([#&#8203;838](https://github.com/binwiederhier/ntfy/issues/838)) **Bug fixes + maintenance:** - Fix issues with date/time with different locales ([#&#8203;700](https://github.com/binwiederhier/ntfy/issues/700), thanks to [@&#8203;nimbleghost](https://github.com/nimbleghost)) - Re-init i18n on each service worker message to avoid missing translations ([#&#8203;817](https://github.com/binwiederhier/ntfy/pull/817), thanks to [@&#8203;nihalgonsalves](https://github.com/nihalgonsalves)) - You can now unset the default user:pass/token in `client.yml` for an individual subscription to remove the Authorization header ([#&#8203;829](https://github.com/binwiederhier/ntfy/issues/829), thanks to [@&#8203;tomeon](https://github.com/tomeon) for reporting and to [@&#8203;wunter8](https://github.com/wunter8) for fixing) **Documentation:** - Update docs for Apache config ([#&#8203;819](https://github.com/binwiederhier/ntfy/pull/819), thanks to [@&#8203;nisbet-hubbard](https://github.com/nisbet-hubbard)) ### [`v2.6.2`](https://github.com/binwiederhier/ntfy/releases/tag/v2.6.2) [Compare Source](https://github.com/binwiederhier/ntfy/compare/v2.6.1...v2.6.2) With this release, the ntfy web app now contains a **[progressive web app](https://docs.ntfy.sh/subscribe/pwa/) (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. On top of that, this release also brings **dark mode** 🧛🌙 to the web app. 🙏 A huge thanks for this release goes to [@&#8203;nimbleghost](https://github.com/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](https://github.com/sponsors/binwiederhier) and [Liberapay](https://en.liberapay.com/ntfy/), or buying a [paid plan via the web app](https://ntfy.sh/app) (20% off if you use promo code `MYTOPIC`). ntfy will always remain open source. **Features:** - The web app now supports Web Push, and is installable as a [progressive web app (PWA)](https://docs.ntfy.sh/subscribe/pwa/) on Chrome, Edge, Android, and iOS ([#&#8203;751](https://github.com/binwiederhier/ntfy/pull/751), thanks to [@&#8203;nimbleghost](https://github.com/nimbleghost)) - Support for dark mode in the web app ([#&#8203;206](https://github.com/binwiederhier/ntfy/issues/206), thanks to [@&#8203;nimbleghost](https://github.com/nimbleghost)) **Bug fixes:** - Support encoding any header as RFC 2047 ([#&#8203;737](https://github.com/binwiederhier/ntfy/issues/737), thanks to [@&#8203;cfouche3005](https://github.com/cfouche3005) for reporting) - Do not forward poll requests for UnifiedPush messages (no ticket, thanks to NoName for reporting) - Fix `ntfy pub %` segfaulting ([#&#8203;760](https://github.com/binwiederhier/ntfy/issues/760), thanks to [@&#8203;clesmian](https://github.com/clesmian) for reporting) - Newly created access tokens are now lowercase only to fully support `<topic>+<token>@&#8203;<domain>` email syntax ([#&#8203;773](https://github.com/binwiederhier/ntfy/issues/773), thanks to gingervitiz for reporting) - The .1 release fixes a few visual issues with dark mode, and other web app updates ([#&#8203;791](https://github.com/binwiederhier/ntfy/pull/791), [#&#8203;793](https://github.com/binwiederhier/ntfy/pull/793), [#&#8203;792](https://github.com/binwiederhier/ntfy/pull/792), thanks to [@&#8203;nimbleghost](https://github.com/nimbleghost)) - The .2 release fixes issues with the service worker in Firefox and adds automatic service worker updates ([#&#8203;795](https://github.com/binwiederhier/ntfy/pull/795), thanks to [@&#8203;nimbleghost](https://github.com/nimbleghost)) **Maintenance:** - Improved GitHub Actions flow ([#&#8203;745](https://github.com/binwiederhier/ntfy/pull/745), thanks to [@&#8203;nimbleghost](https://github.com/nimbleghost)) - Web: Add JS formatter "prettier" ([#&#8203;746](https://github.com/binwiederhier/ntfy/pull/746), thanks to [@&#8203;nimbleghost](https://github.com/nimbleghost)) - Web: Add eslint with eslint-config-airbnb ([#&#8203;748](https://github.com/binwiederhier/ntfy/pull/748), thanks to [@&#8203;nimbleghost](https://github.com/nimbleghost)) - Web: Switch to Vite ([#&#8203;749](https://github.com/binwiederhier/ntfy/pull/749), thanks to [@&#8203;nimbleghost](https://github.com/nimbleghost)) **Changes in tarball/zip naming:**\ Due to a [change in GoReleaser](https://goreleaser.com/deprecations/#archivesreplacements), some of the binary release archives now have slightly different names. My apologies if this causes issues in the downstream projects that use ntfy: - `ntfy_v${VERSION}_windows_x86_64.zip` -> `ntfy_v${VERSION}_windows_amd64.zip` - `ntfy_v${VERSION}_linux_x86_64.tar.gz` -> `ntfy_v${VERSION}_linux_amd64.tar.gz` - `ntfy_v${VERSION}_macOS_all.tar.gz` -> `ntfy_v${VERSION}_darwin_all.tar.gz` ### [`v2.6.1`](https://github.com/binwiederhier/ntfy/releases/tag/v2.6.1) [Compare Source](https://github.com/binwiederhier/ntfy/compare/v2.6.0...v2.6.1) (:warning: This release is superseded by v2.6.2) With this release, the ntfy web app now contains a **[progressive web app](https://docs.ntfy.sh/subscribe/pwa/) (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. On top of that, this release also brings **dark mode** 🧛🌙 to the web app. 🙏 A huge thanks for this release goes to [@&#8203;nimbleghost](https://github.com/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](https://github.com/sponsors/binwiederhier) and [Liberapay](https://en.liberapay.com/ntfy/), or buying a [paid plan via the web app](https://ntfy.sh/app) (20% off if you use promo code `MYTOPIC`). ntfy will always remain open source. **Features:** - The web app now supports Web Push, and is installable as a [progressive web app (PWA)](https://docs.ntfy.sh/subscribe/pwa/) on Chrome, Edge, Android, and iOS ([#&#8203;751](https://github.com/binwiederhier/ntfy/pull/751), thanks to [@&#8203;nimbleghost](https://github.com/nimbleghost)) - Support for dark mode in the web app ([#&#8203;206](https://github.com/binwiederhier/ntfy/issues/206), thanks to [@&#8203;nimbleghost](https://github.com/nimbleghost)) **Bug fixes:** - Support encoding any header as RFC 2047 ([#&#8203;737](https://github.com/binwiederhier/ntfy/issues/737), thanks to [@&#8203;cfouche3005](https://github.com/cfouche3005) for reporting) - Do not forward poll requests for UnifiedPush messages (no ticket, thanks to NoName for reporting) - Fix `ntfy pub %` segfaulting ([#&#8203;760](https://github.com/binwiederhier/ntfy/issues/760), thanks to [@&#8203;clesmian](https://github.com/clesmian) for reporting) - Newly created access tokens are now lowercase only to fully support `<topic>+<token>@&#8203;<domain>` email syntax ([#&#8203;773](https://github.com/binwiederhier/ntfy/issues/773), thanks to gingervitiz for reporting) - The .1 release fixes a few visual issues with dark mode, and other web app updates ([#&#8203;791](https://github.com/binwiederhier/ntfy/pull/791), [#&#8203;793](https://github.com/binwiederhier/ntfy/pull/793), [#&#8203;792](https://github.com/binwiederhier/ntfy/pull/792), thanks to [@&#8203;nimbleghost](https://github.com/nimbleghost)) ### [`v2.6.0`](https://github.com/binwiederhier/ntfy/releases/tag/v2.6.0) [Compare Source](https://github.com/binwiederhier/ntfy/compare/v2.5.0...v2.6.0) (:warning: This release is superseded by v2.6.2) With this release, the ntfy web app now contains a **[progressive web app](https://docs.ntfy.sh/subscribe/pwa/) (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. On top of that, this release also brings **dark mode** 🧛🌙 to the web app. 🙏 A huge thanks for this release goes to [@&#8203;nimbleghost](https://github.com/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](https://github.com/sponsors/binwiederhier) and [Liberapay](https://en.liberapay.com/ntfy/), or buying a [paid plan via the web app](https://ntfy.sh/app) (20% off if you use promo code `MYTOPIC`). ntfy will always remain open source. **Features:** - The web app now supports Web Push, and is installable as a [progressive web app (PWA)](https://docs.ntfy.sh/subscribe/pwa/) on Chrome, Edge, Android, and iOS ([#&#8203;751](https://github.com/binwiederhier/ntfy/pull/751), thanks to [@&#8203;nimbleghost](https://github.com/nimbleghost)) - Support for dark mode in the web app ([#&#8203;206](https://github.com/binwiederhier/ntfy/issues/206), thanks to [@&#8203;nimbleghost](https://github.com/nimbleghost)) **Bug fixes:** - Support encoding any header as RFC 2047 ([#&#8203;737](https://github.com/binwiederhier/ntfy/issues/737), thanks to [@&#8203;cfouche3005](https://github.com/cfouche3005) for reporting) - Do not forward poll requests for UnifiedPush messages (no ticket, thanks to NoName for reporting) - Fix `ntfy pub %` segfaulting ([#&#8203;760](https://github.com/binwiederhier/ntfy/issues/760), thanks to [@&#8203;clesmian](https://github.com/clesmian) for reporting) - Newly created access tokens are now lowercase only to fully support `<topic>+<token>@&#8203;<domain>` email syntax ([#&#8203;773](https://github.com/binwiederhier/ntfy/issues/773), thanks to gingervitiz for reporting) ### [`v2.5.0`](https://github.com/binwiederhier/ntfy/releases/tag/v2.5.0) [Compare Source](https://github.com/binwiederhier/ntfy/compare/v2.4.0...v2.5.0) This release brings a number of new features, including support for text-to-speech style [phone calls](https://docs.ntfy.sh/publish/#phone-calls), an admin API to manage users and ACL (currently in beta, and hence undocumented), and support for authorized access to upstream servers via the `upstream-access-token` config option. ❤️ If you like ntfy, **please consider sponsoring me** via [GitHub Sponsors](https://github.com/sponsors/binwiederhier) and [Liberapay](https://en.liberapay.com/ntfy/), or by buying a [paid plan via the web app](https://ntfy.sh/app) (20% off if you use promo code `MYTOPIC`). ntfy will always remain open source. **Features:** - Support for text-to-speech style [phone calls](https://docs.ntfy.sh/publish/#phone-calls) using the `X-Call` header (no ticket) - Admin API to manage users and ACL, `v1/users` + `v1/users/access` (intentionally undocumented as of now, [#&#8203;722](https://github.com/binwiederhier/ntfy/issues/722), thanks to [@&#8203;CreativeWarlock](https://github.com/CreativeWarlock) for sponsoring this ticket) - Added `upstream-access-token` config option to allow authorized access to upstream servers (no ticket) **Bug fixes + maintenance:** - Removed old ntfy website from ntfy entirely (no ticket) - Make emoji lookup for emails more efficient ([#&#8203;725](https://github.com/binwiederhier/ntfy/pull/725), thanks to [@&#8203;adamantike](https://github.com/adamantike)) - Fix potential subscriber ID clash ([#&#8203;712](https://github.com/binwiederhier/ntfy/issues/712), thanks to [@&#8203;peterbourgon](https://github.com/peterbourgon) for reporting, and [@&#8203;dropdevrahul](https://github.com/dropdevrahul) for fixing) - Support for `quoted-printable` in incoming emails ([#&#8203;719](https://github.com/binwiederhier/ntfy/pull/719), thanks to [@&#8203;Aerion](https://github.com/Aerion)) - Attachments with filenames that are downloaded using a browser will now download with the proper filename ([#&#8203;726](https://github.com/binwiederhier/ntfy/issues/726), thanks to [@&#8203;un99known99](https://github.com/un99known99) for reporting, and [@&#8203;wunter8](https://github.com/wunter8) for fixing) - Fix web app i18n issue in account preferences ([#&#8203;730](https://github.com/binwiederhier/ntfy/issues/730), thanks to [@&#8203;codebude](https://github.com/codebude) for reporting) ### [`v2.4.0`](https://github.com/binwiederhier/ntfy/releases/tag/v2.4.0) [Compare Source](https://github.com/binwiederhier/ntfy/compare/v2.3.1...v2.4.0) This release adds a tiny `v1/stats` endpoint to expose how many messages have been published, and adds suport to encode the `X-Title`, `X-Message` and `X-Tags` header as RFC 2047. It's a pretty small release, and mainly enables the release of the new ntfy.sh website. ❤️ If you like ntfy, **please consider sponsoring me** via [GitHub Sponsors](https://github.com/sponsors/binwiederhier) and [Liberapay](https://en.liberapay.com/ntfy/), or by buying a [paid plan via the web app](https://ntfy.sh/app). ntfy will always remain open source. **Features:** - [ntfy CLI](https://docs.ntfy.sh/subscribe/cli/) (`ntfy publish` and `ntfy subscribe` only) can now be installed via Homebrew (thanks to [@&#8203;Moulick](https://github.com/Moulick)) - Added `v1/stats` endpoint to expose messages stats (no ticket) - Support [RFC 2047](https://datatracker.ietf.org/doc/html/rfc2047#section-2) encoded headers (no ticket, honorable mention to [mqttwarn](https://github.com/jpmens/mqttwarn/pull/638) and [@&#8203;amotl](https://github.com/amotl)) **Bug fixes + maintenance:** - Hide country flags on Windows ([#&#8203;606](https://github.com/binwiederhier/ntfy/issues/606), thanks to [@&#8203;cmeis](https://github.com/cmeis) for reporting, and to [@&#8203;pokej6](https://github.com/pokej6) for fixing it) - `ntfy sub` now uses default auth credentials as defined in `client.yml` ([#&#8203;698](https://github.com/binwiederhier/ntfy/issues/698), thanks to [@&#8203;CrimsonFez](https://github.com/CrimsonFez) for reporting, and to [@&#8203;wunter8](https://github.com/wunter8) for fixing it) **Documentation:** - Updated PowerShell examples ([#&#8203;697](https://github.com/binwiederhier/ntfy/pull/697), thanks to [@&#8203;Natfan](https://github.com/Natfan)) **Additional languages:** - Swedish (thanks to [@&#8203;hellbown](https://hosted.weblate.org/user/Shjosan/)) ### [`v2.3.1`](https://github.com/binwiederhier/ntfy/releases/tag/v2.3.1) [Compare Source](https://github.com/binwiederhier/ntfy/compare/v2.3.0...v2.3.1) #### Changelog - [`a75fb08`](https://github.com/binwiederhier/ntfy/commit/a75fb08) Tidy ### [`v2.3.0`](https://github.com/binwiederhier/ntfy/releases/tag/v2.3.0) [Compare Source](https://github.com/binwiederhier/ntfy/compare/v2.2.0...v2.3.0) 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](https://github.com/binwiederhier/ntfy/issues/677). **Features:** - ntfy now supports Go's `pprof` profiler, if enabled (relates to [#&#8203;677](https://github.com/binwiederhier/ntfy/issues/677)) **Bug fixes + maintenance:** - Fix delayed message sending from authenticated users ([#&#8203;679](https://github.com/binwiederhier/ntfy/issues/679)) - Fixed plural for Polish and other translations ([#&#8203;678](https://github.com/binwiederhier/ntfy/pull/678), thanks to [@&#8203;bmoczulski](https://github.com/bmoczulski)) ### [`v2.2.0`](https://github.com/binwiederhier/ntfy/releases/tag/v2.2.0) [Compare Source](https://github.com/binwiederhier/ntfy/compare/v2.1.2...v2.2.0) With this release, ntfy is now able to expose metrics via a `/metrics` endpoint for [Prometheus](https://prometheus.io/), 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](https://ntfy.sh/app). ❤️ If you don't need ntfy Pro, please consider sponsoring ntfy via [GitHub Sponsors](https://github.com/sponsors/binwiederhier) and [Liberapay](https://en.liberapay.com/ntfy/). ntfy will stay open source forever. **Features:** - Monitoring: ntfy now exposes a `/metrics` endpoint for [Prometheus](https://prometheus.io/) if [configured](https://ntfy.sh/docs/config/#monitoring) ([#&#8203;210](https://github.com/binwiederhier/ntfy/issues/210), thanks to [@&#8203;rogeliodh](https://github.com/rogeliodh) for reporting) - You can now use tokens in `client.yml` for publishing and subscribing ([#&#8203;653](https://github.com/binwiederhier/ntfy/issues/653), thanks to [@&#8203;wunter8](https://github.com/wunter8)) **Bug fixes + maintenance:** - `ntfy sub --poll --from-config` will now include authentication headers from client.yml (if applicable) ([#&#8203;658](https://github.com/binwiederhier/ntfy/issues/658), thanks to [@&#8203;wunter8](https://github.com/wunter8)) - Docs: Removed dependency on Google Fonts in docs ([#&#8203;554](https://github.com/binwiederhier/ntfy/issues/554), thanks to [@&#8203;bt90](https://github.com/bt90) for reporting, and [@&#8203;ozskywalker](https://github.com/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 ([#&#8203;630](https://github.com/binwiederhier/ntfy/issues/630), thanks to [@&#8203;bbaa-bbaa](https://github.com/bbaa-bbaa) for reporting, and to [@&#8203;wunter8](https://github.com/wunter8) for a fix) ### [`v2.1.2`](https://github.com/binwiederhier/ntfy/releases/tag/v2.1.2) [Compare Source](https://github.com/binwiederhier/ntfy/compare/v2.1.1...v2.1.2) 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](https://ntfy.sh/docs/config#subscriber-based-rate-limiting) for high volume servers. **Features:** - Support SMTP servers without auth ([#&#8203;645](https://github.com/binwiederhier/ntfy/issues/645), thanks to [@&#8203;Sharknoon](https://github.com/Sharknoon) for reporting) **Bug fixes + maintenance:** - Token auth doesn't work if default user credentials are defined in `client.yml` ([#&#8203;650](https://github.com/binwiederhier/ntfy/issues/650), thanks to [@&#8203;Xinayder](https://github.com/Xinayder)) - Add `visitor-subscriber-rate-limiting` flag to allow enabling [subscriber-based rate limiting](https://ntfy.sh/docs/config#subscriber-based-rate-limiting) (off by default now, [#&#8203;649](https://github.com/binwiederhier/ntfy/issues/649)/[#&#8203;655](https://github.com/binwiederhier/ntfy/pull/655), thanks to [@&#8203;barathrm](https://github.com/barathrm) for reporting, and to [@&#8203;karmanyaahm](https://github.com/karmanyaahm) and [@&#8203;p1gp1g](https://github.com/p1gp1g) for help with the design) - Reject Matrix pushkey after 12 hours of inactivity on a topic, if `visitor-subscriber-rate-limiting` is enabled ([#&#8203;643](https://github.com/binwiederhier/ntfy/pull/643), thanks to [@&#8203;karmanyaahm](https://github.com/karmanyaahm) and [@&#8203;p1gp1g](https://github.com/p1gp1g) for help with the design) **Additional languages:** - Danish (thanks to [@&#8203;Andersbiha](https://hosted.weblate.org/user/Andersbiha/)) ### [`v2.1.1`](https://github.com/binwiederhier/ntfy/releases/tag/v2.1.1) [Compare Source](https://github.com/binwiederhier/ntfy/compare/v2.1.0...v2.1.1) 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](https://ntfy.sh/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 ([#&#8203;641](https://github.com/binwiederhier/ntfy/issues/641), thanks to [u/heavybell](https://www.reddit.com/user/heavybell/) for reporting) - Remove health check from `Dockerfile` and [document it](https://ntfy.sh/docs/config/#health-checks) ([#&#8203;635](https://github.com/binwiederhier/ntfy/issues/635), thanks to [@&#8203;Andersbiha](https://github.com/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](https://ntfy.sh/docs/deprecations/), no ticket) - Added `billing-contact` config option (no ticket) ### [`v2.1.0`](https://github.com/binwiederhier/ntfy/releases/tag/v2.1.0) [Compare Source](https://github.com/binwiederhier/ntfy/compare/v2.0.1...v2.1.0) 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 ([#&#8203;584](https://github.com/binwiederhier/ntfy/pull/584)/[#&#8203;609](https://github.com/binwiederhier/ntfy/pull/609)/[#&#8203;633](https://github.com/binwiederhier/ntfy/pull/633), thanks to [@&#8203;karmanyaahm](https://github.com/karmanyaahm)) - Support for publishing to protected topics via email with access tokens ([#&#8203;612](https://github.com/binwiederhier/ntfy/pull/621), thanks to [@&#8203;tamcore](https://github.com/tamcore)) - Support for base64-encoded and nested multipart emails ([#&#8203;610](https://github.com/binwiederhier/ntfy/issues/610), thanks to [@&#8203;Robert-litts](https://github.com/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 [@&#8203;xenrox](https://github.com/xenrox) for reporting) - UnifiedPush: Treat non-Basic/Bearer `Authorization` header like header was not sent ([#&#8203;629](https://github.com/binwiederhier/ntfy/issues/629), thanks to [@&#8203;Boebbele](https://github.com/Boebbele) and [@&#8203;S1m](https://github.com/S1m) for reporting) **Documentation:** - Added example for [Traccar](https://ntfy.sh/docs/examples/#traccar) ([#&#8203;631](https://github.com/binwiederhier/ntfy/pull/631), thanks to [@&#8203;tamcore](https://github.com/tamcore)) **Additional languages:** - Arabic (thanks to [@&#8203;ButterflyOfFire](https://hosted.weblate.org/user/ButterflyOfFire/)) ### [`v2.0.1`](https://github.com/binwiederhier/ntfy/releases/tag/v2.0.1) [Compare Source](https://github.com/binwiederhier/ntfy/compare/v2.0.0...v2.0.1) 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 ([#&#8203;617](https://github.com/binwiederhier/ntfy/issues/617), thanks to [@&#8203;ksurl](https://github.com/ksurl)) - Ensure that calls to standard logger `log.Println` also output JSON (no ticket) ### [`v2.0.0`](https://github.com/binwiederhier/ntfy/releases/tag/v2.0.0) [Compare Source](https://github.com/binwiederhier/ntfy/compare/v1.31.0...v2.0.0) 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](https://docs.ntfy.sh/config/#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](https://docs.ntfy.sh/config/#config-options) in the web app if `enable-reservations` is enabled, and only if the user has a [tier](https://docs.ntfy.sh/config/#tiers) 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](https://docs.ntfy.sh/config/#access-tokens), and [publishing using tokens](https://docs.ntfy.sh/publish/#access-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](https://docs.ntfy.sh/config/#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](https://docs.ntfy.sh/config/#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](https://stripe.com) as a payment provider. See [payments](https://docs.ntfy.sh/config/#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](https://github.com/sponsors/binwiederhier) and [Liberapay](https://en.liberapay.com/ntfy/), 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, [@&#8203;nwithan8](https://github.com/nwithan8), [@&#8203;deadcade](https://github.com/deadcade), [@&#8203;xenrox](https://github.com/xenrox), [@&#8203;cmeis](https://github.com/cmeis), [@&#8203;wunter8](https://github.com/wunter8), and the others who I forgot. ### [`v1.31.0`](https://github.com/binwiederhier/ntfy/releases/tag/v1.31.0) [Compare Source](https://github.com/binwiederhier/ntfy/compare/v1.30.1...v1.31.0) 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` ([#&#8203;555](https://github.com/binwiederhier/ntfy/pull/555), thanks to [@&#8203;bt90](https://github.com/bt90)) **Bug fixes + maintenance:** - Fix `chown` issues with RHEL-like based systems ([#&#8203;566](https://github.com/binwiederhier/ntfy/issues/566)/[#&#8203;565](https://github.com/binwiederhier/ntfy/pull/565), thanks to [@&#8203;danieldemus](https://github.com/danieldemus)) - Removed `upx` (binary packing) for all builds due to false virus warnings ([#&#8203;576](https://github.com/binwiederhier/ntfy/issues/576), thanks to [@&#8203;shawnhwei](https://github.com/shawnhwei) for reporting) - Upgraded `go-smtp` library and tests to v0.16.0 ([#&#8203;569](https://github.com/binwiederhier/ntfy/issues/569)) **Documentation:** - Add HTTP/2 and TLSv1.3 support to nginx docs ([#&#8203;553](https://github.com/binwiederhier/ntfy/issues/553), thanks to [@&#8203;bt90](https://github.com/bt90)) - Small wording change for `client.yml` ([#&#8203;562](https://github.com/binwiederhier/ntfy/pull/562), thanks to [@&#8203;fleopaulD](https://github.com/fleopaulD)) - Fix K8s install docs ([#&#8203;582](https://github.com/binwiederhier/ntfy/pull/582), thanks to [@&#8203;Remedan](https://github.com/Remedan)) - Updated Jellyseer docs ([#&#8203;604](https://github.com/binwiederhier/ntfy/pull/604), thanks to [@&#8203;Y0ngg4n](https://github.com/Y0ngg4n)) - Updated iOS developer docs ([#&#8203;605](https://github.com/binwiederhier/ntfy/pull/605), thanks to [@&#8203;SticksDev](https://github.com/SticksDev)) **Additional languages:** - Portuguese (thanks to [@&#8203;ssantos](https://hosted.weblate.org/user/ssantos/)) ### [`v1.30.1`](https://github.com/binwiederhier/ntfy/releases/tag/v1.30.1) [Compare Source](https://github.com/binwiederhier/ntfy/compare/v1.29.1...v1.30.1) 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 [#&#8203;552](https://github.com/binwiederhier/ntfy/issues/552)). **Features:** - Web: Generate random topic name button ([#&#8203;453](https://github.com/binwiederhier/ntfy/issues/453), thanks to [@&#8203;yardenshoham](https://github.com/yardenshoham)) - Add [Gitpod config](https://github.com/binwiederhier/ntfy/blob/main/.gitpod.yml) ([#&#8203;540](https://github.com/binwiederhier/ntfy/pull/540), thanks to [@&#8203;yardenshoham](https://github.com/yardenshoham)) **Bug fixes + maintenance:** - Remove `--env-topic` option from `ntfy publish` as per [deprecation](deprecations.md) (no ticket) - Prepared statements for message cache writes ([#&#8203;542](https://github.com/binwiederhier/ntfy/pull/542), thanks to [@&#8203;nicois](https://github.com/nicois)) - Do not warn about invalid IP address when behind proxy in unix socket mode (relates to [#&#8203;552](https://github.com/binwiederhier/ntfy/issues/552)) ### [`v1.29.1`](https://github.com/binwiederhier/ntfy/releases/tag/v1.29.1) [Compare Source](https://github.com/binwiederhier/ntfy/compare/v1.29.0...v1.29.1) This is mostly a bugfix release to address the high load on ntfy.sh. There are now two new options that allow synchronous batch-writing of messages to the cache. This avoids database locking, and subsequent pileups of waiting requests. **Bug fixes:** - High-load servers: Allow asynchronous batch-writing of messages to cache via `cache-batch-*` options ([#&#8203;498](https://github.com/binwiederhier/ntfy/issues/498)/[#&#8203;502](https://github.com/binwiederhier/ntfy/pull/502)) - Sender column in cache.db shows invalid IP ([#&#8203;503](https://github.com/binwiederhier/ntfy/issues/503)) **Documentation:** - GitHub Actions example ([#&#8203;492](https://github.com/binwiederhier/ntfy/pull/492), thanks to [@&#8203;ksurl](https://github.com/ksurl)) - UnifiedPush ACL clarification ([#&#8203;497](https://github.com/binwiederhier/ntfy/issues/497), thanks to [@&#8203;bt90](https://github.com/bt90)) - Install instructions for Kustomize ([#&#8203;463](https://github.com/binwiederhier/ntfy/pull/463), thanks to [@&#8203;l-maciej](https://github.com/l-maciej)) **Other things:** - Put ntfy.sh docs on GitHub pages to reduce AWS outbound traffic cost ([#&#8203;491](https://github.com/binwiederhier/ntfy/issues/491)) - The ntfy.sh server hardware was upgraded to a bigger box. If you'd like to help out carrying the server cost, **[sponsorships and donations](https://github.com/sponsors/binwiederhier)** 💸 would be very much appreciated ### [`v1.29.0`](https://github.com/binwiederhier/ntfy/releases/tag/v1.29.0) [Compare Source](https://github.com/binwiederhier/ntfy/compare/v1.28.0...v1.29.0) This release adds the ability to add rate limit exemptions for IP ranges instead of just specific IP addresses. It also fixes a few bugs in the web app and the CLI and adds lots of new examples and install instructions. Thanks to [some love on HN](https://news.ycombinator.com/item?id=33517944), we got so many new ntfy users trying out ntfy and joining the [chat rooms](https://github.com/binwiederhier/ntfy#chat--forum). **Welcome to the ntfy community to all of you!** We also got a ton of new **[sponsors and donations](https://github.com/sponsors/binwiederhier)** 💸, which is amazing. I'd like to thank all of you for believing in the project, and for helping me pay the server cost. The HN spike increased the AWS cost quite a bit. **Features:** - Allow IP CIDRs in `visitor-request-limit-exempt-hosts` ([#&#8203;423](https://github.com/binwiederhier/ntfy/issues/423), thanks to [@&#8203;karmanyaahm](https://github.com/karmanyaahm)) **Bug fixes + maintenance:** - Subscriptions can now have a display name ([#&#8203;370](https://github.com/binwiederhier/ntfy/issues/370), thanks to [@&#8203;tfheen](https://github.com/tfheen) for reporting) - Bump Go version to Go 18.x ([#&#8203;422](https://github.com/binwiederhier/ntfy/issues/422)) - Web: Strip trailing slash when subscribing ([#&#8203;428](https://github.com/binwiederhier/ntfy/issues/428), thanks to [@&#8203;raining1123](https://github.com/raining1123) for reporting, and [@&#8203;wunter8](https://github.com/wunter8) for fixing) - Web: Strip trailing slash after server URL in publish dialog ([#&#8203;441](https://github.com/binwiederhier/ntfy/issues/441), thanks to [@&#8203;wunter8](https://github.com/wunter8)) - Allow empty passwords in `client.yml` ([#&#8203;374](https://github.com/binwiederhier/ntfy/issues/374), thanks to [@&#8203;cyqsimon](https://github.com/cyqsimon) for reporting, and [@&#8203;wunter8](https://github.com/wunter8) for fixing) - `ntfy pub` will now use default username and password from `client.yml` ([#&#8203;431](https://github.com/binwiederhier/ntfy/issues/431), thanks to [@&#8203;wunter8](https://github.com/wunter8) for fixing) - Make `ntfy sub` work with `NTFY_USER` env variable ([#&#8203;447](https://github.com/binwiederhier/ntfy/pull/447), thanks to [@&#8203;SuperSandro2000](https://github.com/SuperSandro2000)) - Web: Disallow GET/HEAD requests with body in actions ([#&#8203;468](https://github.com/binwiederhier/ntfy/issues/468), thanks to [@&#8203;ollien](https://github.com/ollien)) **Documentation:** - Updated developer docs, bump nodejs and go version ([#&#8203;414](https://github.com/binwiederhier/ntfy/issues/414), thanks to [@&#8203;YJSoft](https://github.com/YJSoft) for reporting) - Officially document `?auth=..` query parameter ([#&#8203;433](https://github.com/binwiederhier/ntfy/pull/433), thanks to [@&#8203;wunter8](https://github.com/wunter8)) - Added Rundeck example ([#&#8203;427](https://github.com/binwiederhier/ntfy/pull/427), thanks to [@&#8203;demogorgonz](https://github.com/demogorgonz)) - Fix Debian installation instructions ([#&#8203;237](https://github.com/binwiederhier/ntfy/issues/237), thanks to [@&#8203;Joeharrison94](https://github.com/Joeharrison94) for reporting) - Updated [example](https://ntfy.sh/docs/examples/#gatus) with official [Gatus](https://github.com/TwiN/gatus) integration (thanks to [@&#8203;TwiN](https://github.com/TwiN)) - Added [Kubernetes install instructions](https://ntfy.sh/docs/install/#kubernetes) ([#&#8203;452](https://github.com/binwiederhier/ntfy/pull/452), thanks to [@&#8203;gmemstr](https://github.com/gmemstr)) - Added [additional NixOS links for self-hosting](https://ntfy.sh/docs/install/#nixos-nix) ([#&#8203;462](https://github.com/binwiederhier/ntfy/pull/462), thanks to [@&#8203;wamserma](https://github.com/wamserma)) - Added additional [more secure nginx config example](https://ntfy.sh/docs/config/#nginxapache2caddy) ([#&#8203;451](https://github.com/binwiederhier/ntfy/pull/451), thanks to [@&#8203;SuperSandro2000](https://github.com/SuperSandro2000)) - Minor fixes in the config table ([#&#8203;470](https://github.com/binwiederhier/ntfy/pull/470), thanks to [@&#8203;snh](https://github.com/snh)) - Fix broken link ([#&#8203;476](https://github.com/binwiederhier/ntfy/pull/476), thanks to [@&#8203;shuuji3](https://github.com/shuuji3)) **Additional translations:** - Korean (thanks to [@&#8203;YJSofta0f97461d82447ac](https://hosted.weblate.org/user/YJSofta0f97461d82447ac/)) **Sponsorships:**: Thank you to the amazing folks who decided to [sponsor ntfy](https://github.com/sponsors/binwiederhier). Thank you for helping carry the cost of the public server and developer licenses, and more importantly: Thank you for believing in ntfy! You guys rock! A list of all the sponsors can be found in the [README](https://github.com/binwiederhier/ntfy/blob/main/README.md). </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOC4xMjcuNCIsInVwZGF0ZWRJblZlciI6IjM4LjEyNy40IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->
renovate added 1 commit 2025-11-16 00:02:35 +00:00
renovate force-pushed renovate/binwiederhier-ntfy-2.x from fe9458ba51 to 4201286d3f 2025-11-17 00:01:56 +00:00 Compare
This pull request can be merged automatically.
You are not authorized to merge this pull request.
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin renovate/binwiederhier-ntfy-2.x:renovate/binwiederhier-ntfy-2.x
git checkout renovate/binwiederhier-ntfy-2.x
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: mans/argocd-test#103
No description provided.