Notific
Планирование и доставка уведомлений через Telegram, MAX, Matrix и SMS: расписания, несколько каналов и история отправок.
О проекте
Notific — серверное приложение для создания уведомлений и их автоматической отправки по расписанию. Одно уведомление можно одновременно доставлять через Telegram, MAX, Matrix и SMS.
- Стек
- PHP · SQLite · JavaScript
- Направление
- Внутренние инструменты
- Год
- 2026
Задача
Для простых напоминаний хватает календаря или мессенджера, но для серверных и служебных задач быстро появляется другая проблема: уведомления нужно отправлять по расписанию, иногда сразу нескольким получателям и через разные каналы, а результат доставки желательно видеть в одном месте.
Отдельные скрипты для Telegram, Matrix, MAX и SMS эту задачу решают, но со временем превращаются в набор несвязанных обработчиков с собственными расписаниями, конфигурацией и логикой ошибок.
Хотелось собрать всё в одно небольшое приложение: создавать уведомление через веб-интерфейс, задавать расписание и нужные каналы, а дальше не думать о том, какой именно скрипт и когда должен сработать.
Реализация
Notific написан на PHP и хранит рабочие данные в SQLite. Веб-интерфейс используется для создания уведомлений, настройки каналов, просмотра истории срабатываний и управления учётной записью.
Поддерживаются одноразовые, интервальные, ежедневные, еженедельные и ежемесячные расписания. Одно уведомление можно привязать сразу к нескольким каналам, поэтому одно событие, например, одновременно уходит в Telegram, MAX, Matrix и по SMS.
Доставка выполняется через отдельную очередь. Для каждой попытки сохраняется результат, время выполнения и техническое состояние. Если после обращения к внешнему сервису нельзя достоверно определить, было ли сообщение принято, отправка не повторяется вслепую, а получает отдельное состояние неопределённого результата.
Для SMS поддерживаются модемы Huawei с классическим HiLink API. Каждый SMS-канал может использовать собственный адрес модема. После подтверждённой отправки приложение находит созданную запись в папке Sent и безопасно удаляет её, чтобы память модема постепенно не заполнялась техническими копиями сообщений.
В приложении есть двухфакторная аутентификация TOTP, коды восстановления, ограничение частоты запросов, защищённые сессии и поддержка доверенных сетей и обратных прокси-серверов.
Фоновые задачи можно запускать через systemd, а для Nginx, PHP-FPM, Fail2Ban и logrotate в репозитории есть готовые примеры конфигурации.
Результат
Получилось единое место для уведомлений, которые раньше пришлось бы реализовывать отдельными скриптами и расписаниями.
Сейчас через один интерфейс можно создать напоминание, выбрать несколько способов доставки и затем увидеть фактический результат каждого отправленного сообщения. При этом приложение не привязано к одному мессенджеру: каналы независимы друг от друга и могут использоваться одновременно.
Notific работает на моём домашнем сервере как отдельный сервис. Через него можно отправлять как обычные личные напоминания, так и технические уведомления от собственной инфраструктуры.
Проект опубликован как самостоятельное приложение с исходным кодом, документацией по установке, архитектуре и безопасности.