Skip to content

Установка и запуск Sapsan

На этой странице описано, как установить Sapsan, активировать его лицензией, запустить с минимальной конфигурацией и убедиться, что сервер работает.

Перед установкой

Sapsan не работает без лицензии: файл license.txt нужен до первого запуска, а серверу нужен доступ в интернет для онлайн-активации. Подробнее — на странице лицензирование.

Note

TODO: системные требования (ОС, архитектуры, CPU/RAM, диски для DVR).

Установка из deb-пакета

Sapsan распространяется как deb-пакет sapsan из репозитория Flussonic:

curl -sSf http://apt.flussonic.ru/binary/gpg.key > /etc/apt/trusted.gpg.d/flussonic.gpg
echo "deb http://apt.flussonic.ru binary/" > /etc/apt/sources.list.d/flussonic.list
apt update
apt install sapsan

Пакет ставит бинарник /usr/sbin/sapsan, systemd-юнит sapsan.service, дефолтный конфиг /etc/sapsan/sapsan.yaml и создает каталог состояния /var/lib/sapsan.

Активация

До запуска положите выданный вам файл лицензии в каталог с конфигом:

cp license.txt /etc/sapsan/license.txt
chmod 600 /etc/sapsan/license.txt

При первом запуске Sapsan активируется онлайн и складывает артефакты активации в каталог состояния /var/lib/sapsan:

Файл Содержимое
server.id уникальный идентификатор сервера (UUID)
activation-<версия>.json активация для конкретной версии продукта
keys/ каталог с ключевыми материалами, который создает Sapsan

Подробнее о состояниях лицензии и проверке — на странице лицензирование.

Минимальная конфигурация

Sapsan читает конфигурацию из файла sapsan.yaml (путь можно переопределить переменной окружения CONFIG_PATH). Минимальный конфиг — один HTTP-порт и один поток:

listeners:
  http:
    - port: 80

streams:
  - name: demo
    inputs:
    - syntetic: {}
    transcoder:
      output:
      - source: !content video
        codec: !set h264
      - source: !content audio
        codec: !set aac

streams — это список: каждый поток — элемент со своим name. Чтобы перейти к реальному видео, см. захват видео.

Запуск в Docker

Официальный образ — flussonic/sapsan. Пробросьте порты и смонтируйте конфиг, лицензию и каталог состояния:

mkdir -p config data
# положите config/sapsan.yaml и config/license.txt

docker run --rm -p 80:80 -p 554:554 -p 1935:1935 \
  -v "$(pwd)/config/sapsan.yaml:/etc/sapsan/sapsan.yaml:ro" \
  -v "$(pwd)/config/license.txt:/etc/sapsan/license.txt:ro" \
  -v "$(pwd)/data:/var/lib/sapsan" \
  flussonic/sapsan:latest

Каталог data (/var/lib/sapsan) должен быть доступен на запись и сохраняться между перезапусками — в нем живут server.id, файлы активации и каталог keys/. Пути CONFIG_PATH и SERVER_ID_PATH уже заданы в образе.

Запуск и остановка

При установке из deb сервером управляет systemd:

systemctl start sapsan     # запуск
systemctl status sapsan    # статус
systemctl stop sapsan      # остановка
systemctl enable sapsan    # автозапуск при загрузке

Перечитать конфигурацию без остановки вещания можно сигналом:

kill -HUP "$(systemctl show -p MainPID --value sapsan)"

Проверка работоспособности

Убедитесь, что процесс работает:

systemctl status sapsan

Проверьте, что лицензия активирована:

curl http://localhost/streamer/api-v4/license/status

Состояние Licensed означает, что Sapsan установлен, активирован и готов к работе. Также откройте плейлист тестового потока:

curl http://localhost/streaming/v/demo/index.m3u8

Если сервер вернул плейлист, демо-поток работает. Дальше настройте захват реального видео.