Skip to content

Ejecutar el Playground en local con Docker

Ejecuta el Playground en local cuando necesites validar tu propio API Client, los permisos de tu cuenta y tus dispositivos físicos. La imagen publicada incluye la interfaz web y el servicio backend, así que no necesitas Go, Node.js ni descargar el código fuente.

Si solo quieres explorar el flujo, empieza por el Playground en línea.

Requisitos previos

  • Tener Docker instalado.
  • Tener un API Client con su clientId y su clientSecret.
  • Que el API Client tenga al menos device:read; el control y la configuración requieren scopes adicionales.
  • Tener libre el puerto local 8090.

Las reglas completas están en Scopes de autorización (en inglés).

Protege las credenciales de prueba

Usa una cuenta y unos dispositivos de prueba dedicados, no credenciales de producción. Concede solo los permisos que necesite la validación actual, y no concedas device:manage salvo que vayas a gestionar dispositivos.

1. Crear el archivo de entorno

Crea un directorio vacío y añade un archivo .env:

dotenv
WLTE_BASE_URL=https://openapi.svnwi.com
WLTE_CLIENT_ID=sustituye-por-tu-clientId
WLTE_CLIENT_SECRET=sustituye-por-tu-clientSecret
WLTE_WS_ENABLED=true

Restringe el acceso al archivo:

sh
chmod 600 .env

No subas el .env a Git ni pongas el clientSecret en código de navegador, en una aplicación móvil o en registros públicos.

2. Descargar y arrancar la última imagen

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

El puerto queda vinculado a la interfaz de loopback del host y no se expone directamente a la red local ni a Internet.

3. Comprobar el proceso

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

Cuando la comprobación de salud funcione, abre:

http://127.0.0.1:8090

4. Validar tu integración

  1. Confirma que la lista de dispositivos coincide con los dispositivos disponibles para la cuenta.
  2. Abre un dispositivo y verifica que sus paneles de periféricos coinciden con sus capacidades.
  3. Selecciona HTTP y luego WebSocket, y haz una actualización de estado en vivo con cada transporte.
  4. Usa solo dispositivos de prueba para las operaciones de relé o RS-485.
  5. Compara peticiones, respuestas y mensajes de evento en el Protocol Inspector.

Si la interfaz informa de un error de permisos, actualiza el API Client en API Keys y reinicia el contenedor con las credenciales actualizadas.

Configuración opcional

Estos ajustes tienen valores por defecto y solo hace falta añadirlos al .env si quieres ajustar timeouts, búferes de eventos o registros:

Variable de entornoPor defectoPara qué sirve
WLTE_REQUEST_TIMEOUT15sTimeout de las peticiones REST API
PLAYGROUND_WS_EVENT_BUFFER256Tamaño del búfer de eventos WebSocket
PLAYGROUND_WS_EVENT_HISTORY200Eventos que conserva la página
PLAYGROUND_WS_PING_INTERVAL20sIntervalo del Ping de WebSocket
PLAYGROUND_TRAFFIC_HISTORY200Mensajes que conserva el Protocol Inspector
PLAYGROUND_LOG_FORMATjsonFormato de los registros
PLAYGROUND_LOG_LEVELinfoNivel de registro

Detener y eliminar el contenedor

sh
docker rm -f wlte-openapi-playground

Compilar desde el código fuente

Compila desde el Dockerfile solo cuando necesites validar código sin publicar o modificar el propio 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

El Dockerfile compila la aplicación Vue, la incrusta en el servicio Go y ejecuta un único proceso sin privilegios de root en la imagen final. El .env nunca se copia dentro de la imagen.

Resolución de problemas

La página no se abre

Confirma que el contenedor está en marcha y que el .env no define PLAYGROUND_LISTEN_ADDR=127.0.0.1:8090. Dentro del contenedor el proceso debe escuchar en 0.0.0.0:8090; la imagen publicada ya usa ese valor por defecto.

La lista de dispositivos está vacía

Confirma que el API Client tiene device:read y que su cuenta puede acceder a dispositivos. Continúa en Fallos habituales.

¿Puedo exponerlo públicamente?

El Playground no incluye inicio de sesión de operador. Añade HTTPS, autenticación o control de acceso de red antes de compartirlo, y usa credenciales de prueba dedicadas con permisos limitados.

Páginas relacionadas

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