Веб-уведомления (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, который вы используете: он дается сервисам толчков как контакт отправителя, и это адрес, на который указывают ссылки в других каналах.
Включить на телефоне или компьютере
Заголовок раздела «Включить на телефоне или компьютере»Android, Windows, macOS, Linux
Заголовок раздела «Android, Windows, macOS, Linux»- Откройте DumbMonit в Chrome, Edge, Firefox или Safari и войдите.
- Необязательно: установите его как приложение (адресная строка → Установить, или меню браузера → Добавить на главный экран). Уведомления работают в любом случае.
- Параметры → Веб-уведомления → Включить на этом устройстве, и разрешить уведомления, когда браузер спрашивает.
- Отправить тест. Уведомление DumbMonit — тестовое уведомление должно появиться в течение нескольких секунд.
iPhone и iPad
Заголовок раздела «iPhone и iPad»Apple дает толчок только сайтам, добавленным на главный экран (iOS и iPadOS 16.4 или новее):
- Откройте DumbMonit в Safari.
- Поделиться → Добавить на главный экран, затем откройте DumbMonit из нового значка.
- Войдите, затем Параметры → Веб-уведомления → Включить на этом устройстве, и разрешить уведомления.
- Отправить тест.
В 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 всегда поступают с сервера, никогда из устаревшей копии.