Configuración de Sapsan¶
Toda la configuración de Sapsan vive en un único archivo YAML, sapsan.yaml. Esta página describe sus secciones y las reglas de recarga.
Estructura del archivo¶
listeners: # puertos en los que escucha el servidor
http:
- port: 80
rtsp:
- port: 554
rtmp:
- port: 1935
webrtc:
- port: 5005
streams: # lista de streams
- name: cam1
inputs:
- rtsp:
url: rtsp://admin:password@10.0.0.5/stream0
dvr: {}
dvr: # almacenamiento compartido del archivo
root: /storage
disks:
- path: d1
auth: {} # autorización de reproducción y publicación
config_external: {} # gestión externa de la configuración
rproxy: {} # pasarela Peeklio
api_auth: # usuario/contraseña del Admin API
login: admin
password: secret
| Sección | Qué configura | Detalles |
|---|---|---|
listeners |
puertos HTTP, RTSP, RTMP y WebRTC del servidor | esta página |
streams |
streams: fuentes, transcodificador, DVR, push, capturas de pantalla | captura |
dvr |
almacenamiento en disco del archivo | grabación DVR |
auth |
tokens y backends de autorización | autorización |
config_external |
obtención de la configuración desde un servidor externo | configuración externa |
rproxy |
pasarela Peeklio para agentes | pasarela Peeklio |
api_auth |
acceso al Admin API | Admin API |
Validación¶
Sapsan valida la configuración al cargarla y se niega a arrancar con una que no sea válida:
- los campos desconocidos son un error (protección contra erratas);
- cada entrada de un stream debe contener exactamente un protocolo;
- los puertos no pueden repetirse entre listeners y streams;
- si un stream tiene
dvrhabilitado, debe existir la sección globaldvr.
Recarga en caliente¶
Al recibir SIGHUP, Sapsan vuelve a leer sapsan.yaml y aplica los cambios sin reiniciar el proceso:
- los streams, la autorización y el DVR se reconfiguran sobre la marcha;
- los listeners solo se vuelven a enlazar cuando cambia un puerto;
- la pasarela rproxy conserva las conexiones de los agentes entre recargas (pero cambiar
streampoint_key/endpoint_auth_urlexige reiniciar el proceso).
kill -HUP $(pidof sapsan)