Skip to content

Локальный стример

На одномашинной инсталляции есть стример, которого вы не добавляли. В реестре он несёт чип локальный и ведёт себя иначе, чем любая присоединившаяся машина.

Свежеустановленная коробка: один стример, локальный

Откуда он взялся

Когда пакет catena поставил central и sapsan на одну машину — инсталляция из Быстрого старта — central зарегистрировал эту машину сам, при первом запуске.

Решает это одна строчка конфигурации: секция central: в catena.yaml машины. Пакет catena эту секцию добавляет, а процесс, у которого она есть, поднимает обе части сразу — управляющий контур и стример — в одном процессе. Это и весь механизм, и поэтому первый стример появляется без чьего-либо участия.

Это не обычное присоединение:

  • Ни окна присоединения, ни join-токена, ни ключа. Обе части — один процесс, и общаются они внутри процесса, а не по HTTP.
  • Такая запись в инсталляции ровно одна, и это гарантирует база данных.
  • Она переживает потерю каталога состояния: central находит её по типу, а не по сохранённой идентичности.

Чем он отличается

  • Отозвать и Удалить не предлагаются. Машину, на которой работает central, нельзя вывести из его же реестра — см. Отключение стримера.
  • Нет чипа достижимости. Central не ходит к этому стримеру по сети, поэтому api_url и api_auth к нему не относятся. Во всём остальном это обычный стример: HTTP-порт и DVR-хранилище central доставляет ему так же, как присоединённым машинам, поэтому правятся они в настройках стримера в консоли. В catena.yaml машины остаётся только секция central:.

Настройки локального стримера: HTTP-порт и хранилище DVR правятся в консоли

Как запустить central без него

Если нужен чистый управляющий контур — веб-интерфейс и API, без захвата, транскодирования и зрителей на этой машине — запускайте central отдельным режимом:

sapsan central run

Запущенный так процесс обслуживает только central. Локальный стример не создаётся вообще, и в реестре остаются лишь присоединившиеся машины.

Что нужно знать до переключения:

  • Сначала добавьте стример. Каналам есть куда переехать только если есть куда. Присоедините хотя бы один стример, убедитесь, что он в эфире, и лишь потом переводите central — иначе каналам деваться некуда и они перестанут играть.
  • В пакете такой раскладки нет. Юнит sapsan запускает обычный режим, поэтому переключение придётся оформить самому. Это штатный режим бинарника, но ни одна пакетная поставка его не использует — относитесь к нему как к продвинутой настройке, а не к описанному умолчанию.

Переопределите юнит через drop-in:

systemctl edit catena
[Service]
ExecStart=
ExecStart=/usr/sbin/sapsan central run

После перезапуска бывшая локальная запись перестаёт отчитываться, уходит в Офлайн, а её каналы переразмещаются на оставшиеся стримеры. Сама запись остаётся в реестре, пока вы её не уберёте.

Одно функциональное отличие: у отдельно запущенного central не подключается прокси статистики Retroview. Если вы им пользуетесь, оставайтесь на однопроцессной раскладке.

Чего делать не нужно

Не пытайтесь отозвать или удалить локальный стример через API на том основании, что в интерфейсе нет кнопок. Интерфейс прячет их сознательно, но API этот вызов пока не отклоняет:

  • Удаление превращает запись в надгробие. При следующем запуске central заводит новый локальный стример с новым node_id, а надгробие остаётся в разделе удалённых.
  • Отзыв запрещает лейаутеру размещать на нём каналы, но не останавливает сам стример — а на одномашинной инсталляции не меняет ничего, потому что каналам всё равно некуда переехать.

Ни то, ни другое локальный стример не отключает. Отключается он так, как описано выше.