Генерация оповещений от домашней лаборатории и связанных с ней сервисов долгое время осуществлялась через Proxmox. Это решение было самым простым, встроенным в операционную систему и покрывающим базовые потребности. Система генерировала событие уведомления, оформляла его в виде письма и передавала Postfix, который доставлял сообщение менее чем за секунду. Однако именно в этом и заключалась главная проблема: электронная почта оказалась не самым оптимальным способом доставки важных сообщений.

Хотя почтовый сервер работает практически без задержек, а Postfix на хосте Proxmox передает сообщение мгновенно, все последующие этапы приводят к пропущенным инцидентам. Письмо оседает во входящих до тех пор, пока мобильный клиент его не получит. Настоящая сложность заключается в том, что такое уведомление легко затеряться среди других писем. Кроме того, электронная почта сглаживает уровень критичности на первый взгляд. Хотя встроенная система уведомлений Proxmox присваивает событиям статус информации, уведомления, предупреждения, ошибки или неизвестного состояния, вся эта градация скрыта внутри самого письма.
Интеграция ntfย и возможности Proxmox VE
После переработки системы уведомлений Proxmox VE разделяет цели и сопоставители, а одним из поддерживаемых типов целей выступает простой веб-хук — настраиваемый URL-адрес с методом, заголовками и телом. Официальная документация упоминает сервер ntfy по имени, что подчеркивает их отличную совместимость. Ntfy представляет собой pub-sub сервер уведомлений с HTTP-интерфейсом, где отправка запроса POST на определенный топик рассылает push-сообщение всем подписчикам.

В формате саморазворачивающегося решения ntfy представляет собой единый бинарный файл Go, пакет deb и один конфигурационный файл YAML, который помещается в контейнер LXC с 512 МБ оперативной памяти. Это решает структурную проблему электронной почты, разделяя каналы по уровням срочности. Например, сбои резервного копирования могут транслироваться через режим Focus Mode на смартфоне с максимальным приоритетом, тогда как доступные обновления пакетов откладываются на потом.

Ограничения локального размещения и использование VPS
Если сервер Proxmox выключается из-за аппаратного сбоя или отключения электроэнергии, у него нет возможности сообщить об этом, так как система отправляет уведомления только о бэкапах, репликациях, обновлениях и других штатных событиях. Поскольку экземпляр ntfy запущен на самом хосте, при выключении оборудования контейнер также прекращает работу.

Существуют и другие нюансы, в частности при взаимодействии с устройствами на базе iOS. Чтобы настроить связь гаджета Apple с саморазворачиваемым сервером ntfy, требуется настроить восходящую пересылку, при которой запрос опроса проходит через ntfy.sh к сервису APNs, после чего смартфон забирает реальное сообщение с вашего сервера. Это отличие от ОС Android влияет на скорость доставки.

Для надежного мониторинга состояния оборудования требуется удаленная машина. Простой виртуальный сервер VPS решает эту задачу: настройка push-монитора в Uptime Kuma занимает около двух минут. Uptime Kuma отслеживает работоспособность системы, а параллельно запущенный ntfy отправляет уведомления о простоях.

В итоге традиционная электронная почта сохранена в Proxmox в качестве резервного канала для анализа прошлых событий, но оперативное информирование о неполадках полностью делегировано связке ntfy и Uptime Kuma.

Трудности с доставкой почтовых уведомлений
Хотя почтовый сервер доставляет сообщения очень быстро, дальнейший путь письма до пользователя оказывается уязвимым для пропусков. Письмо ожидает в инбоксе, пока мобильное приложение его не загрузит. Если поверх уведомления от Proxmox придет еще пара писем, вероятность того, что сообщение привлечет внимание, стремительно падает. Структура электронной почты скрывает критичность проблемы: в самом интерфейсе Gmail отображается лишь стандартное уведомление без какого-либо понимания того, насколько срочно требуется вмешательство администратора.

Важные нюансы работы ntfy на iOS
Существуют небольшие технические caveats при использовании связки self-hosted сервера ntfy с мобильными устройствами. Поскольку автор использует iPhone на базе iOS, для получения пушей от собственного сервера необходимо задействовать upstream-пересылку. В этом случае запрос опроса отправляется через публичный сервис ntfy.sh в сторону Apple Push Notification service (APNs), после чего сам смартфон подтягивает реальный текст сообщения с домашнего сервера. Для Android такая процедура не требуется, однако на iOS разница между корректной настройкой редиректа и его отсутствием может означать получение уведомления мгновенно или спустя долгие часы ожидания.

Организация внесистемного мониторинга
Для полноценного контроля работоспособности домашней лаборатории автор вынес мониторинг за пределы основной инфраструктуры. Размещение ntfy и Uptime Kuma на арендованном недорогом VPS (или на одноплатном компьютере у родственников) позволяет выполнять базовую проверку сердцебиения (heartbeat). Uptime Kuma непрерывно следит за состоянием хоста, а запущенный на той же удаленной машине ntfy мгновенно шлет оповещения в случае любых простоев.







