Skip to content

Executar o Playground localmente com Docker

Execute o Playground localmente quando precisar validar seu próprio API Client, as permissões da sua conta e seus dispositivos físicos. A imagem publicada inclui a interface web e o serviço backend, então não é preciso Go, Node.js nem baixar o código-fonte.

Se você só quer explorar o fluxo, comece pelo Playground online.

Pré-requisitos

  • Ter o Docker instalado.
  • Ter um API Client com seu clientId e clientSecret.
  • O API Client ter pelo menos device:read; controle e configuração exigem scopes adicionais.
  • A porta local 8090 estar disponível.

As regras completas estão em Scopes de autorização (em inglês).

Proteja as credenciais de teste

Use uma conta e dispositivos de teste dedicados, não credenciais de produção. Conceda apenas as permissões necessárias para a validação atual, e não conceda device:manage a menos que precise gerenciar dispositivos.

1. Criar o arquivo de ambiente

Crie um diretório vazio e adicione um arquivo .env:

dotenv
WLTE_BASE_URL=https://openapi.svnwi.com
WLTE_CLIENT_ID=substitua-pelo-seu-clientId
WLTE_CLIENT_SECRET=substitua-pelo-seu-clientSecret
WLTE_WS_ENABLED=true

Restrinja o acesso ao arquivo:

sh
chmod 600 .env

Não faça commit do .env no Git nem coloque o clientSecret em código de navegador, em um aplicativo móvel ou em logs públicos.

2. Baixar e iniciar a imagem mais recente

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

A porta é vinculada à interface de loopback do host e não é exposta diretamente à rede local ou à Internet.

3. Verificar o processo

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

Depois que a verificação de saúde funcionar, abra:

http://127.0.0.1:8090

4. Validar sua integração

  1. Confirme que a lista de dispositivos corresponde aos dispositivos disponíveis para a conta.
  2. Abra um dispositivo e verifique que seus painéis de periféricos correspondem às suas capacidades.
  3. Selecione HTTP e depois WebSocket, e faça uma atualização de estado ao vivo com cada transporte.
  4. Use apenas dispositivos de teste para as operações de relé ou RS-485.
  5. Compare requisições, respostas e mensagens de evento no Protocol Inspector.

Se a interface reportar um erro de permissão, atualize o API Client em API Keys e reinicie o contêiner com as credenciais atualizadas.

Configuração opcional

Estas configurações têm valores padrão e só precisam ser adicionadas ao .env se você quiser ajustar timeouts, buffers de eventos ou logs:

Variável de ambientePadrãoFinalidade
WLTE_REQUEST_TIMEOUT15sTimeout das requisições REST API
PLAYGROUND_WS_EVENT_BUFFER256Tamanho do buffer de eventos WebSocket
PLAYGROUND_WS_EVENT_HISTORY200Eventos mantidos pela página
PLAYGROUND_WS_PING_INTERVAL20sIntervalo do Ping do WebSocket
PLAYGROUND_TRAFFIC_HISTORY200Mensagens mantidas pelo Protocol Inspector
PLAYGROUND_LOG_FORMATjsonFormato dos logs
PLAYGROUND_LOG_LEVELinfoNível de log

Parar e remover o contêiner

sh
docker rm -f wlte-openapi-playground

Compilar a partir do código-fonte

Compile a partir do Dockerfile apenas quando precisar validar código não publicado ou modificar o próprio 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

O Dockerfile compila a aplicação Vue, a incorpora ao serviço Go e executa um único processo sem privilégios de root na imagem final. O .env nunca é copiado para dentro da imagem.

Solução de problemas

A página não abre

Confirme que o contêiner está em execução e que o .env não define PLAYGROUND_LISTEN_ADDR=127.0.0.1:8090. Dentro do contêiner, o processo deve escutar em 0.0.0.0:8090; a imagem publicada já usa esse valor por padrão.

A lista de dispositivos está vazia

Confirme que o API Client tem device:read e que sua conta pode acessar dispositivos. Continue em Falhas comuns.

Posso expor isso publicamente?

O Playground não inclui login de operador. Adicione HTTPS, autenticação ou controle de acesso de rede antes de compartilhá-lo, e use credenciais de teste dedicadas com permissões limitadas.

Páginas relacionadas

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