Перейти к содержимому

Веб-уведомления (PWA)

DumbMonit может позвонить вашему телефону или компьютеру сам по себе, как это делает собственное приложение, без установки приложения или создания учетной записи где-либо: собственная служба толчков браузера (Google, Mozilla, Apple, Microsoft) передает сквозное шифрованное сообщение от вашего сервера на устройство, и уведомление отображается даже при закрытии всех вкладок DumbMonit. Это стандартный Web Push; сайт также может быть установлен как приложение (прогрессивное веб-приложение, PWA), чтобы он открывался из значка как любое другое.

Два шага: включить толчок на каждом устройстве (эта страница), затем решить, какие оповещения идут туда с каналом Web Push (Каналы уведомлений).

  • Требуется HTTPS. Браузеры предлагают толчок только защищенному источнику. Поместите DumbMonit позади обратного прокси с сертификатом (Caddy, Traefik, Nginx Proxy Manager…) и откройте его через этот адрес. http://localhost также принимается, что полезно только для тестирования на самом сервере. На простом http://192.168.x.x раздел говорит Требуется HTTPS.
  • Сервер должен имеет исходящий HTTPS к сервисам толчков: fcm.googleapis.com (Chrome и Edge на Android), *.notify.windows.com (Edge на Windows), updates.push.services.mozilla.com (Firefox) и *.push.apple.com (Safari, iPhone, iPad). Ничего не входит: ваш DumbMonit не нужно быть доступным из Интернета, телефон должен только достичь его, когда вы нажимаете на уведомление.
  • Установите DUMBMONIT_PUBLIC_URL на адрес HTTPS, который вы используете: он дается сервисам толчков как контакт отправителя, и это адрес, на который указывают ссылки в других каналах.
  1. Откройте DumbMonit в Chrome, Edge, Firefox или Safari и войдите.
  2. Необязательно: установите его как приложение (адресная строка → Установить, или меню браузера → Добавить на главный экран). Уведомления работают в любом случае.
  3. Параметры → Веб-уведомления → Включить на этом устройстве, и разрешить уведомления, когда браузер спрашивает.
  4. Отправить тест. Уведомление DumbMonit — тестовое уведомление должно появиться в течение нескольких секунд.

Apple дает толчок только сайтам, добавленным на главный экран (iOS и iPadOS 16.4 или новее):

  1. Откройте DumbMonit в Safari.
  2. Поделиться → Добавить на главный экран, затем откройте DumbMonit из нового значка.
  3. Войдите, затем Параметры → Веб-уведомления → Включить на этом устройстве, и разрешить уведомления.
  4. Отправить тест.

В Safari без установки раздел говорит Сначала установить.

В Параметры → Уведомления и отчёты добавьте канал типа Web Push. Без параметра каждое подписанное устройство каждой учетной записи получает его; перечислите имена учетных записей в Учетные записи для нацеливания только на некоторых людей. Обычная политика канала применяется (минимальная серьезность, тихие часы, фильтр маршрутизации…), поэтому вы можете например, держать телефон только для критических оповещений.

Уведомление читает Критическое · nas01 с кратким резюме; нажатие на него открывает страницу Оповещения. Разрешение оповещения заменяет его уведомление вместо добавления второго.

Каждая учетная запись видит и управляет своими собственными устройствами: зрители также могут включить толчок на своем телефоне, это ничего больше не меняет. Учетная запись содержит максимум 10 устройств (удалите старое, чтобы добавить другое), и тест может быть отправлен один раз в 30 секунд. Список показывает браузер и систему, сервис толчков, когда было добавлено устройство и когда оно в последний раз получило сообщение; Удалить забывает его (и на устройстве, которое вы используете, отписывает браузер тоже). Устройство, которое сервис толчков сообщает как потерянное (приложение было удалено, данные браузера очищены), удаляется автоматически при следующей отправке.

Что вы видитеЧто делать
Требуется HTTPSОткройте DumbMonit через его адрес HTTPS.
Сначала установить (iPhone, iPad)Поделиться → Добавить на главный экран, открыть из значка.
ЗаблокированоУведомления были отклонены для этого сайта: разрешите их в параметрах сайта браузера (замок в адресной строке, или iOS Параметры → Уведомления → DumbMonit), затем перезагрузите.
Не поддерживаетсяБраузер не имеет Web Push (старая версия, некоторые браузеры конфиденциальности): используйте последний Chrome, Edge, Firefox или Safari.
Тест говорит сервис толчков недоступенСервер не может достичь сервис толчков: проверьте его исходящий HTTPS и DNS.
Тест говорит отклонена подпись VAPIDОбычно неправильные часы сервера; проверьте NTP на хосте.
Ничего не приходит на Android, когда телефон спитОптимизация батареи может задержать браузер: исключите его, или установите Срочность канала на high.
  • Сообщения шифруются для каждого устройства (RFC 8291) перед отправкой сервером: сервис толчков видит только непрозрачный блоб, устройство расшифровывает его.
  • Сервер подписывает каждое сообщение своей собственной парой ключей VAPID (RFC 8292), генерируемой при первом запуске и хранящейся в зашифрованном виде с секретом экземпляра; приватный ключ никогда не возвращается API. Восстановление на новой машине генерирует новую пару ключей: включите толчок снова на каждом устройстве.
  • Адрес подписки поступает из браузера, поэтому сервер принимает только адреса HTTPS на общедоступных IP: приватные, обратной связи и link-local адреса отклоняются, при подписке и снова при каждом подключении.
  • Рабочий процесс обслуживания (/sw.js) только показывает уведомления. Он не кэширует ничего и не перехватывает никаких запросов: интерфейс и API всегда поступают с сервера, никогда из устаревшей копии.