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.