Все проекты

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 работает на моём домашнем сервере как отдельный сервис. Через него можно отправлять как обычные личные напоминания, так и технические уведомления от собственной инфраструктуры.

Проект опубликован как самостоятельное приложение с исходным кодом, документацией по установке, архитектуре и безопасности.