Установка¶
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
Дальше — Быстрый старт: вход в панель, первый принятый мультикаст и первое направление доставки.