Skip to content

Установка

Mcaster ставится на одну машину и на ней же работает: движок, панель управления и API — один процесс. Эта страница — про то, что кладёт пакет, где живут секреты и что открывается наружу. Путь «от чистой машины до сигнала в сети» — в Быстром старте.

Пакет

Mcaster распространяется deb-пакетом mcaster из репозитория Flussonic:

curl -L http://apt.flussonic.ru/repo/master/dev.key > /etc/apt/trusted.gpg.d/dev.gpg
echo "deb http://apt.flussonic.ru/branch/sapsan/master repo/" > /etc/apt/sources.list.d/flussonic.list
apt update
apt install --install-recommends mcaster

Пакет владеет всей поверхностью установки:

Что Где
Юнит mcaster.service
Настройки процесса /etc/mcaster/ — то, что нужно самому процессу на старте: порт панели, адрес базы, лицензия
Секреты /etc/mcaster/secrets.env (владелец root, права 0600)
Лицензия /etc/mcaster/license.txt
Состояние /var/lib/mcaster — идентификатор машины, кэш активации, ключи
Интерфейс /usr/share/mcaster/ui

Пакет тянет за собой стриминговый движок строго своей версии и PostgreSQL. Базовый юнит sapsan.service на такой машине снимается: работать должен ровно один процесс. Продукты взаимно исключающие — Mcaster и Catena на одной машине не уживаются.

Note

Обновление пакета не перезапускает работающий юнит. На новую пару «бинарь + интерфейс» машина переходит ручным systemctl restart mcaster — так рестарт остаётся решением оператора, а не побочным эффектом apt upgrade.

Лицензия

Без валидного ключа процесс не стартует. Ключ спрашивается при установке и записывается в /etc/mcaster/license.txt; для неинтерактивной раскатки его подсовывают через debconf-set-selections или переменной LICENSE_KEY.

Ключ выписывается на продукт: коробка объявляет себя как mcaster, и ключ, выписанный на другой продукт, к ней не подойдёт — активация не выдаётся, и это видно в логе сразу, а не через неработающую функцию.

Оставить вопрос пустым можно: пакет поставится, но сервис останется в failed. Положите ключ в тот же файл и запустите systemctl start mcaster.

PostgreSQL

Mcaster — управляющая инсталляция, и состояние (стримы, машины, статистика, журнал) она хранит в PostgreSQL. Постинсталл создаёт роль и базу mcaster, генерирует пароли базы и администратора и записывает их в /etc/mcaster/secrets.env:

DATABASE_URL=postgres://mcaster:...@127.0.0.1:5432/mcaster
EDIT_AUTH_PASSWORD=...

Обновление пакета секреты не ротирует. Чтобы вынести базу на управляемый кластер с бэкапами, поменяйте DATABASE_URL и перезапустите сервис — схему Mcaster накатывает сам при старте, отдельного миграционного шага нет.

Порты

Из коробки поднимается HTTP-порт 80 — это начальное значение, действующее, пока листенеры не заданы в панели. Дальше портами владеют настройки машины, и правятся они там же.

Порт Кто задаёт Зачем
HTTP (изначально 80) INITIAL_HTTP_PORT, затем настройки машины Панель, API, отдача по HTTP
UDP-входы Порт каждого мультикаст-источника Приём MPEG-TS
SRT (UDP) Порт SRT-раздачи стрима либо общий листенер Приём и отдача по SRT
RTMP (TCP) Листенер в настройках машины Приём и отдача по RTMP

Исходящие направления портов не занимают: пуш открывает сокет сам.

Мультикаст требует внимания к маршрутам. Приём — подписка на группу (IGMP/MLD) на том интерфейсе, где она приходит; отдача — выбор исходящего интерфейса и TTL у самого направления. На машине с несколькими сетевыми картами оба выбора делаются явно, иначе пакеты уйдут не в ту сеть.

Запуск в Docker

Продуктовый образ — flussonic/mcaster: общий рантайм плюс интерфейс Mcaster и продуктовый тег. Ему нужны PostgreSQL, ключ лицензии и сохраняемый каталог состояния:

docker run -d --name mcaster \
  -e DATABASE_URL=postgres://mcaster:mcaster@db:5432/mcaster \
  -e EDIT_AUTH_LOGIN=admin -e EDIT_AUTH_PASSWORD=secret \
  -e LICENSE_KEY="$LICENSE_KEY" \
  -p 8081:80 \
  -v mcaster-state:/var/lib/sapsan \
  flussonic/mcaster:latest

Порты медиа-протоколов, которые включат настройки стримов, публикуются здесь же дополнительно. Каталог состояния обязан переживать перезапуски: в нём лежат идентификатор машины и активация.

Проверка

systemctl status mcaster
journalctl -u mcaster -n 50

Дальше — Быстрый старт: вход в панель, первый принятый мультикаст и первое направление доставки.