Skip to content

Конфигурация 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)