Перейти к основному содержанию
BotMux — это монолитное Go-приложение, скомпилированное в единый бинарный файл со встроенным SPA.

Исходные файлы

ФайлОписание
main.goТочка входа, разбор флагов, регистрация ботов
bot.goОбёртка Telegram Bot API
proxy.goProxyManager: опрос, пересылка, проверки состояния
server.goHTTP-сервер, эндпоинты REST API
store.goСлой хранения SQLite
bridge.goBridgeManager для мультипротокольных мостов
slack.goНативный мост протокола Slack
auth.goАутентификация и авторизация
llm.goМаршрутизация сообщений на основе LLM
demo.goЗаполнение данных демо-режима
templates/index.htmlSPA (чистый JS, встроен на этапе компиляции)

Зависимости

ПакетНазначение
github.com/OvyFlash/telegram-bot-apiКлиент Telegram Bot API
modernc.org/sqliteЧистый Go-драйвер SQLite (без CGO)
github.com/skrashevich/go-webpКонвертация стикеров WebP→PNG
golang.org/x/crypto/bcryptХеширование паролей

Ключевые решения проектирования

  • Нет различий между CLI и веб-ботами — все боты функционально идентичны
  • Единый бинарный файл — веб-интерфейс встроен через go:embed
  • Без CGO — чистые Go-зависимости для простой кросс-компиляции
  • SQLite с режимом WAL — простое и надёжное хранилище