Установка¶
Быстрый старт доводит одну машину до играющего канала. Эта страница — про то, что происходит при установке и как разворачивать Catena в продакшне: из чего состоит поставка, где живут секреты, как подключить внешний PostgreSQL и какие порты открываются.
Пакеты¶
У Catena два устанавливаемых пакета — по одному на роль машины:
- catena — central-машина: интерфейс консоли, юнит
catena.service, каталог/etc/catenaи конфигурация с секциейcentral:— именно она превращает коробку в central-инсталляцию. Тянет за собой стриминговый сервер строго своей версии и PostgreSQL. - catena-streamer — присоединяемый стример: тот же продукт в роли машины кластера, без консоли и без секции
central:. Подключение к кластеру — три строки в/etc/catena/streamer.env.
Плагины кодирования приезжают рекомендуемой зависимостью: сервер работает и без них, но кодировать будет нечем.
Постинсталл пакета catena делает провижининг: создаёт в PostgreSQL роль и базу catena, генерирует пароль базы и пароль администратора и записывает их в /etc/catena/secrets.env (владелец root, права 0600):
DATABASE_URL=postgres://catena:...@127.0.0.1:5432/catena
EDIT_AUTH_PASSWORD=...
Юнит подключает этот файл как EnvironmentFile. Обновление пакета секреты не ротирует — однажды записанные, они переживают любые апгрейды.
Лицензионный ключ установка спрашивает сама и записывает его в /etc/catena/license.txt (владелец root, права 0600). Если оставить вопрос пустым, пакет всё равно поставится, но сервис не стартует — положите ключ в тот же файл (или передайте переменной LICENSE_KEY) и запустите systemctl start catena. Для раскатки ответ преднабивается через debconf-set-selections — см. Раскатку без интерактива.
Продуктовый пакет владеет всей поверхностью установки: юнитом catena.service, каталогом конфигурации /etc/catena и каталогом состояния /var/lib/catena. Базовый sapsan.service на такой машине снят — работать должен ровно один процесс.
Внешний PostgreSQL¶
PostgreSQL — единственное хранилище состояния central, и в продакшне ему место на управляемом кластере с бэкапами, а не на той же машине. Достаточно поменять DATABASE_URL в /etc/catena/secrets.env на адрес внешней базы и перезапустить сервис: схему central накатывает сам при старте, отдельных миграционных шагов нет.
Порты¶
Пакет не кладёт конфигурацию с портом. Из коробки поднимается порт 80 (прописан в переменной INITIAL_HTTP_PORT) — и это именно начальное значение: оно действует, только пока HTTP-листенеры не заданы ничем другим. Дальше портами владеет конфиг стримера — они правятся из консоли, как у любой машины кластера. Переменная HTTP=<порт> — наоборот, постоянное перекрытие поверх всего.
Что открывается и зачем:
| Порт | Кто задаёт | Зачем |
|---|---|---|
| HTTP (изначально 80) | INITIAL_HTTP_PORT, затем конфиг стримера |
Консоль, API, зрительский фронт /streaming, синк стримеров |
| RTSP, RTMP (TCP), WebRTC (UDP) | Листенеры в настройках стримера | Приём и раздача этими протоколами |
| SRT (UDP) | По листенеру на канал: порт из SRT-раздачи | Раздача канала по SRT |
| UDP-входы | Порт каждого мультикаст-источника | Приём MPEG-TS |
Между машинами кластера: всю управляющую связь инициирует стример — ему нужен HTTP(S)-доступ к central; обратно central ходит только на api_url стримера (проксирование медиа и статистика). Зрителям — HTTP(S) до central и, при редиректах, до публичных адресов стримеров.
Проверка¶
systemctl status catena
journalctl -u catena -n 50
Дальше — вход в консоль и первый канал. Типовые причины нестарта — лицензия и недоступный PostgreSQL — разобраны в траблшутинге Быстрого старта.