Kaizen Official Group

A monitoring panel inside Telegram

Servers, services and incidents open with a button in the chat — the same place the alerts already arrive. I built it for myself; it has been running in production since 31 August 2026.

Screens

Four screens, switched from the bottom bar

Overview screen: three active incidents, one critical, public endpoint availability and server load
Overview: what is on fire right now
Servers screen: CPU, memory and disk for each server
Servers: CPU, memory, disk
Services screen: the state of each service and its restarts for the day
Services: state and restarts
Incident screen: cause, impact, triggering condition, the steps to check and the “Acknowledge” and “Silence for 1 h” buttons
Incident: cause, impact, what to do
The task
Looking at a dashboard from a phone is awkward: a browser, a login, a lot of pinching. The alerts already arrive in Telegram, so the state belongs there too.
What I did
A Mini App inside the bot that already existed: overview, servers, services, incidents. An incident can be acknowledged or silenced for an hour — the same actions the bot already had in its messages, so there is no second set of rules. The page never talks to the monitoring stack directly: a small backend sits in between and returns only what the screen needs.
Security
Every request is verified on the server: without a genuine signature from Telegram the API refuses. Access is limited to an allowlist, which currently holds one person — me. No keys and no internal addresses live in the page code; a single address of the panel itself is published, and the internal notification endpoint stayed closed.
How I verified it
Automated tests before the rollout — three hundred and eighty checks, including a forged, an expired and a missing signature. After the rollout, a synthetic incident: it was delivered, shown in the panel and closed.
Where it stands
Rolled out on 31 August 2026 and running since, with no container restarts. The rollback was prepared in advance and comes down to one environment variable.

Honestly

What this case does not prove

This is my own infrastructure, not a client engagement. I do not present it as client work and I do not show logos I do not have.

The numbers on the screens are made up: the shots were taken in the product’s demo mode, and the screens say so themselves. That shows the interface without showing anyone’s real data — mine or a client’s.

All write-ups

Want the same view of your systems — in Telegram or in a dashboard?