ntfy и Novu: какие задачи решают технические и пользовательские уведомления
ntfy подходит для короткого сигнала известной группе сотрудников: например, резервная копия не завершилась. Novu стоит рассматривать для сообщений конкретным пользователям приложения: заказ готов, нужно следующее действие. Начните с одного получателя и проверьте весь путь сообщения, включая права, телефон и реакцию человека после доставки.
Что подготовить
- Один учебный сбой резервного копирования и один вымышленный заказ, готовый к выдаче.
- Назначенный администратор, два его устройства или два получателя и учебный контакт клиента.
- Закрытая тема ntfy либо настроенная цепочка Novu с одним работающим каналом доставки.
Кому и зачем нужно сообщение #
В мастерской десять сотрудников. Ночная копия не завершилась, а заказ клиента готов к выдаче. Первый шаг — разделить эти сообщения по получателям. Администратор должен проверить систему; клиент — понять, когда и как забрать заказ.
Для администратора обычно достаточно закрытой темы и двух ответственных людей. Для клиента нужны его контакт, номер заказа и правильная ссылка. Одно сообщение в общей теме не подходит для обоих случаев: лишние сведения могут попасть не тому человеку.
Сигнал администратору через ntfy #
В ntfy тема — отдельный канал сообщений, на который подписаны получатели. Программа отправляет сообщение запросом по сети, клиент ntfy получает его. Для резервных копий создайте закрытую тему и отдельно задайте, кому разрешено писать и читать.
Ключ отправителя должен разрешать нужную отправку, а аккаунт администратора — чтение. Случайное имя темы не заменяет эти права. Проверьте доступ без входа: посторонний не должен читать рабочие сообщения или отправлять свои сигналы.
Что случилось. Название системы и краткий результат, например «Копия не завершилась».
Когда. Время задания, чтобы не перепутать новый сбой со старым сообщением.
Что делать. Ссылка на закрытый журнал и понятное действие администратора. Полный архив, пароли и данные клиентов в сообщение не включают.
Отсутствие сообщения тоже важно: программа могла вообще не запуститься. Отдельно контролируйте время последнего завершённого копирования. ntfy передаёт сигнал, а проверку запуска и завершения задания делает мониторинг или ваш отдельный процесс.
NTFY_TOKEN.curl --fail-with-body \
-H "Authorization: Bearer ${NTFY_TOKEN}" \
-H "Title: Backup job requires attention" \
-H "Priority: 4" \
--data "Учебная проверка: изучите результат задания в закрытом журнале." \
https://notify.example.com/backup-opsСообщение клиенту через Novu #
В Novu получатель называется subscriber, а цепочка доставки — workflow. Приложение передаёт событие о заказе и нужного клиента. Начните с письма или встроенного списка уведомлений Inbox, затем подключайте другие каналы после проверки.
Для письма мало заполнить почту клиента: нужен подключённый почтовый сервис. Для SMS нужны работающий провайдер и его условия оплаты. Novu не создаёт эти подключения автоматически; их настраивает команда приложения.
Получатель. Сервер связывает subscriberId с клиентом, которому принадлежит заказ. Произвольный номер из браузерной формы не даёт права писать другому человеку.
Ссылка. При открытии заказа приложение проверяет доступ. Знание адреса не должно открывать чужие сведения.
Данные сообщения. Номер, статус и следующее действие. Пример ниже передаёт эти сведения; разработчик подготавливает из них запрос для своей версии Novu.
{
"eventId": "demo-order-ready-0001",
"eventType": "order.ready",
"subscriberId": "demo-customer-001",
"payload": {"orderNumber":"DEMO-104","status":"ready","url":"/orders/DEMO-104"}
}| Вопрос | ntfy | Novu |
|---|---|---|
| Кто получает | Участники закрытой темы | Выбранный пользователь приложения |
| Что произошло | Копия не завершилась | Заказ готов |
| Что написать | Симптом и действие администратора | Статус, номер заказа и доступная клиенту ссылка |
| Как доставить | Настроенные клиенты темы | Шаги цепочки и подключённые провайдеры |
| Что делать с повтором | Объединить сигналы по номеру события | Учитывать номер события в приложении и отправке |
| Какой результат проверить | Ответственный принял проблему | Доставка, чтение и нужное действие клиента |
Как проверить, что сообщение дошло #
Испытайте ntfy на устройствах администратора: приложение открыто, экран заблокирован, интернет временно отсутствует. Сервер может принять сообщение раньше, чем телефон его покажет. На iPhone мгновенная доставка может зависеть от внешних сервисов уведомлений даже при собственном сервере.
Для Novu создайте учебного получателя и проверьте цепочку, контакт и подключённый канал. Проследите событие до результата отправки и фактического сообщения. Статус sent («отправлено») нужно понимать по тому, какой этап уже завершил выбранный канал.
Принято системой. Сервер получил событие, но письмо или уведомление ещё может ждать отправки.
Дошло до устройства или ящика. Проверьте реальное сообщение, включая папку спама. Уведомление в приложении может ждать следующего входа клиента.
Человек действовал. Администратор взял сбой в работу или клиент прочитал порядок выдачи. Получение сообщения и выполненная задача — разные вещи.
Проверка двух учебных сообщений
- Создайте закрытую тему ntfy, отдельный ключ отправителя и двух разрешённых получателей.
- Отправьте учебный сигнал и проверьте оба устройства, затем реакцию ответственного.
- В Novu создайте учебного получателя и одну цепочку с работающим каналом.
- Передайте событие через сервер приложения и найдите сообщение у нужного клиента.
- Повторите событие, отключите связь и проверьте ненужный канал: повторы и ограничения должны работать по вашим правилам.
- Запишите устройства, канал и результат. Повторяйте эту проверку после важных изменений.
Ключи доступа, повторы и расходы #
Ключи ntfy и Novu храните на сервере, отдельно от кода страницы. Для каждого подключения назначьте владельца и необходимые права. При уходе подрядчика проверьте также его токены — ключи интеграций, которые могут продолжать работать.
Сохраняйте номер события, канал, время и результат, без секретных ключей. Если доставка остановилась, событие должно ждать повтора или попасть на разбор сотруднику. Задайте ограничение попыток, чтобы один сбой не породил бесконечный поток одинаковых сообщений.
Открытое ядро Novu использует MIT, корпоративная часть имеет отдельные коммерческие условия. Перед выбором проверьте нужные функции именно в своей редакции. Почта, SMS и мобильные сервисы могут иметь дополнительную цену независимо от размещения Novu.
Для ntfy считайте сервер, хранение сообщений, мобильные зависимости и обслуживание. Установите срок хранения по рабочей потребности. Сообщения и контакты не должны накапливаться бесконечно только потому, что программа позволяет сохранять их.
Как выбрать и поддерживать уведомления #
Выбирайте ntfy, если нужно быстро сообщить известной группе о состоянии системы и передать вопрос ответственному. Novu подходит для приложения с адресными сообщениями клиентам и несколькими настроенными каналами. Можно использовать обе системы, разделив их задачи.
После изменения шаблона, программы телефона или провайдера отправьте контрольное сообщение. Уберите сотрудников, которые больше не отвечают за процесс. Просмотрите ошибки и сообщения без реакции: владелец должен понимать, кому нужна помощь и что ещё ждёт отправки.
Клиентский текст проверяйте как пользователь: понятны ли номер заказа, статус и следующее действие. Технические подробности оставьте в закрытом журнале. Если клиент не понимает, что делать после сообщения, настройка доставки ещё не решила рабочую задачу.
Выбор подходит, когда
- Сигнал о системе получает ответственный сотрудник, а сообщение о заказе — нужный клиент.
- Права темы и доступа к заказу проверены; ключи не доступны браузеру.
- Сообщения дошли на нужных устройствах через подключённые каналы; понятно, кто продолжает работу.
- Повторы, срок хранения, внешние расходы и обслуживание имеют согласованные правила.