Skip to content

env_example.json

Какое функциональное назначение у env_example.json?

Данный файл - это контракт между Разработчиком Unit и Pepeunit:

  1. Разработчик Unit гарантирует, что он реализует в функционале Unit все или часть стандартных переменных Pepeunit, позволяющих взаимодействовать с Pepeunit
  2. Pepeunit гарантирует возможность Пользователей установить переменные указанные Разработчиком Unit
  3. Pepeunit гарантирует, что автоматически установит стандартные переменные указанные в файле при первом сохранении env со стороны Пользователя.

Структура

json
{   
    "WIFI_SSID": "ssid",
    "WIFI_PASS": "password",
    "PWM_FAN_PIN": 0,
    "DS18B20_PIN_NUM": 4,
    "REGULATOR_OPERATING_RANGE": 1000,
    "PUBLISH_SEND_INTERVAL": 1,
    "TEMP_MIN": 30,
    "TEMP_MAX": 60,
    "DUTY_MIN": 8192,
    "DUTY_MAX": 65535,
    "PU_DOMAIN": "unit.example.com",
    "PU_HTTP_TYPE": "https",
    "PU_APP_PREFIX": "/pepeunit",
    "PU_API_ACTUAL_PREFIX": "/api/v1",
    "PU_MQTT_HOST": "emqx.example.com",
    "PU_MQTT_PORT": 1883,
    "PU_MQTT_PING_INTERVAL": 30,
    "PU_AUTH_TOKEN": "jwt_token",
    "PU_SECRET_KEY": "32_bit_secret_key",
    "PU_ENCRYPT_KEY": "32_bit_encrypt_key",
    "PU_STATE_SEND_INTERVAL": 300,
    "PU_MIN_LOG_LEVEL": "Debug",
    "PU_MAX_LOG_LENGTH": 64
}

Переменные можно разделить на две категории: стандартные переменные и переменные окружения разработчика

Стандартные переменные Pepeunit

Pepeunit резервирует следующий набор переменных окружения Unit:

ПеременнаяГенерируемое значение в env.jsonЗачем нужна?
PU_DOMAINPU_DOMAIN из Backend ENVДоменное имя или ip адрес инстанса Pepeunit
PU_HTTP_TYPEPU_SECURE из Backend ENVТип соединения https/http с доменным именем или ip адресом Backend в формате https/http
PU_APP_PREFIXPU_APP_PREFIX из Backend ENVПрефикс Backend
PU_API_ACTUAL_PREFIXPU_API_V1_PREFIX из Backend ENVПрефикс актуальной версии API для Backend. Полностью соответствует последней версии API
PU_MQTT_HOSTPU_MQTT_HOST из Backend ENVДоменное имя или ip - адрес инстанса EMQX
PU_MQTT_PORTPU_MQTT_PORT из Backend ENVПорт для взаимодействия с EMQX, по умолчанию 1883
PU_MQTT_PING_INTERVAL30Частота MQTT пинга в секундах, 30 секунд для всех
PU_AUTH_TOKENjwt токенВечный токен доступа Unit к инстансу Pepeunit. Данный токен позволяет пройти авторизацию на подписку и публикацию у топиков EMQX, устанавливается Backend автоматически.
PU_SECRET_KEY32 байтовый ключ в формате base64Уникальный для каждого Unit. Удобно использовать для подписи или генерации jwt. Устанавливается Backend автоматически
PU_ENCRYPT_KEY32 байтовый ключ в формате base64Уникальный для каждого Unit. Удобно использовать для шифрования методом aes-gcm-256. Устанавливается Backend автоматически
PU_STATE_SEND_INTERVALPU_STATE_SEND_INTERVAL из Backend ENVЧастота отправки состояния в стандартный топик состояния
PU_MIN_LOG_LEVELDebugМинимальный уровень лога, который будет отправляться по MQTT и сохраняться в файл log.json. Если установить например Warning, то Debug и Info отправляться не будут
PU_MAX_LOG_LENGTH64Максимальное число строк в файле log.json, удаляются строки из начала файла, сохраняются в конец.
PU_COMMIT_VERSIONHash коммитаОтображает текущую таргет версию Unit. Имеет уникальный функционал, её нельзя изменить вручную в меню изменения env.json, она будет игнорироваться при сохранении

Переменные окружения Разработчика Unit

Разработчик Unit может создавать любые переменные окружения, которые отличаются по названию от стандартных. При этом значения, указанные в переменных, будут отображаться как значения по умолчанию в интерфейсе Пользователей.

DANGER

Так как Пользователь в итоге будет заполнять переменные вручную, всегда нужно заполнить pepeunit.toml и readme.md, чтобы Пользователь мог понять, за что отвечает каждая переменная

DANGER

Заполнение env.json Пользователем происходит на основе: Механизма генерации ENV