No description
Find a file
dv 4537689f87
Some checks failed
ci/woodpecker/push/woodpecker Pipeline failed
fix vibe 1 1
2026-03-19 17:25:14 +03:00
app init 2 2026-03-19 17:05:20 +03:00
deploy init 2 2026-03-19 17:05:20 +03:00
tests init 2026-03-19 16:47:49 +03:00
.env.example init 2 2026-03-19 17:05:20 +03:00
.gitignore init 2026-03-19 16:47:49 +03:00
.woodpecker.yml fix vibe 1 1 2026-03-19 17:25:14 +03:00
DEPLOY_VARIANT_A.md init 2 2026-03-19 17:05:20 +03:00
docker-compose.yml init 2026-03-19 16:47:49 +03:00
Dockerfile init 2026-03-19 16:47:49 +03:00
README.md init 2026-03-19 16:47:49 +03:00
requirements.txt fix vibe 1 2026-03-19 17:20:31 +03:00

MAX Support Bot v1

Единый сервис на FastAPI + Jinja2 + SQLite, который включает:

  • MAX-бота на maxapi для приёма и обработки заявок.
  • Веб-панель оператора (/applications, /applications/{id}, /chats).
  • Интеграцию с внешней системой заявок через REST API.

Возможности

  • Переключаемый режим бота: Polling или Webhook.
  • Каналы создания заявок:
    • локальный (SQLite),
    • внешний REST.
  • Каналы включаются/выключаются независимо через ENV.
  • Если внешний REST падает: локальная заявка сохраняется, sync-статус ставится в failed (без ретраев).
  • Операторские действия доступны:
    • в MAX через callback-кнопки,
    • в веб-панели в карточке заявки.

Быстрый старт

python -m venv .venv
. .venv/Scripts/activate
pip install -r requirements.txt
uvicorn app.main:app --reload

По умолчанию веб будет на http://127.0.0.1:8000.

Основные ENV

  • MAX_BOT_TOKEN
  • MAX_USE_WEBHOOK=true|false
  • MAX_WEBHOOK_URL
  • MAX_WEBHOOK_SECRET
  • DB_PATH=data/app.db
  • CONTEXT_BACKEND=memory|redis
  • REDIS_URL
  • CHANNEL_LOCAL_ENABLED=true|false
  • CHANNEL_EXTERNAL_ENABLED=true|false
  • EXTERNAL_API_CREATE_URL_WITH_KEY
  • WEB_ADMIN_LOGIN
  • WEB_ADMIN_PASSWORD
  • SESSION_SECRET
  • OPERATOR_CHAT_IDS=123,456

Основные URL

  • GET /health
  • GET/POST /login
  • POST /logout
  • GET /applications
  • GET /applications/{id}
  • POST /applications/{id}/status
  • GET /chats
  • POST /chats/sync
  • POST /max/webhook