ntfy

На этой неделе XDA опубликовали статью об отказе от email для оповещений домашней лаборатории и переходе на ntfy. Авторы правильно определили проблему. Email-уведомления теряются в папке рекламы, приходят с опозданием на несколько минут и перестают работать при любом сбое почтового сервера. Ntfy хороша тем, что дает вам возможность отправить push-уведомление со звуком и вибрацией через простую команду curl на телефон, который у вас, вероятно, всегда с собой.

Следующий вопрос в том, какой сервис push-уведомлений выбрать. ntfy элегантна, но это не единственный вариант, и она подходит не для каждой конфигурации. Некоторые умные дома уже используют Home Assistant. Некоторые операционные команды уже имеют платный аккаунт Pushover. Некоторые системы нужна история событий больше, чем real-time-уведомление. Мы протестировали семь альтернатив ntfy по одинаковым трем сценариям: Bash cron-задача на NAS, проверка здоровья Docker-контейнера и маршрутизатор, сообщающий об отключении.

Быстрое сравнение

Приложение Лучше всего для Бесплатный тариф Начальная цена Выделяющаяся функция
Gotify Полностью self-hosted, один бинарный файл Да, open source Бесплатно Никакие третьи стороны
Pushover Надежный платный канал 30-дневный пробный период Около 5 USD за платформу, один раз Уровни приоритета сообщений
Pushbullet Кросс-девайсный обмен сообщениями Да, ограниченно Около 5 USD/месяц Pro Зеркало SMS на Android
Home Assistant Уже установленная экосистема Да, open source Бесплатно Глубокая интеграция с датчиками
Uptime Kuma Мониторинг удаленных сервисов Да, open source Бесплатно Встроенная страница статуса
Healthchecks.io Dead-man switch для cron-задач Да, до 20 проверок Около 5 USD/месяц Оповещение при остановке задачи
Apprise Notify Агрегатор для других сервисов Да, open source Бесплатно Разветвляет на Discord, Slack, ntfy и т.д.

Почему люди переходят с ntfy

Ничего из этого списка не является критическим отказом для ntfy. Она работает. Причины перехода сводятся к особенностям конфигурации:

Семь альтернатив ниже решают одну или несколько из этих проблем в порядке того, как часто мы рекомендовали их.

Альтернативы

1. Gotify — Лучший полностью self-hosted вариант

Gotify — это ближайшая замена один-к-одному. Это один Go бинарный файл, который запускается на любом Raspberry Pi или NAS, предоставляет HTTP API для отправки сообщений и связывается с Android-клиентом, который ведет себя как ntfy. База данных по умолчанию SQLite, поэтому резервная копия — это копирование файла, а вся поверхность достаточно мала, чтобы поместиться в контейнере.

Где это не срабатывает: Никаких уровней приоритета. Нет end-to-end шифрования для тела сообщения, оно передается в открытом виде внутри вашей сети. Android-клиент не может подписаться на несколько серверов так же элегантно, как приложение ntfy.

Цены:

Миграция с ntfy: Вызовы curl требуют переписывания точки входа и добавления токена в заголовок. Формат тела сообщения такой же. Существующие скрипты портируются за несколько минут.

Загрузка: Gotify на Aptoide · Google Play · F-Droid

Итог: Выбирайте это, если вы уже запускаете self-hosted ntfy и хотите немного более простой бинарный файл с идентичной ментальной моделью.

2. Pushover — Лучший платный канал для надежности

Pushover — выбор, когда вам нужна SRE-команда кого-то еще, стоящая за доставкой сообщения. Семантика с уровнями приоритета означает, что “emergency” ping продолжает пересылаться до подтверждения, “important” ping обходит тихие часы, а “low” ping никогда не разбудит вас. On-call ротации используют это каждый день.

Где это не срабатывает: Не self-hosted. Содержимое сообщения кратко находится на серверах Pushover. Единовременный сбор за приложение на платформу (Android, iOS, desktop) суммируется, если вы используете несколько.

Цены:

Миграция с ntfy: Замените вызов curl. Pushover использует HTTPS POST с ключом пользователя и токеном приложения. Приоритет становится дополнительным параметром.

Загрузка: Pushover на Aptoide · Google Play

Итог: Выбирайте это, если уведомления должны доставляться, и вы предпочитаете платить небольшую единовременную плату, чем управлять инфраструктурой.

3. Pushbullet — Лучший, если уведомление встроено в поток девайсов

Pushbullet не является в первую очередь инструментом push-уведомлений от скрипта к телефону, но выполняет эту работу чисто. Его настоящая сила — двусторонний канал: ваш телефон может зеркалировать SMS на десктоп, а десктоп-клиенты могут отправить уведомление обратно. Если ваши уведомления уже вписываются в историю “отправлять сообщения между моими девайсами”, Pushbullet кажется естественным.

Где это не срабатывает: Бесплатный тариф жестко ограничен по количеству сообщений и размеру файла. Компания пережила изменения владельца и потеряла технический блеск по ходу.

Цены:

Миграция с ntfy: API имеет другую форму. Вы замените URL и payload. Базовые вызовы отправки сообщений остаются однострочными.

Загрузка: Pushbullet на Aptoide · Google Play

Итог: Выбирайте это, если push — одна часть более широкого multi-device workflow, который вы уже используете.

4. Home Assistant — Лучший, если вы уже его используете

Home Assistant поставляется с Android companion app, которое получает push-уведомления от вашего экземпляра Home Assistant. Если ваш NAS, Docker stack или скрипты уже могут говорить с Home Assistant (обычно они могут), маршрутизация уведомлений через него означает один меньше сервис для запуска и один клиент на вашем телефоне вместо двух.

Где это не срабатывает: Избыток, если вы не используете Home Assistant. Настройка уведомлений с нуля требует больше YAML, чем того заслуживает однострочная curl команда.

Цены:

Миграция с ntfy: Направьте ваши скрипты на Home Assistant REST API и вызовите сервис notify. Ментальная модель ближе к message bus, чем к topic.

Загрузка: Home Assistant на Aptoide · Google Play

Итог: Выбирайте это, если Home Assistant уже является умным хабом и отправка уведомлений через него означает один меньше контейнер.

5. Uptime Kuma — Лучший, если уведомления о сервисах

Uptime Kuma — комбо status-page и монитор, который наблюдает за HTTP endpoints, портами и DNS записями, и отправляет уведомления через 90+ каналов, включая ntfy, Pushover, Discord и Home Assistant. Если большинство ваших уведомлений — это “упал ли мой сервис”, Uptime Kuma занимается как наблюдением, так и уведомлением.

Где это не срабатывает: Не универсальный сервис уведомлений. Если вы хотите отправить уведомление себе из Bash скрипта, который не является health check, Uptime Kuma это не инструмент.

Цены:

Миграция с ntfy: Uptime Kuma вызывает ntfy как канал. Миграция обычно дополнительная, а не замена.

Загрузка: Kuma monitor на Aptoide — клиент третьей стороны для просмотра дашборда

Итог: Выбирайте это, если уведомления о сервисах и вы хотите мониторинг в пакете.

6. Healthchecks.io — Лучший dead-man switch

Healthchecks.io решает режим отказа, который ntfy не может. Он ожидает ping по расписанию, которое вы определяете. Если ping перестает приходить, он вас уведомляет. Это правильная форма для резервных копий, cron-задач и любого batch-процесса, который интересен только когда он не выполняется. Self-hosting это одноконтейнерный deploy.

Где это не срабатывает: Не для real-time push. Android app это viewer, не получатель push-уведомлений сам по себе.

Цены:

Миграция с ntfy: Каждая cron-задача получает curl в конце. Уведомления об ошибках идут через email или саму ntfy.

Загрузка: Healthchecks.io на Aptoide · Google Play

Итог: Выбирайте это рядом с ntfy для всего, что основано на времени. Это следит за молчанием, ntfy обрабатывает шум.

7. Apprise — Лучший, когда вы хотите fan-out

Apprise — это Python библиотека и command-line инструмент, который позволяет одному вызову достичь 90+ сервисов уведомлений одновременно. Направьте Bash скрипт на Apprise и он доставит на Discord, Slack, Telegram, ntfy, Pushover и email в одной команде. Если ваша on-call ротация волнует, какой канал был задействован, Apprise убирает переключение из каждого скрипта.

Где это не срабатывает: Не сервис, который вы установите один раз и забудете. Каждый хост, отправляющий уведомления, нуждается в наличии CLI или библиотеки. Никакого фирменного мобильного клиента, уведомления прибывают в любой destination, на который Apprise разветвляется.

Цены:

Миграция с ntfy: Оберните ваши существующие вызовы вызовом Apprise CLI, который перечисляет ntfy как один destination. Добавьте другие каналы рядом с ним.

Загрузка: Нет выделенного Android приложения; уведомления приходят в любой destination, на который Apprise отправляет.

Итог: Выбирайте это, если вы хотите один интерфейс для многих каналов, и вы не против установки CLI на каждом alerting хосте.

Как выбрать

Остаемся на ntfy, если текущая настройка уже работает, ваша публичная точка входа в порядке, и вы не чувствовали потолка. Это чудесный кусок программного обеспечения. Большинство людей, которые переходят, делают это, чтобы добавить способности, которые ntfy никогда не претендовала охватывать.

FAQ

Что отличает ntfy от API push-уведомлений? ntfy — это self-hostable pub/sub сервер для мобильных уведомлений. Любой HTTP клиент может опубликовать, и мобильное приложение подписывается на topics. Нет аккаунта, нет входа и нет поставщика между отправителем и получателем.

Является ли Gotify полной заменой ntfy? Близко, но не идентично. Gotify использует токены приложений, где ntfy использует topics, и ему не хватает более сильного multi-server UX ntfy в Android клиенте. Для одноэкземплярной домашней установки эти два взаимозаменяемы.

Могу ли я использовать Home Assistant вместо ntfy для cron уведомлений? Да. Home Assistant REST API принимает notify вызов откуда угодно на вашей сети. Overhead только стоит того, если Home Assistant уже установлен.

Какой самый дешевый платный сервис push? Pushover около 5 USD один раз за платформу — это самая низкая общая стоимость платного канала с уровнями приоритета. Pushbullet Pro около 5 USD/месяц дешевле авансом, но повторяющаяся.

Работает ли какой-либо из них без смартфона? Uptime Kuma и Healthchecks.io оба push на email, webhooks и desktop клиентов без телефона в цепи. Сама ntfy также может запускать desktop уведомления через web push.