Skip to content

Gateway Peeklio (rproxy)

Peeklio es un gateway de proxy inverso integrado en Sapsan. Un agente ligero, instalado junto a la cámara (detrás de NAT), se conecta por sí mismo a Sapsan y mantiene un túnel; a través de ese túnel Sapsan toma el video y el tráfico del dispositivo como si estuviera en la red local.

Configuración del gateway

rproxy:
  streampoint_key: <clave para conexiones streampoint>
  endpoint_auth_url: http://backend.example.com/agent-auth
  agents:
  - agent_id: a1b2c3
    password: <contraseña del agente>
    salt: <sal>
    streampoint_url: http://this-server:5080

A los agentes se los puede autorizar de dos maneras: con una lista local agents en la configuración o con un backend externo endpoint_auth_url. Sin endpoint_auth_url el gateway funciona en modo «solo streampoint» — acepta túneles, pero no registra agentes nuevos.

En el lado del agente se fijan la dirección del servidor, el agent_id, la contraseña, el intervalo de pings y una ACL de hosts — la lista de direcciones a las que se puede acceder a través de este agente; todo lo demás se rechaza.

Warning

El estado del gateway sobrevive a las recargas de configuración (los agentes no se caen con SIGHUP), pero cambiar streampoint_key / endpoint_auth_url exige reiniciar el proceso.

Captura de un stream a través de un agente

En la entrada de un stream se indica via_agent con el identificador del agente:

streams:
  - name: cam-behind-nat
    inputs:
    - rtsp:
        url: rtsp://admin:password@192.168.1.10/stream0
        via_agent: "agent://a1b2c3"

La dirección en url es la dirección local de la cámara en la red del agente. El handshake RTSP y el stream van por el túnel.

Comportamiento ante errores

Los errores de conexión a través de un agente son distinguibles: puerto cerrado (connection refused), host que no está en la ACL del agente (permission denied), nombre que no resuelve. El servidor puede enviar de forma remota a un agente los comandos reset y reboot.

Monitorización de agentes

GET /streamer/api-v4/rproxy/streampoint-agents devuelve contadores por cada agente: pings, bytes en ambas direcciones, intentos/aperturas/conexiones actuales. Véase el Admin API.

Note

TODO: instalación y configuración del propio agente (paquete rproxy-agent, agent.toml), emisión de claves.