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
clientIdeclientSecret. - O API Client ter pelo menos
device:read; controle e configuração exigem scopes adicionais. - A porta local
8090estar 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:
WLTE_BASE_URL=https://openapi.svnwi.com
WLTE_CLIENT_ID=substitua-pelo-seu-clientId
WLTE_CLIENT_SECRET=substitua-pelo-seu-clientSecret
WLTE_WS_ENABLED=trueRestrinja o acesso ao arquivo:
chmod 600 .envNã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
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:latestA porta é vinculada à interface de loopback do host e não é exposta diretamente à rede local ou à Internet.
3. Verificar o processo
docker ps --filter name=wlte-openapi-playground
docker logs --tail=100 wlte-openapi-playground
curl --fail http://127.0.0.1:8090/healthzDepois que a verificação de saúde funcionar, abra:
4. Validar sua integração
- Confirme que a lista de dispositivos corresponde aos dispositivos disponíveis para a conta.
- Abra um dispositivo e verifique que seus painéis de periféricos correspondem às suas capacidades.
- Selecione HTTP e depois WebSocket, e faça uma atualização de estado ao vivo com cada transporte.
- Use apenas dispositivos de teste para as operações de relé ou RS-485.
- 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 ambiente | Padrão | Finalidade |
|---|---|---|
WLTE_REQUEST_TIMEOUT | 15s | Timeout das requisições REST API |
PLAYGROUND_WS_EVENT_BUFFER | 256 | Tamanho do buffer de eventos WebSocket |
PLAYGROUND_WS_EVENT_HISTORY | 200 | Eventos mantidos pela página |
PLAYGROUND_WS_PING_INTERVAL | 20s | Intervalo do Ping do WebSocket |
PLAYGROUND_TRAFFIC_HISTORY | 200 | Mensagens mantidas pelo Protocol Inspector |
PLAYGROUND_LOG_FORMAT | json | Formato dos logs |
PLAYGROUND_LOG_LEVEL | info | Nível de log |
Parar e remover o contêiner
docker rm -f wlte-openapi-playgroundCompilar 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:
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:localO 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.
