Документация Pepeunit
- Телеграмм Бот и его
Api Key
- Чистая база данных
Postgresql
- Развёрнутый
EMQX MQTT Broker
c настроеннымacl list
, нужные значения вacl list
:{allow, {ipaddr, "127.0.0.1"}, all, ["$SYS/#", "#"]}. {deny, all, subscribe, ["$SYS/#", {eq, "#"}]}. {deny, all}.
Redis
- Установите пакеты при помощи команды
poetry install
- Войдите в окружение при помощи команды
poetry shell
- Настройте
.env
файл по образцу.env_example
, для корректной настройки вам потребуетсяAPI key
доступа от EMQX MQTT Broker, его можно сгенерировать в веб интерфейсе EMQXadmin panel/system/API Key
- это на левой панели* - Выполните миграцию в БД
alembic upgrade head
- требуется только при первом запуске - Запустите Бэкенд приложение командой -
uvicorn app.main:app --host 0.0.0.0 --port 5000
- Проверка cоединения с EMQX MQTT Broker
- Удаление старого http auth web hook в EMQX MQTT Broker
- Установка нового http auth web hook в EMQX MQTT Broker, он позволяет авторизовать каждый запрос ко всем топикам
- Установка redis http auth hook для авторизации Бэкенда
- Установка настроек кэширования для авторизации EMQX MQTT Broker
- Будет получена информация о текущем состоянии web hook Телеграм бота, если url текущего хука не совпадёт с целевым при запуске, он будет перезаписан
- Fastapi-mqtt установит соединение с EMQX MQTT Broker
- Бэкенд подпишется на топики:
example.com/+/pepeunit
иexample.com/+/+/+/pepeunit
- Запуск веб сервера
Есть два режима работы: через web hook, и через infinity pooling - выбор осуществляется на основании BACKEND_DOMAIN.
- если введён ip адрес, будет использовать pooling
- если введён домен, будет использоваться web hook
- Введите в связанном Телеграм боте команду
/info
- она доступна без верификации https://BACKEND_DOMAIN/APP_PREFIX/docs
- Swagger UIhttps://BACKEND_DOMAIN/APP_PREFIX/graphql
- GraphQL
- Установите
.pre-commit-config.yaml
на основе.pre-commit-config.example.yaml
- Теперь при каждом коммите у вас будет происходить проверка через
black
иisort
- В случае, если нужно запустить вручную -
pre-commit run --all-files
- Создание новой миграции
alembic revision -m 'best_revision_name'
- Применение новой миграции
alembic upgrade head
Запустить интеграционное тестирование можно командой - pytest tests -v