Зв'язатись
  • 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 Mono Acquiring Telegram-сповіщення і Viber/SMS покупцям Потрібно більше — усі 144 модулі в All Access за 4 990 ₴.
2 390 ₴ / рік замість 4 060 ₴ поштучно
Купити набір →

Повний опис модуля

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. Розкажіть про задачу — підготуємо оцінку.

Замовити кастомний модуль