Связаться
  • OpenCart
  • WordPress
  • CRM и интеграции
  • v1.0.1

Storepulse — монитор магазина с оповещениями в Telegram

Отдельное PHP-приложение, которое следит за вашим магазином снаружи и пишет в Telegram, когда тот упал. Распознаёт ошибку базы данных, Fatal error и белую страницу даже при коде 200. Free — 2 монитора без ограничения по времени, Pro — без лимитов, SSL, отчёты, страница статуса.

Скачать Free
Pro · лицензия на год Чем больше сайтов, тем дешевле каждый
Pro для OpenCart 890 грн навсегда
Совместимость
PHP 7.4+ · любой хостинг с кроном · без базы данных
Лицензия
один сайт, годовая
Триал
7 дней, без карты, один на сайт
Или все 144 Pro-модулей в All Access — 4 990 ₴ / год

Что есть во Free,
а что даёт Pro

Бесплатная версия работает без ограничения по времени. Pro добавляет остальные функции из таблицы.

Функция Free Pro
Распознавание ошибок магазина при коде 200: база WordPress и OpenCart, Fatal error, заглушка хостинга, парковка домена ✔ ✔
Подтверждение падения повторной проверкой — без ложных тревог на один потерянный пакет ✔ ✔
Оповещение в Telegram с причиной человеческим языком и подсказкой, что делать ✔ ✔
Сообщение о восстановлении с длительностью простоя ✔ ✔
Контроль ключевого слова на странице и минимального размера ответа ✔ ✔
Тревога, если магазин редиректит на чужой домен (перехваченный DNS или взлом) ✔ ✔
Журнал событий: падение, восстановление, медленный ответ, SSL, простой крона ✔ ✔
Отдельное оповещение, если молчит сам мониторинг — крон не отработал ✔ ✔
Панель с аптаймом за 24 часа, 7 и 30 дней и графиком времени ответа ✔ ✔
Интерфейс и оповещения на украинском, русском и английском ✔ ✔
Работает без базы данных, composer и сторонних зависимостей ✔ ✔
Мониторов 2 без ограничений
Минимальный интервал проверки 5 мин 1 мин
Чатов Telegram 1 несколько чатов и тем
Контроль срока действия SSL-сертификата — ✔
Тревога на медленный ответ страницы — ✔
Напоминания, пока магазин лежит — ✔
Тихие часы и технические окна — ✔
Ежедневный отчёт в Telegram — ✔
Команды боту /status, /pause, /resume — ✔
Публичная страница статуса по секретному адресу — ✔
Дублирование оповещений на e-mail — ✔
Внешний heartbeat — контроль того, что крон жив — ✔

Как это выглядит

Панель Storepulse: четыре монитора магазина, один недоступен с объяснением причины
Панель: каждый монитор — отдельная карточка со статусом, временем ответа, кодом, остатком дней SSL, графиком последних проверок и аптаймом за 24 часа, 7 и 30 дней. У карточки, которая лежит, сразу видно причину и сколько уже длится простой.
Настройки монитора: ожидаемые коды, ожидаемый домен, ключевое слово, распознавание ошибок магазина
Настройки монитора. Кроме кодов — ожидаемый домен (защита от перехваченного DNS), слово, которое должно быть на странице, слово, которого быть не должно, минимальный размер страницы и переключатель распознавания ошибок магазина в тексте ответа.
Журнал событий Storepulse: падение, восстановление, медленный ответ, SSL, простой крона
Журнал событий: падение с причиной и подсказкой, восстановление с длительностью простоя, медленный ответ, предупреждение об SSL и отдельным типом — «Крон не работал».

Главное о модуле

🔴 Главное: ставить не на сервер магазина

Это самая частая ошибка, из-за которой мониторинг молчит именно тогда, когда он нужен.

Чем это отличается от UptimeRobot

Обычные мониторы проверяют HTTP-код. Но код 200 ≠ «магазин работает»: страница может отдавать 200 и показывать покупателю ошибку базы данных, белый экран или заглушку хостинга.

Что приходит в Telegram

В сообщении не сухой код ошибки, а причина человеческим языком и версия, что с этим делать.

Триал стартует, когда вы попросите

Свежая установка — бесплатная версия, ничего не включается само. Кнопка «Попробовать Pro 7 дней» → e-mail → ключ сразу в окне и письмом.

Один ключ — один сайт

Переносите магазин — отвяжите лицензию на старом домене и активируйте на новом сами. Если наш сервер недоступен, Pro работает ещё 14 дней. Для студий — ключи на 5, 25 сайтов или без ограничений.

Технические требования

  • PHP 7.4 или новее (проверено на 7.4.33 и 8.3.31);
  • права на запись в папку приложения и в data/;
  • cURL (без него работает через file_get_contents);
  • OpenSSL — чтобы токен бота и ключ лицензии хранились зашифрованными;
  • крон каждую минуту; если крона нет — внешний пингер на URL с токеном;
  • базы данных не нужно: ни MySQL, ни composer, ни зависимостей.

История версий

v1.0.1 Текущая

Часовой пояс Europe/Kyiv есть только в tzdata 2022b+, поэтому на PHP 7.4 и 8.0 каждый запрос сыпал notice и ломал сессию и редиректы; теперь неизвестный идентификатор подменяется своим…

v1.0.0

Первый выпуск: HTTP-проверки витрины, корзины, чекаута и админки от 1 минуты; распознавание ошибок магазина при коде 200; оповещения в Telegram с подсказкой; подтверждение падения повторной…

Вместе с Storepulse покупают

4 модуля одним заказом — на 40% дешевле, чем по отдельности

Набор «Старт магазина» Storepulse Nova Poshta Premium LiqPay Telegram-уведомления и Viber/SMS покупателям Нужно больше — все 144 модулей в All Access за 4 990 ₴.
3 490 ₴ / год вместо 5 860 ₴ поштучно
Купить набор →

Полное описание модуля

Storepulse — монитор доступности интернет-магазина с оповещениями в Telegram. Это не плагин, а отдельное PHP-приложение: вы ставите его на свой хостинг, и оно следит за магазином снаружи. Каждую минуту оно открывает ваши страницы так же, как это делает покупатель, и когда магазин перестаёт работать — пишет в Telegram: что именно сломалось, когда и что с этим делать.

🔴 Главное: ставить не на сервер магазина

Это самая частая ошибка, из-за которой мониторинг молчит именно тогда, когда он нужен. Если монитор стоит на том же хостинге, что и магазин, то вместе с магазином падает и он — оповещать уже некому. Именно поэтому Store Uptime сделан отдельным приложением, а не плагином для WooCommerce или OpenCart: плагин внутри магазина физически не может сообщить, что магазин недоступен.

Ставьте его на любой другой хостинг: дешёвый shared-аккаунт, поддомен другого проекта, VPS. Ресурсов он почти не ест — нужны только PHP и крон. Об этом прямо написано в инсталляторе и в readme архива.

Чем это отличается от UptimeRobot

Обычные мониторы проверяют HTTP-код. Но код 200 ≠ «магазин работает»: страница может отдавать 200 и показывать покупателю ошибку базы данных, белый экран или заглушку хостинга. Store Uptime смотрит на то, что видит покупатель, и распознаёт в теле ответа:

  • ошибку базы данных WordPress («Error establishing a database connection») и OpenCart;
  • Fatal error, Parse error и критическую ошибку WordPress при коде 200;
  • «Account Suspended», превышение лимитов хостинга, Resource Limit;
  • заглушку припаркованного домена — то есть домен, который закончился;
  • белую страницу: пустой ответ или резкое падение размера ниже порога;
  • редирект на чужой домен — признак перехваченного DNS или взлома;
  • исчезновение нужного слова на странице («Корзина», «Оформить заказ»);
  • режим техобслуживания, который кто-то забыл выключить;
  • листинг каталога вместо страницы магазина.

Плюс две вещи, которых у «классических» мониторов нет вообще. Первая: падение подтверждается повторной проверкой через несколько секунд, так что один потерянный пакет не поднимет вас ночью. Вторая: отдельно ловится простой самого мониторинга — если крон молчал больше 30 минут, это событие и сообщение, а не фальшивые «100% аптайма».

Что приходит в Telegram

В сообщении не сухой код ошибки, а причина человеческим языком и версия, что с этим делать. Например:

  • «Код 200, но на странице ошибка базы данных. Подсказка: похоже на исчерпанный лимит соединений MySQL — вопрос к хостингу»;
  • «Пустой ответ (белая страница). Подсказка: похоже на свежее обновление плагина или темы»;
  • «Магазин снова отвечает. Простой: 14 мин» — после восстановления;
  • «Крон молчал 2 ч 14 мин — за это время магазин никто не проверял».

С Pro боту можно и писать: /status возвращает сводку по всем мониторам, /pause и /resume выключают и включают проверки — удобно перед плановыми работами.

Как это работает шаг за шагом

  1. Распаковали архив в папку на хостинге не с магазином и открыли её в браузере.
  2. Инсталлятор проверил требования, попросил логин, пароль, язык и часовой пояс — и создал config.php.
  3. В «Настройки → Telegram» вставили токен бота и chat_id, нажали «Отправить тестовое сообщение» и убедились, что оповещение дошло.
  4. Добавили монитор: адрес страницы, интервал и слово, которое должно быть на рабочей странице.
  5. Добавили крон каждую минуту — с этого момента проверки идут сами.
  6. Магазин упал → проверка не прошла → монитор проверяет ещё раз через 20 секунд → подтвердилось → в Telegram летит оповещение с причиной. Магазин поднялся → приходит сообщение о восстановлении с длительностью простоя.

Что под капотом

Хранилище — JSON-файлы с flock: кольцевой буфер результатов на каждый монитор плюс дневные агрегаты, поэтому «аптайм за 30 дней» остаётся правдивым даже при минутном интервале. Одновременные запуски крона разводит tick.lock — двойных оповещений не бывает. Сигнатуры ошибок ищутся в первых 20 000 символов тела ответа. Панель закрыта отдельным логином, 5 неудачных попыток блокируют форму на 15 минут. Папка data/ закрыта .htaccess, для nginx сниппет есть в readme. Интерфейс и оповещения — на украинском, русском и английском.

Как установить

  1. Скачайте архив кнопкой вверху страницы.
  2. Распакуйте его в папку на хостинге, который не обслуживает ваш магазин — например /uptime/ на поддомене.
  3. Откройте этот адрес в браузере и пройдите инсталлятор.
  4. Настройте Telegram и добавьте первый монитор.
  5. Добавьте задание крона: * * * * * /usr/bin/php /путь/к/uptime/cron.php >/dev/null 2>&1

Обновление — замена файлов приложения; config.php и data/ не трогаются, настройки и история остаются.

Вопросы
о модуле

Не нашли ответ? Напишите в Telegram — ответим в течение рабочего дня.

@catcode_support Настройка, совместимость, активация
Это плагин для WooCommerce или OpenCart?

Нет. Это отдельное PHP-приложение, которое ставится на хостинг и следит за магазином снаружи. Плагин внутри магазина падает вместе с ним и не успевает ничего отправить — поэтому плагином это сделать невозможно в принципе. Магазин при этом может быть любой: WooCommerce, OpenCart, Хорошоп, самописный.

Почему нельзя поставить его рядом с магазином?

Потому что тогда при падении сервера замолчит и монитор — и вы узнаете о простое от покупателей. Ставьте на любой другой хостинг: ресурсов нужно минимум, хватает самого дешёвого shared-аккаунта с PHP и кроном.

Чем это лучше UptimeRobot?

UptimeRobot смотрит на HTTP-код. Магазин может отдавать код 200 и показывать покупателю ошибку базы данных, белую страницу или заглушку хостинга — для обычного монитора это «всё хорошо». Store Uptime читает тело страницы, распознаёт такие случаи и пишет в оповещении не код, а причину и подсказку.

Что нужно на хостинге?

PHP 7.4 или новее, права на запись в папку приложения и крон каждую минуту. Базы данных не нужно — данные лежат в JSON-файлах. Если крона на хостинге нет, в разделе «Крон» есть URL с токеном для внешнего пингера.

Сколько магазинов можно мониторить из одной копии?

В Free — два монитора (это могут быть две страницы одного магазина или два разных магазина), в Pro ограничения нет. Лицензия привязывается к копии приложения, а не к количеству магазинов.

У меня магазин на OpenCart — какая лицензия?

Навсегда: 890 ₴ один раз, без срока и продлений. Покупается кнопкой «Купить для OpenCart». Лицензия на 1–5 лет — только для WooCommerce / WordPress.

Что будет, когда лицензия закончится?

Это о годовой лицензии WooCommerce / WordPress — у OpenCart срока нет. Приложение продолжит работать и слать оповещения, Pro-функции (интервал 1 минута, дополнительные чаты, SSL, тихие часы, отчёт, страница статуса) тоже остаются — прекращаются только обновления и поддержка. Free-режим без ограничения по времени.

Можно ли попробовать Pro до покупки?

Да, 7 дней. Триал включается кнопкой в «Настройки → Лицензия», карта не нужна.

Не тот вариант, что искали?

Делаем кастомные модули под WordPress, WooCommerce, OpenCart и Shopify. Расскажите о задаче — подготовим оценку.

Заказать кастомный модуль