Get in touch
  • OpenCart
  • WordPress
  • CRM and integrations
  • v1.0.1

Storepulse — store monitor with Telegram alerts

A standalone PHP application that watches your store from the outside and writes to Telegram when it goes down. It detects a database error, a Fatal error and a blank page even when the status code is 200. Free — 2 monitors with no time limit; Pro — no limits, SSL, digests, status page.

Download Free
Pro · one-year licence The more sites, the less each one costs
Pro for OpenCart 890 UAH lifetime
Compatibility
PHP 7.4+ · any hosting with cron · no database
Licence
one site, annual
Trial
7 days, no card, one per site
Or all 144 Pro modules with All Access — 4 990 ₴ / year

What Free has,
and what Pro adds

The free version works with no time limit. Pro adds the rest of the features in the table.

Feature Free Pro
Store-error detection at status code 200: WordPress and OpenCart database errors, Fatal error, hosting stub, parked domain ✔ ✔
Failure confirmed by a second check — no false alarms from one lost packet ✔ ✔
Telegram alert with the reason in plain language and a hint about what to do ✔ ✔
Recovery message with the outage duration ✔ ✔
Keyword check on the page and a minimum response size ✔ ✔
Alarm when the store redirects to a foreign domain (hijacked DNS or a breach) ✔ ✔
Event log: outages, recoveries, slow responses, SSL, cron gaps ✔ ✔
Separate alert when the monitoring itself goes silent — cron did not run ✔ ✔
Dashboard with uptime for 24 hours, 7 and 30 days and a response-time chart ✔ ✔
Interface and alerts in Ukrainian, Russian and English ✔ ✔
Runs without a database, composer or third-party dependencies ✔ ✔
Monitors 2 unlimited
Minimum check interval 5 min 1 min
Telegram chats 1 several chats and topics
SSL certificate expiry control — ✔
Slow page response alarm — ✔
Reminders while the store stays down — ✔
Quiet hours and maintenance windows — ✔
Daily digest in Telegram — ✔
Bot commands /status, /pause, /resume — ✔
Public status page at a secret address — ✔
Alert duplication by e-mail — ✔
External heartbeat — proof that cron is alive — ✔

What it looks like

Storepulse dashboard: four store monitors, one down with the reason explained
The dashboard: every monitor is a card with its status, response time, status code, days left on the SSL certificate, a chart of recent checks and uptime for 24 hours, 7 and 30 days. A card that is down shows the reason and how long the outage has lasted.
Monitor settings: expected codes, expected domain, keyword, store error detection
Monitor settings. Besides status codes there is the expected domain (protection against hijacked DNS), a word that must be on the page, a word that must not be there, a minimum page size and the switch for detecting store errors in the response text.
Storepulse event log: down, recovery, slow response, SSL, cron gap
The event log: an outage with its reason and a hint, a recovery with the outage duration, a slow response, an SSL warning and, as a separate type, “cron was not running”.

Key points

How it differs from UptimeRobot

Ordinary monitors check the HTTP status code. But 200 does not mean “the store works”: a page can return 200 and still show the shopper a database error, a blank screen or a hosting stub.

What arrives in Telegram

The message carries not a dry error code but a reason in plain language and a theory about what to do.

How much it costs

Free — free forever: 2 monitors, a 5-minute interval, 1 Telegram chat, the full store-error detection, the event log and the retry before an alert.

The trial starts when you ask

A fresh install is the free version, nothing switches on by itself. The “Try Pro for 7 days” button → e-mail → the key right in the window and by e-mail.

One key — one site

Moving the store? Unbind the licence on the old domain and activate it on the new one yourself. If our server is unreachable, Pro keeps working for 14 more days. For studios — keys for 5 or 25 sites, or unlimited.

Technical requirements

  • PHP 7.4 or newer (tested on 7.4.33 and 8.3.31);
  • write access to the application folder and to data/;
  • cURL (without it, it falls back to file_get_contents);
  • OpenSSL — so that the bot token and the licence key are stored encrypted;
  • cron every minute; if the host has no cron, an external pinger on the tokenised URL;
  • no database required: no MySQL, no composer, no dependencies.

Version history

v1.0.1 Current

The Europe/Kyiv time zone only exists in tzdata 2022b and newer, so on PHP 7.4 and 8.0 every request emitted a notice and broke the session and the redirects; an unknown identifier is now…

v1.0.0 First release

HTTP checks of the storefront, cart, checkout and admin from 1 minute; store-error detection at status code 200; Telegram alerts with a hint; failure confirmation by a second check; SSL…

Frequently bought with Storepulse

4 modules in one order — 40% cheaper than separately

“Store starter” bundle Storepulse Nova Poshta Premium LiqPay Telegram notifications and Viber/SMS for customers Need more — all 144 modules in All Access for 4 990 ₴.
3 490 ₴ / year instead of 5 860 UAH bought separately
Buy the bundle →

Full module description

Storepulse is an uptime monitor for your online store with alerts in Telegram. It is not a plugin — it is a standalone PHP application you install on your own hosting, and it watches the store from the outside. Every minute it opens your pages the same way a shopper does, and when the store stops working it writes to Telegram: what exactly broke, when, and what to do about it.

🔴 The main rule: do not install it on the store’s server

This is the most common mistake that makes monitoring go silent exactly when you need it. If the monitor sits on the same hosting as the store, it goes down together with the store — and there is nobody left to send the alert. That is why Store Uptime is a separate application and not a WooCommerce or OpenCart plugin: a plugin inside the store physically cannot report that the store is unreachable.

Put it on any other hosting: a cheap shared account, a subdomain of another project, a VPS. It barely uses any resources — all it needs is PHP and cron. The installer and the readme inside the archive say this explicitly.

How it differs from UptimeRobot

Ordinary monitors check the HTTP status code. But 200 does not mean “the store works”: a page can return 200 and still show the shopper a database error, a blank screen or a hosting stub. Store Uptime looks at what the shopper sees and recognises in the response body:

  • the WordPress database error (“Error establishing a database connection”) and the OpenCart one;
  • Fatal error, Parse error and the WordPress critical error served with code 200;
  • “Account Suspended”, hosting limits exceeded, Resource Limit;
  • a parked-domain stub — in other words, a domain that has expired;
  • a blank page: an empty response or a sharp drop in size below the threshold;
  • a redirect to a foreign domain — a sign of hijacked DNS or a breach;
  • a keyword disappearing from the page (“Cart”, “Checkout”);
  • maintenance mode that someone forgot to switch off;
  • a directory listing instead of the store page.

Plus two things classic monitors do not have at all. First: a failure is confirmed by a second check a few seconds later, so one lost packet will not wake you up at night. Second: downtime of the monitoring itself is caught separately — if cron stayed silent for more than 30 minutes, that is an event and a message, not a fake “100% uptime”.

What arrives in Telegram

The message carries not a dry error code but a reason in plain language and a theory about what to do. For example:

  • “Code 200, but the page shows a database error. Hint: looks like the MySQL connection limit is exhausted — a question for the host”;
  • “Empty response (blank page). Hint: looks like a fresh plugin or theme update”;
  • “The store responds again. Downtime: 14 min” — after a recovery;
  • “Cron was silent for 2 h 14 min — nobody checked the store during that time”.

With Pro you can also write to the bot: /status returns a summary of every monitor, /pause and /resume turn the checks off and on — handy before planned maintenance.

How it works, step by step

  1. You unpack the archive into a folder on hosting that does not run your store and open it in a browser.
  2. The installer checks the requirements, asks for a login, password, language and time zone, and writes config.php.
  3. In “Settings → Telegram” you paste the bot token and the chat_id, press “Send a test message” and confirm the alert arrives.
  4. You add a monitor: the page URL, the interval and a word that must be present on a working page.
  5. You add a cron job every minute — from that moment the checks run by themselves.
  6. The store goes down → the check fails → the monitor retries 20 seconds later → the failure is confirmed → an alert with the reason flies to Telegram. The store comes back → a recovery message arrives with the outage duration.

How much it costs

Free — free forever: 2 monitors, a 5-minute interval, 1 Telegram chat, the full store-error detection, the event log and the retry before an alert.

Pro — 890 UAH per year for one copy of the application. A longer term is cheaper: 2 years — 1690 UAH, 3 years — 2350 UAH, 4 years — 2920 UAH, 5 years — 3340 UAH. There are no automatic charges; renewal is manual, with reminders by e-mail 14, 7, 3 and 1 day before the end. When the term expires the application and its Pro features keep running — only updates and support stop.

OpenCart stores get a lifetime licence. For OpenCart, Pro costs 890 UAH once: no term, no renewals, no reminders. It has its own “Buy for OpenCart” button. The yearly licence with a 1–5 year choice applies to WooCommerce / WordPress.

Before buying there is a 7-day Pro trial: one button in “Settings → Licence”, no card required.

Under the hood

Storage is JSON files with flock: a ring buffer of results per monitor plus daily rollups, so “uptime over 30 days” stays true even on a one-minute interval. Concurrent cron runs are separated by tick.lock — no duplicate alerts. Error signatures are searched in the first 20,000 characters of the response body. The panel has its own login, and 5 failed attempts lock the form for 15 minutes. The data/ folder is closed with .htaccess, and the readme has an nginx snippet. The interface and the alerts are available in Ukrainian, Russian and English.

How to install

  1. Download the archive with the button at the top of this page.
  2. Unpack it into a folder on hosting that does not serve your store — for example /uptime/ on a subdomain.
  3. Open that address in a browser and go through the installer.
  4. Set up Telegram and add your first monitor.
  5. Add the cron job: * * * * * /usr/bin/php /path/to/uptime/cron.php >/dev/null 2>&1

Updating means replacing the application files; config.php and data/ are left alone, so settings and history survive.

Questions
about the module

Didn't find the answer? Message us on Telegram and we'll reply within a business day.

@catcode_support Setup, compatibility, activation
Is this a WooCommerce or OpenCart plugin?

No. It is a standalone PHP application installed on hosting that watches the store from the outside. A plugin inside the store goes down together with it and never gets to send anything — so a plugin simply cannot do this job. The store itself can be anything: WooCommerce, OpenCart, a hosted platform or a custom build.

Why can it not sit next to the store?

Because then the monitor goes silent when the server fails, and you learn about the outage from your customers. Install it on any other hosting: it needs very little, and the cheapest shared account with PHP and cron is enough.

Why is it better than UptimeRobot?

UptimeRobot looks at the HTTP status code. A store can return 200 and still show the shopper a database error, a blank page or a hosting stub — to an ordinary monitor that is "all good". Store Uptime reads the page body, recognises those cases and puts the reason and a hint into the alert instead of a bare code.

What does the hosting need?

PHP 7.4 or newer, write access to the application folder and a cron job every minute. No database is required — the data lives in JSON files. If the host has no cron, the "Cron" section gives you a tokenised URL for an external pinger.

How many stores can one copy monitor?

Free gives two monitors (two pages of one store, or two different stores); Pro has no limit. The licence is bound to the copy of the application, not to the number of stores.

My store runs on OpenCart — which licence do I get?

A lifetime one: 890 UAH once, with no term and no renewals. Use the “Buy for OpenCart” button. The 1–5 year licence is for WooCommerce / WordPress only.

What happens when the licence expires?

This is about the yearly WooCommerce / WordPress licence — OpenCart has no term. The application keeps running and sending alerts, and the Pro features (the 1-minute interval, extra chats, SSL, quiet hours, the digest and the status page) stay on — only updates and support stop. The free mode has no time limit.

Can I try Pro before buying?

Yes, for 7 days. The trial starts with one button in "Settings → Licence", and no card is required.

Not quite what you are looking for?

We build custom modules for WordPress, WooCommerce, OpenCart and Shopify. Tell us about the task and we'll prepare an estimate.

Order a custom module