Конфигурация Sapsan¶
Вся конфигурация Sapsan живет в одном YAML-файле sapsan.yaml. На этой странице описаны его секции и правила перезагрузки.
Структура файла¶
listeners: # порты, которые слушает сервер
http:
- port: 80
rtsp:
- port: 554
rtmp:
- port: 1935
webrtc:
- port: 5005
streams: # именованные потоки
cam1:
inputs:
- rtsp:
url: rtsp://admin:password@10.0.0.5/stream0
dvr: {}
dvr: # общее хранилище архива
root: /storage
disks:
- path: d1
auth: {} # авторизация проигрывания и публикации
config_external: {} # управление конфигурацией извне
rproxy: {} # шлюз Peeklio
api_auth: # логин/пароль Admin API
login: admin
password: secret
| Секция | Что настраивает | Подробнее |
|---|---|---|
listeners |
HTTP, RTSP, RTMP и WebRTC порты сервера | эта страница |
streams |
потоки: источники, транскодер, DVR, пуши, скриншоты | захват видео |
dvr |
дисковое хранилище архива | запись архива |
auth |
токены и auth-бекенды | авторизация |
config_external |
получение конфигурации с внешнего сервера | внешняя конфигурация |
rproxy |
шлюз Peeklio для агентов | шлюз Peeklio |
api_auth |
доступ к Admin API | Admin API |
Валидация¶
Sapsan проверяет конфигурацию при загрузке и отказывается стартовать с некорректной:
- неизвестные поля — ошибка (защита от опечаток);
- каждый вход потока должен содержать ровно один протокол;
- порты не могут повторяться между слушателями и потоками;
- если у потока включен
dvr, обязана существовать глобальная секцияdvr.
Горячая перезагрузка¶
По сигналу SIGHUP Sapsan перечитывает sapsan.yaml и применяет изменения без перезапуска процесса:
- потоки, авторизация и DVR перенастраиваются на лету;
- слушатели перепривязываются, только если изменился порт;
- шлюз rproxy сохраняет подключения агентов между перезагрузками (но смена
streampoint_key/endpoint_auth_urlтребует перезапуска процесса).
kill -HUP $(pidof sapsan)