Telegram-бот для моніторингу доступності Python-бота, розміщеного на Railway. Бот регулярно перевіряє
/healthендпоінт та надсилає повідомлення у Telegram про зміну статусу: недоступний / знову активний / перший запуск.
| Компонент | Технологія / Інструмент |
|---|---|
| Основна мова | JavaScript (Node.js) |
| Виконання | Node.js v18+ |
| Перевірка URL | Вбудований fetch() API (ES Modules) |
| Telegram API | https://api.telegram.org/bot<token>/sendMessage |
| Збереження змін | Логіка збереження попереднього стану (в памʼяті) |
| Конфігурація | dotenv для читання змінних з .env |
| Хостинг цілі | Railway (Python-бот на aiogram) |
| Health endpoint | /health (через aiohttp у main.py) |
- Node.js ≥ 18
- Telegram-бот (створений через BotFather)
- Python-бот з ендпоінтом
/healthна Railway - Група в Telegram, куди додано бота
git clone https://github.com/ixand/ping-bot.git cd ping-bot
npm install
cp .env.example .env
npm start
- Щохвилини надсилає запит на
/healthRailway-бота. - Якщо бот вперше запускається — Telegram повідомлення ✅/❌.
- Якщо статус змінився (з активного на недоступний або навпаки) — надсилає повідомлення.
- Якщо нічого не змінюється — мовчить.
- ✅ Railway (production) активний і відповідає.
- ❌ Бот на Railway недоступний! Можливо, тривають технічні роботи.
- Використовує тільки вбудовані можливості Node.js 18+ (без
node-fetch) - Telegram API викликається напряму через
fetch() - Бот не дублює повідомлення — зберігає останній відомий стан
- Код написано у форматі ES Modules
- Бот підтримує лише push-нотифікації, не обробляє команди з Telegram
- Вивід у
log.txtабо базу даних для історії статусів - Сповіщення у Discord або Slack
- Веб-інтерфейс з історією станів
- Підтримка кількох сервісів одночасно
Розроблено для моніторингу доступності бота Свинопас, написаного на aiogram та задеплоєного на Railway.