Пуш-уведомления для homelab: ntfy и монитор своими руками
Когда сервисов на своём железе становится много, рано или поздно ловишь себя на мысли: «а я вообще узна́ю, если что-то упадёт?». Я не хотел зависеть от внешних сервисов уведомлений, поэтому поднял свой пуш-сервер и написал к нему монитор. Теперь телефон сам сообщает, если в homelab что-то не так.
Пуш-сервер на ntfy
В основе — ntfy: лёгкий self-hosted сервер уведомлений. Приложение на телефоне подписывается на тему, а любой мой скрипт может прислать туда сообщение обычным HTTP-запросом. Наружу он смотрит через реверс-прокси с авторизацией и фильтрацией трафика — без открытых портов «в чистую».
Главный принцип: уведомление приходит, только когда статус поменялся. Никакого спама «всё ок» каждые две минуты — лишь переход «сломалось» и «восстановилось».
Что именно отслеживает монитор
Небольшой bash-скрипт по таймеру systemd проверяет здоровье инфраструктуры:
- Docker-контейнеры (которые должны быть подняты, но лежат);
- свободное место на дисках и нагрузку/память;
- сроки TLS-сертификатов и регистрации доменов — заранее, чтобы ничего не протухло;
- доступность ключевых эндпоинтов и внешних VPS;
- ошибки ядра, новые устройства в локальной сети, состояние бэкапов.
Почему так, а не «облачный мониторинг»
Это полностью моё: ноль зависимости от чужих SaaS, данные никуда не утекают, а логика тревог — ровно та, что нужна мне. Добавить новую проверку — это несколько строк в скрипт, а не настройка очередного дашборда.
Итог
Получилась простая, но честная система раннего предупреждения: если контейнер упал, диск заполнился или у домена кончается срок — я узнаю об этом первым, прямо в кармане. Для homelab этого более чем достаточно.