Skip to content

Запуск Playground локально через Docker

Запускайте Playground локально, когда нужно проверить собственный API Client, права доступа вашей учётной записи и реальные устройства. Публикуемый образ включает и веб-интерфейс, и бэкенд-сервис, поэтому Go, Node.js или копия исходного кода не требуются.

Если вы хотите только ознакомиться с процессом, начните с онлайн-Playground.

Предварительные требования

  • Установлен Docker.
  • У вас есть API Client с его clientId и clientSecret.
  • У API Client есть как минимум device:read; управление и конфигурация требуют дополнительных прав доступа.
  • Свободен локальный порт 8090.

Полные правила см. в Области авторизации (на английском).

Защитите тестовые учётные данные

Используйте выделенную тестовую учётную запись и тестовые устройства вместо продакшн-учётных данных. Предоставляйте только права доступа, необходимые для текущей проверки, и не давайте device:manage, если управление устройствами не требуется.

1. Создание файла окружения

Создайте пустую папку и добавьте файл .env:

dotenv
WLTE_BASE_URL=https://openapi.svnwi.com
WLTE_CLIENT_ID=replace-with-your-clientId
WLTE_CLIENT_SECRET=replace-with-your-clientSecret
WLTE_WS_ENABLED=true

Ограничьте доступ к файлу:

sh
chmod 600 .env

Не коммитьте .env в Git и не размещайте clientSecret в коде браузера, мобильном приложении или публичных логах.

2. Загрузка и запуск последнего образа

sh
docker pull wlte/wlte-openapi-playground:latest

docker run -d \
  --name wlte-openapi-playground \
  --env-file .env \
  -p 127.0.0.1:8090:8090 \
  wlte/wlte-openapi-playground:latest

Порт привязан к loopback-интерфейсу хоста и не открыт напрямую в локальную сеть или интернет.

3. Проверка процесса

sh
docker ps --filter name=wlte-openapi-playground
docker logs --tail=100 wlte-openapi-playground
curl --fail http://127.0.0.1:8090/healthz

После успешной проверки работоспособности откройте:

http://127.0.0.1:8090

4. Проверка вашей интеграции

  1. Убедитесь, что список устройств соответствует устройствам, доступным учётной записи.
  2. Откройте устройство и убедитесь, что панели его периферии соответствуют его возможностям.
  3. Поочерёдно выберите HTTP и WebSocket, выполните одно обновление состояния в реальном времени с каждым транспортом.
  4. Используйте только тестовые устройства для операций с реле или RS-485.
  5. Сравните запросы, ответы и сообщения событий в Protocol Inspector.

Если интерфейс сообщает об ошибке прав доступа, обновите API Client в разделе API Keys, затем перезапустите контейнер с обновлёнными учётными данными.

Дополнительная настройка

У этих параметров есть значения по умолчанию, добавлять их в .env нужно только если вы хотите настроить тайм-ауты, буферы событий или логирование:

Переменная окруженияПо умолчаниюНазначение
WLTE_REQUEST_TIMEOUT15sТайм-аут запросов REST API
PLAYGROUND_WS_EVENT_BUFFER256Размер буфера событий WebSocket
PLAYGROUND_WS_EVENT_HISTORY200События, сохраняемые страницей
PLAYGROUND_WS_PING_INTERVAL20sИнтервал Ping для WebSocket
PLAYGROUND_TRAFFIC_HISTORY200Сообщения, сохраняемые Protocol Inspector
PLAYGROUND_LOG_FORMATjsonФормат логов
PLAYGROUND_LOG_LEVELinfoУровень логирования

Остановка и удаление контейнера

sh
docker rm -f wlte-openapi-playground

Сборка из исходного кода

Собирайте из Dockerfile только когда нужно проверить неопубликованный код или изменить сам Playground:

sh
docker build \
  --build-arg VERSION=local \
  -t wlte-openapi-playground:local \
  .

docker run -d \
  --name wlte-openapi-playground \
  --env-file .env \
  -p 127.0.0.1:8090:8090 \
  wlte-openapi-playground:local

Dockerfile собирает приложение на Vue, встраивает его в сервис на Go и запускает один процесс без прав root в финальном образе. .env никогда не копируется внутрь образа.

Решение проблем

Страница не открывается

Убедитесь, что контейнер запущен и .env не задаёт PLAYGROUND_LISTEN_ADDR=127.0.0.1:8090. Внутри контейнера процесс должен слушать 0.0.0.0:8090; публикуемый образ уже использует это значение по умолчанию.

Список устройств пуст

Убедитесь, что у API Client есть device:read и его учётная запись имеет доступ к устройствам. Продолжите с Частые сбои.

Можно ли открыть это публично?

Playground не предоставляет вход для оператора. Добавьте HTTPS, аутентификацию или контроль доступа к сети перед тем, как делиться им, и используйте выделенные тестовые учётные данные с ограниченными правами доступа.

Связанные страницы

Docs buildVersion v1.5.8-20260814-180545-84
Copyright © 2026 WLTE