a86865ee25
- Replaced Grammy bot.start() with manual fetch-based getUpdates loop - Grammy used only for bot.handleUpdate() (middleware/handlers) - 409 conflicts handled with 10s backoff + continue (no crash) - Network errors handled with 3s retry - Root cause of persistent 409: zombie bun process (PID 72407) from 3:23 AM was holding Telegram long-poll lock all day
CR Management Telegram Bot
AI-powered server management bot via Telegram (@cr_management_smart_bot).
Features
- Two-way chat — talk to Claude, it understands your infra
- Command runner — execute SSH commands on your server
/status— quick server health check/ssh <cmd>— run a command directly/clear— reset conversation history
Run locally
cd telegram-bot
source ../.env
bun run index.ts
Deploy to server
# Copy bot to server
rsync -avz telegram-bot/ root@159.195.60.33:/opt/telegram-bot/
scp .env root@159.195.60.33:/opt/telegram-bot/.env
# On server: install bun, then
cd /opt/telegram-bot && bun install && bun run index.ts
Security
- Set
TELEGRAM_ALLOWED_USERSin.envto restrict access (comma-separated Telegram user IDs) - Empty = open to anyone (not recommended for production)