Skip to content

Gateway Peeklio (rproxy)

O Peeklio é um gateway de proxy reverso embutido no Sapsan. Um agente leve, instalado ao lado da câmera (atrás do NAT), mesmo se conecta ao Sapsan e mantém um túnel; por esse túnel o Sapsan busca o vídeo e o tráfego do dispositivo como se ele estivesse na rede local.

Configuração do gateway

rproxy:
  streampoint_key: <chave para conexões streampoint>
  endpoint_auth_url: http://backend.example.com/agent-auth
  agents:
  - agent_id: a1b2c3
    password: <senha do agente>
    salt: <sal>
    streampoint_url: http://this-server:5080

Os agentes podem ser autorizados de duas formas: com uma lista local agents na configuração ou com um backend externo endpoint_auth_url. Sem endpoint_auth_url o gateway funciona no modo «só streampoint» — aceita túneles, mas não registra agentes novos.

No lado do agente são definidos o endereço do servidor, o agent_id, a senha, o intervalo de pings e uma ACL de hosts — a lista de endereços que podem ser alcançados por meio deste agente; todo o resto é recusado.

Warning

O estado do gateway sobrevive às recargas de configuração (os agentes não caem no SIGHUP), mas trocar streampoint_key / endpoint_auth_url exige reiniciar o processo.

Captura de um stream por um agente

Na entrada de um stream indica-se via_agent com o identificador do agente:

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

O endereço em url é o endereço local da câmera na rede do agente. O handshake RTSP e o stream passam pelo túnel.

Comportamento diante de erros

Os erros de conexão por meio de um agente são distinguíveis: porta fechada (connection refused), host fora da ACL do agente (permission denied), nome que não resolve. O servidor pode enviar remotamente a um agente os comandos reset e reboot.

Monitoramento de agentes

GET /streamer/api-v4/rproxy/streampoint-agents traz contadores por agente: pings, bytes nos dois sentidos, tentativas/aberturas/conexões atuais. Veja o Admin API.

Note

TODO: instalação e configuração do próprio agente (pacote rproxy-agent, agent.toml), emissão de chaves.