Спешу сообщить вам, дорогие друзья, что на днях я выпустил в интернет свирепых Ботопотамов. Рассказываю, как так вышло.

Как-то зимой я баловался телеграм-ботами и решил написать один, который бы для меня мониторил сайты, писал мне в телегу если что, а также принимал произвольные сообщения и перенаправлял в чатик. Похожиие функции у меня когда-то были в слаке, но со слаком случилось известно что и всё прикрыть. Захотел сделать аналог в телеграме. В общем, в свободное время стал писать бота с админкой и заодно обнаружил, что если писать админку правильно, то она сгодится как для одного бота, так и для множества разных ботов. И писать сразу стало интереснее.

В общем, закончил промежуточную версию и решил для разнообразия сразу выложить результаты, а не вылизывать их еще три года. Сайт проекта называется Botopotamus.ru. Веб-часть выглядит примерно как на приложенной картинке.

А чат с ботом в телеграме выглядит как другие чаты с ботами в телеграме.

Первого бота зовут Botopotamus Monitor Bot и он умеет следующие вещи:

✔️ мониторит заданный список сайтов (посредством обращения по указанному адресу);

✔️ отправляет сообщение в телеграм, если сайт вернул ошибку, завис, или недоступен;

✔️ сохраняет пинг, с которым загрузился сайт;

✔️ ведет небольшую статистику аптайма, строит графики за последнюю неделю, хранит измерения за 30 дней;

✔️ выводит графики в личном кабинете на сайте, а небольшое summary по аптайму — прямо в чат;

✔️ генерирует (в чате или на сайте) ключик авторизации для отправки уведомлений;

✔️ принимает запросы, авторизованные этим ключиком, и отправляет сообщения из этих запросов в чат. То есть позволяет отправлять из других программ уведомления в телеграм о чем угодно.

Решение не очень сложное, это не аптаймробот и не кума, но вполне рабочее. Сам пользуюсь уже пару недель.

Если не хотите получать уведомления от моего ботопотама, можно добавить реквизиты своего. Тогда он будет мониторить и отправлять уведомления сам. Но эта опция пока заблокирована, предполагается что она будет частью платного тарифа за сколько-нибудь денег, а тариф еще не включен. Но вручную, если что, подключить можно.

Чтобы начать пользоваться ботопотамами, нужно зарегистрироваться на сайте и в профиле указать никнейм или id в телеграме. Регистрацию через ТГ еще не прикрутил, но сделаю, без неё немного странно.

В ближайшем будущем предполагаю для платформы несколько направлений развития:

1️⃣ использовать бэкэнд для быстрого прикручивания к заказным ботам (с передачей кода платформы);

2️⃣ добавить поддержку Max, на всякий случай. API там похожее а боты уже давно работают;

3️⃣ развить функции мониторинга сайтов, чтобы было поудобней и поинтересней, например добавить проверку сертификатов;

4️⃣ добавить полезных технических плюшек;

5️⃣ выпустить еще несколько ботопотамов, и закрытого, и общедоступного толка.

Примерно так. Заходите в гости к Ботопотамам, если интересно, задавайте вопросы, постараюсь ответить.

Про техническую часть пишу в конце отдельно, чтобы не пугать людей говорением на языках. Бэкэнд сервиса сделан на Laravel с панелькой Orchid. Фрондэнд без изысков: bootstrap 5 + blade, поскольку основные функции доставляются через ботов. Сами боты работают в режиме вебхуков, но есть и поддержка лонг-поллинга (с ним отлаживать удобнее). Посидели с чатом жопотэ, смастерили скрипт под docker compose, чтобы разворачивать быстро и чтоб всё на контейнерах. Не сказать что вышел шедевр, но думаю может выложить сборку с комментариями, вдруг кому пригодится? Скажем, как пособие, в котором разворачивается:

⚙️ nginx + php + mysql — чтобы приложение работало;

⚙️ redis — для кэшей и очередей;

⚙️ supervisor — чтобы очереди всегда обрабатывались;

⚙️ certbot — для https;

⚙️ cron для крона;

⚙️ logrotate чтобы автоматически пересохранять логи за несколько дней;

⚙️ postfix с opendkim — чтобы отправлять письма с восстановлением пароля и они долетали до адресатов.

Незамысловато, но зато всё работает. Хочу добавить horizon, loki, возможно прометея с графаной по классике, и еще пару вещей.


В этом посте были ссылки, но мы их удалили по правилам Сетки

Спешу сообщить вам, дорогие друзья, что на днях я выпустил в интернет свирепых Ботопотамов. Рассказываю, как так вышло | Сетка — социальная сеть от hh.ru