Система ботов поддержки, которая может работать как в режиме одиночного бота, так и в режиме мультибота.
- Скачайте готовый образ:
docker pull ghcr.io/montelibero/support_bot:latest- Создайте файл
.envв корневой директории проекта
- Клонируйте репозиторий
git clone <repository_url>
cd support-bot-system- Установите зависимости через uv
uv sync- Создайте файл
.envв корневой директории проекта
В этом режиме запускается один бот поддержки. Идеально подходит для небольших проектов или тестирования.
# Обязательные параметры
SINGLE_BOT_TOKEN=your_bot_token
REDIS_URL=redis://localhost:6379/0
ADMIN_ID=your_admin_id
# Опциональные параметры
SINGLE_START_MESSAGE="Здравствуйте! Чем могу помочь?"
SINGLE_SECURITY_POLICY=default
SINGLE_MASTER_CHAT=0 # ID чата поддержки (0 = использовать ADMIN_ID)
SINGLE_USE_AUTO_REPLY=false
SINGLE_AUTO_REPLY="Message automatically forwarded to support. Please wait for a response."
SENTRY_DSN=your_sentry_dsn # опциональноuv run single_bot.pyВ этом режиме может работать множество ботов поддержки одновременно. Подходит для крупных проектов или агентств.
# Обязательные параметры
BOT_TOKEN=your_main_bot_token
REDIS_URL=redis://localhost:6379/0
ADMIN_ID=your_admin_id
BASE_URL=https://your-domain.com
# Опциональные параметры
ENVIRONMENT=production # для webhook режима
WEB_SERVER_HOST=127.0.0.1
WEB_SERVER_PORT=8000
SENTRY_DSN=your_sentry_dsn- В режиме поллинга (для разработки):
uv run main.py- В режиме вебхука (для продакшена):
ENVIRONMENT=production uv run main.py- Все настройки берутся из переменных окружения с префиксом
SINGLE_ - Конфигурация создается автоматически при запуске
- Боты добавляются через административный интерфейс главного бота
- Конфигурация хранится в базе данных
data/support.db - Каждый бот может иметь свои настройки:
- Приветственное сообщение
- Политика безопасности
- ID чата поддержки
- Автоответы
- и другие параметры
Логи сохраняются в директории logs/:
logs/SupportBot.log- для мультиботаlogs/SingleSupportBot.log- для одиночного бота
- Интеграция с Sentry для отслеживания ошибок (опционально)
- Уведомления администратору при запуске/остановке ботов
- Python 3.12+
- uv
- Redis
- Доступ к API Telegram
- Для webhook режима: SSL сертификат и домен
Базовый набор команд для локальной проверки (AI-first bootstrap):
just test # Полный запуск тестов (можно передать аргументы: just test "-q")
just test-fast # Быстрая выборка smoke-тестов
just lint # Ruff lint (стартовая область: customizations + startup path)
just fmt # Ruff format для стартовой области
just types # Pyright type-check для стартовой области
just check-changed # Проверка только измененных .py файлов (ruff+pyright)
just arch-test # Базовая структурная проверка обязательной документации
just check # format --check + lint + types + test-fast- Убедитесь, что у вас установлен Docker и Docker Compose.
- Настройте
.envфайл (см. раздел "Настройка .env для одиночного бота"). - Запустите бота:
docker compose up -dБот запустится вместе с необходимым ему Redis. По умолчанию docker-compose.yml использует образ ghcr.io/montelibero/support_bot:latest.
Если нужно собрать образ самостоятельно и использовать его в docker-compose.yml:
docker build -t support_bot:local .