BotMux
Web-based command center for managing Telegram groups and channels via Bot API, with built-in reverse proxy for legacy webhook bots. Give it a bot token — it discovers which chats the bot is in, whether it has admin privileges, and provides a full-featured web dashboard for monitoring, analytics, and administration. Manage multiple bots from a single instance.Key Features
- Multi-Bot Management — run multiple bots in a single instance with per-bot configuration
- Reverse Proxy — poll Telegram and forward updates as webhook POST requests to legacy backends
- Long Polling — Telegram-compatible
getUpdatesendpoint for pull-based integrations - API Proxy — transparent proxy to
api.telegram.orgthat captures outgoing bot messages - Message Monitoring — real-time collection with full-text search and reply support
- Inter-Bot Routing — route messages between bots with Source-NAT return path
- LLM Routing — AI-based smart routing via any OpenAI-compatible API
- Protocol Bridges — bridge Slack, webhooks, and other protocols to Telegram
- Analytics — message stats, hourly activity, top contributors
- Admin Actions — send, pin, delete messages; ban/unban users; manage admins
- Authentication — session-based auth with roles, API keys, and bot access control
- i18n — English and Russian interface
How It Works
BotMux takes over long polling for every bot it manages. Only one client can poll a bot token at a time (Telegram limitation), so:- If your bot currently polls (
getUpdates) — you have two options:- Long Polling mode (recommended, zero code changes) — enable “Long Poll” in bot settings, then point your backend’s API base URL to BotMux (
http://botmux:8080/tgapi/). Your bot keeps callinggetUpdatesas before, but gets updates from BotMux instead of Telegram. - Push mode — switch the backend to accept webhook-style HTTP POST requests. BotMux will poll Telegram and forward updates to your backend URL.
- Long Polling mode (recommended, zero code changes) — enable “Long Poll” in bot settings, then point your backend’s API base URL to BotMux (
- If your bot already uses webhooks — BotMux will switch it to polling and proxy updates back to the webhook endpoint. No changes needed.