Skip to content

ixand/ping-bot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🐷 Railway Watchdog Bot

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, куди додано бота

🚀 Як запустити

1. Клонувати репозиторій:

git clone https://github.com/ixand/ping-bot.git cd ping-bot

2. Встановити залежності:

npm install

3. Створити .env файл:

cp .env.example .env

4. Запустити бота:

npm start


🔄 Що робить бот

  • Щохвилини надсилає запит на /health Railway-бота.
  • Якщо бот вперше запускається — Telegram повідомлення ✅/❌.
  • Якщо статус змінився (з активного на недоступний або навпаки) — надсилає повідомлення.
  • Якщо нічого не змінюється — мовчить.

📬 Приклад повідомлень у Telegram

  • ✅ Railway (production) активний і відповідає.
  • ❌ Бот на Railway недоступний! Можливо, тривають технічні роботи.

🧠 Особливості

  • Використовує тільки вбудовані можливості Node.js 18+ (без node-fetch)
  • Telegram API викликається напряму через fetch()
  • Бот не дублює повідомлення — зберігає останній відомий стан
  • Код написано у форматі ES Modules

🔐 Безпека

  • Бот підтримує лише push-нотифікації, не обробляє команди з Telegram

🧩 Можливості для розширення

  • Вивід у log.txt або базу даних для історії статусів
  • Сповіщення у Discord або Slack
  • Веб-інтерфейс з історією станів
  • Підтримка кількох сервісів одночасно

💬 Автор

Розроблено для моніторингу доступності бота Свинопас, написаного на aiogram та задеплоєного на Railway.

About

Telegram bot for monitoring the availability of a Python bot hosted on Railway

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors