> ## Documentation Index
> Fetch the complete documentation index at: https://docs.botmux.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Введение

> BotMux — веб-панель управления Telegram-ботами

# BotMux

Веб-панель управления Telegram-группами и каналами через Bot API со встроенным обратным прокси для устаревших вебхук-ботов.

Укажите токен бота — и BotMux определит, в каких чатах состоит бот, есть ли у него права администратора, и предоставит полнофункциональную веб-панель для мониторинга, аналитики и администрирования. Управляйте несколькими ботами из одного экземпляра.

## Ключевые возможности

* **Управление несколькими ботами** — запуск нескольких ботов в одном экземпляре с индивидуальной настройкой
* **Обратный прокси** — опрос Telegram и пересылка обновлений как вебхук POST-запросов на устаревшие бэкенды
* **Long Polling** — Telegram-совместимый эндпоинт `getUpdates` для pull-интеграций
* **Прокси API** — прозрачный прокси к `api.telegram.org` с перехватом исходящих сообщений бота
* **Мониторинг сообщений** — сбор в реальном времени с полнотекстовым поиском и поддержкой ответов
* **Маршрутизация между ботами** — пересылка сообщений между ботами с обратным путём Source-NAT
* **LLM-маршрутизация** — интеллектуальная маршрутизация на основе ИИ через любой OpenAI-совместимый API
* **Мосты протоколов** — связь Slack, вебхуков и других протоколов с Telegram
* **Аналитика** — статистика сообщений, почасовая активность, топ участников
* **Действия администратора** — отправка, закрепление, удаление сообщений; блокировка/разблокировка пользователей; управление администраторами
* **Аутентификация** — сессионная авторизация с ролями, API-ключами и контролем доступа к ботам
* **i18n** — интерфейс на английском и русском языках

## Как это работает

BotMux берёт на себя long polling для каждого управляемого бота. Только один клиент может опрашивать токен бота одновременно (ограничение Telegram), поэтому:

* Если ваш бот сейчас использует **опрос** (`getUpdates`) — у вас два варианта:
  1. **Режим Long Polling** (рекомендуется, без изменений кода) — включите "Long Poll" в настройках бота, затем направьте базовый URL API вашего бэкенда на BotMux (`http://botmux:8080/tgapi/`). Ваш бот продолжает вызывать `getUpdates` как раньше, но получает обновления от BotMux вместо Telegram.
  2. **Режим Push** — переключите бэкенд на приём вебхук-подобных HTTP POST-запросов. BotMux будет опрашивать Telegram и пересылать обновления на URL вашего бэкенда.
* Если ваш бот уже использует **вебхуки** — BotMux переключит его на опрос и будет проксировать обновления обратно на вебхук-эндпоинт. Изменения не требуются.

## Архитектура

Единый бинарный файл на Go, без внешних зависимостей кроме SQLite (чистый Go-драйвер). Веб-интерфейс встроен на этапе компиляции.

```
Telegram ──getUpdates──> BotMux (polling loop per bot)
                            │
                            ├── Management: tracks chats/messages in DB
                            ├── Proxy (push): POST update → Backend URL
                            ├── Long Poll: buffer in UpdateQueue → clients poll
                            ├── Routing: match rules → send via Target Bot
                            └── Bridges: translate external protocols → Telegram
```
