Backend
WARNING
Ручное заполнение обычно не требуется, нужно заполнить только основные переменные т.к. есть файл генерации .env файлов для сервисов
| Переменная | По умолчанию | Зачем нужна? |
|---|---|---|
PU_FF_TELEGRAM_BOT_ENABLE | True | Функциональный флаг, отвечает за то, включен ли Telegram Bot |
PU_FF_GRAFANA_INTEGRATION_ENABLE | True | Функциональный флаг, отвечает за то, включена ли интеграция с Grafana |
PU_FF_DATAPIPE_DEFAULT_LAST_VALUE_ENABLE | True | Функциональный флаг, отвечает за то, будет ли устанавливаться по умолчанию DataPipe с типом LastValue для UnitNode |
PU_FF_DATAPIPE_ENABLE | True | Функциональный флаг, отвечает за то, включены ли возможности DataPipe. Когда флаг выключен, нужно так же выключить DataPipe сервис, т.к. он перестанет получать обновления конфигураций и т.д. |
PU_FF_PROMETHEUS_ENABLE | True | Функциональный флаг, отвечает за то, включен ли мониторинг запросов через Prometheus или нет |
PU_LOG_FORMAT | json | Определяет формат логов. В режиме json каждая запись лога будет одним dict. При использовании plain строки лога будут стандартными, но traceback будет писаться отдельными строками |
PU_MIN_LOG_LEVEL | INFO | Минимальный уровень логов, выводимых в консоль. Все логи с более низким приоритетом выводиться не будут. Допустимые значения: DEBUG, INFO, WARNING, ERROR и CRITICAL |
PU_APP_PREFIX | /pepeunit | Стандартный префикс, позволяющий дистанцировать навигацию от домена, обычно не требует изменений. Нужен для сложных встраиваемых систем |
PU_API_V1_PREFIX | /api/v1 | Префикс версии REST API, нужен для возможности поддержки старых версий REST API, а также для систем требующих поддержки нескольких версий одновременно |
PU_WORKER_COUNT | 2 | Число воркеров Gunicorn, позволяет увеличить нагрузку, которую способен выдержать Backend |
PU_DOMAIN | - | Доменное имя или ip. Влияет на ссылки, которые генерирует Backend. Позволяет Unit связываться с Backend. Устанавливается в Unit ENV - как PU_DOMAIN |
PU_SECURE | True | Если True, то Backend будет генерировать ссылки с https для PU_DOMAIN. Устанавливается в Unit ENV - в поле PU_HTTP_TYPE, но уже в формате https/http |
PU_AUTH_TOKEN_EXPIRATION | 2678400 | Время жизни токенов авторизации Пользователей, в секундах |
PU_SAVE_REPO_PATH | repo_cache | Путь, по которому Backend хранит внешние Git репозитории. Устанавливается относительно корневой директории Backend |
PU_SQLALCHEMY_DATABASE_URL | - | Ссылка для подключения к PostgreSQL |
PU_CLICKHOUSE_DATABASE_URL | - | Ссылка для подключения к ClickHouse |
PU_SECRET_KEY | - | 32 байтовый ключ в формате base64. Отвечает за подпись токенов авторизации. В случае изменения, все jwt токены, созданные до изменения, становятся недействительными |
PU_ENCRYPT_KEY | - | 32 байтовый ключ в формате base64. Отвечает за шифрование всех данных. В случае изменения, все шифрованные записи становится невозможно расшифровать |
PU_STATIC_SALT | - | 32 байтовый ключ в формате base64. Отвечает за генерацию hash для паролей Пользователей. В случае изменения, все учётные записи, созданные до момента изменения, потеряют возможность авторизоваться |
PU_MIN_INTERVAL_SYNC_REPOSITORY | 10 | Время в секундах, которое должно пройти перед следующим запросом обновления репозитория из внешнего ресурса |
PU_STATE_SEND_INTERVAL | 60 | Частота в секундах, с которой Unit'ы должны отправлять своё состояние. Устанавливается в Unit ENV в поле STATE_SEND_INTERVAL |
PU_MAX_EXTERNAL_REPO_SIZE | 50 | Значение в МБ, ограничивающее размер внешних Git репозиториев для скачивания |
PU_MAX_CIPHER_LENGTH | 1000000 | Максимальная длинна в символах для шифруемой информации |
PU_MIN_TOPIC_UPDATE_TIME | 30 | Частота обновления сообщений в domain.com/+/pepeunit топиках MQTT |
PU_UNIT_LOG_EXPIRATION | 86400 | Время жизни логов, которые присылают Unit, в секундах |
PU_MAX_PAGINATION_SIZE | 500 | Максимальное количество объектов, которое можно получить за 1 запрос. Применяется в местах, где есть пагинация |
PU_TELEGRAM_BOT_MODE | webhook | Принимает значения: webhook или pooling. Позволяет указать, как Backend будет обмениваться информацией с Telegram Bot. pooling позволяет работать без личного домена и https в средах, где есть доступ в интернет. webhook более производительный вариант, предназаначен для использования с https и личным доменом, ссылка на webhook устанавливает автоматически в момент старта приложения |
PU_TELEGRAM_DEL_OLD_WEBHOOK | True | Удаляется ли webhook для Telegram Bot перед тем, как создать новый |
PU_TELEGRAM_TOKEN | - | Токен Telegram Bot. Секретный, никому не показывайте |
PU_TELEGRAM_BOT_LINK | - | Ссылка на Telegram Bot, которым управляет Backend. Используется для генерации верификационных ссылок для Пользователей. Передаётся в openapi.json |
PU_TELEGRAM_ITEMS_PER_PAGE | 7 | Число пагинируемых элементов при отображении за один раз в Telegram Bot |
PU_TELEGRAM_HEADER_ENTITY_LENGTH | 15 | Предельная длинна наименований сущностей при отображении в Telegram Bot |
PU_TELEGRAM_GIT_HASH_LENGTH | 8 | Предельная длинна hash Git Commit при отображении в Telegram Bot |
PU_PROMETHEUS_MULTIPROC_DIR | ./prometheus_metrics | Директория, которую Prometheus использует для хранения статистик с нескольких worker - uvicorn. При старте приложения содержимое директории отчищается |
PU_REDIS_URL | redis://redis:6379/0 | Ссылка для доступа к Redis, которую использует Backend для соединения c Redis. Инстанс Redis должен быть единым с MQTT_REDIS_AUTH_URL |
PU_MQTT_HOST | - | Доменное имя или ip. Позволяет Backend управлять и подписываться на топики EMQX. Позволяет Unit связываться с EMQX. Устанавливается в Unit ENV - в поле PU_MQTT_HOST |
PU_MQTT_SECURE | True | Если True, то Backend будет использовать https для настройки EMQX |
PU_MQTT_PORT | 1883 | Порт, по которому Unit и Backend связываются c EMQX. Устанавливается в Unit ENV - в поле PU_MQTT_PORT |
PU_MQTT_API_PORT | 18083 | Порт API EMQX, по которому Backend производит настройку EMQX |
PU_MQTT_KEEPALIVE | 60 | Максимальный период в секундах между отправками ping от Backend до EMQX |
PU_MQTT_USERNAME | - | Имя пользователя EMQX. Backend использует его для первичной настройки брокера |
PU_MQTT_PASSWORD | - | Пароль пользователя EMQX. Backend использует его для первичной настройки брокера |
PU_MQTT_REDIS_AUTH_URL | redis://redis:6379/0 | Ссылка для доступа к Redis, которую использует EMQX для соединения c Redis. Инстанс Redis должен быть единым с REDIS_URL |
PU_MQTT_MAX_CLIENTS | 10000 | Максимальное число клиентов EMQX |
PU_MQTT_MAX_CLIENT_CONNECTION_RATE | 20/s | Максимальная скорость подписки клиентов EMQX |
PU_MQTT_MAX_CLIENT_ID_LEN | 512 | Максимальная длинная id клиентов EMQX |
PU_MQTT_CLIENT_MAX_MESSAGES_RATE | 30/s | Максимальная частота отправки сообщений одним клиентом EMQX |
PU_MQTT_CLIENT_MAX_BYTES_RATE | 1MB/s | Максимальная скорость соединения с клиентом EMQX |
PU_MQTT_MAX_PAYLOAD_SIZE | 256 | Максимальный размер в килобайтах, для данных передаваемых через топики EMQX |
PU_MQTT_MAX_QOS | 2 | Максимальное качество обслуживания доступное в EMQX |
PU_MQTT_MAX_TOPIC_LEVELS | 5 | Максимальная вложенность топиков EMQX |
PU_MQTT_MAX_LEN_MESSAGE_QUEUE | 128 | Максимальная длинна очереди сообщений EMQX |
PU_MQTT_MAX_TOPIC_ALIAS | 128 | Максимальное число топиков-ссылок EMQX |
PU_GITHUB_TOKEN_NAME | - | Название GitHub токена, с разрешением только для чтения публичных репозиториев. Используется для увеличения лимита загрузки публичных репозиториев с GitHub с 60 в час до 5000 в час |
PU_GITHUB_TOKEN_PAT | - | GitHub токен, с разрешением только для чтения публичных репозиториев. Используется для увеличения лимита загрузки публичных репозиториев с GitHub с 60 в час до 5000 в час |
PU_GRAFANA_ADMIN_USER | - | Логин администратора для Grafana |
PU_GRAFANA_ADMIN_PASSWORD | - | Пароль администратора для Grafana |
PU_GRAFANA_LIMIT_UNIT_NODE_PER_ONE_PANEL | 10 | Максимальное число UnitNode для одной Visualization |
INFO
Для тестирования Backend также выделены переменные: