PrimeCast

Сервер, безопасность и обновления

Диагностика сервера PrimeCast: службы API, MediaMTX и Caddy, сетевые порты, сертификаты и TLS, правила безопасности и регламент обновления платформы.

Серверная часть PrimeCast включает API платформы, медиареле MediaMTX и HTTPS-терминацию на Caddy. Раздел описывает диагностику сервера, работу с сертификатами, правила безопасности и регламент обновления.

Диагностика сервера

Основные production-службы

СлужбаНазначение
primecast-api.serviceAPI платформы
primecast-relay.serviceMediaMTX
primecast-caddy.serviceHTTPS и reverse proxy

Проверка:

systemctl is-active primecast-api
systemctl is-active primecast-relay
systemctl is-active primecast-caddy

Журналы

sudo journalctl -u primecast-api -n 200 --no-pager
sudo journalctl -u primecast-relay -n 200 --no-pager
sudo journalctl -u primecast-caddy -n 200 --no-pager

Внутренняя схема

Internet :443
    │
    ▼
Caddy
    ├── static UI
    ├── /api  → 127.0.0.1:9090
    └── /whep → 127.0.0.1:9090 → MediaMTX

Сетевые порты

ПортПротоколНазначениеДоступ
443TCPHTTPS PrimeCastПубличный/корпоративный
8890UDPSRT publish от устройствТолько необходимые источники
8189UDPWebRTC ICEПо схеме развёртывания
9090TCPPrimeCast APIТолько localhost
8889TCP/UDPMediaMTX WebRTC/WHEPОбычно через API/Caddy
8888TCPHLSОбычно localhost
9997TCPMediaMTX Control APIТолько localhost
22TCPSSHТолько административная сеть

Фактические правила firewall должны соответствовать конкретному развёртыванию.

Проверка Caddy

sudo caddy validate \
  --config /etc/primecast/Caddyfile \
  --adapter caddyfile

Проверка MediaMTX

sudo /usr/local/bin/mediamtx \
  /etc/primecast/mediamtx.yml

Эту команду нельзя запускать параллельно с действующей службой на тех же портах. Для проверки конфигурации используйте поддерживаемый текущей версией режим или тестовый узел.

Ограничение production API

В репозитории сохранён production-бинарник Go API для Linux x86-64, но исходный Go-проект отсутствует. Это означает:

  • бинарник нельзя просто пересобрать под ARM;
  • изменение API требует восстановления или новой реализации;
  • перед обновлением обязательна проверка SHA-256;
  • рабочий бинарник и конфигурации должны иметь резервную копию.

Сертификаты и TLS

Caddy завершает HTTPS. Android и Electron используют контролируемое доверие к корневому сертификату.

Что нельзя делать:

  • глобально отключать проверку сертификатов;
  • использовать curl -k как доказательство исправности;
  • принимать новый корень без проверки;
  • хранить приватный ключ в Git;
  • пересылать приватный ключ в тикете.

Ротация корня

При замене корневого CA:

  1. подготовить новый сертификат;
  2. обновить сервер;
  3. обновить публичный корень в Android;
  4. обновить закреплённый корень/отпечаток в Electron;
  5. пересобрать клиентов;
  6. протестировать параллельный переход;
  7. распространить новые версии;
  8. только затем вывести старый корень.

Безопасность

Секретные данные

К секретным относятся:

  • пароль устройства;
  • пароль аккаунта;
  • SSH-пароль и приватный ключ;
  • auth.secret;
  • JWT-секреты;
  • SRT passphrase;
  • MediaMTX publish password;
  • SMTP-пароль;
  • API-ключи внешних сервисов;
  • приватные TLS-ключи.

Логи перед отправкой

Удалите:

  • пароли;
  • токены;
  • полные SRT URI;
  • cookie;
  • Authorization-заголовки;
  • приватные IP, если политика компании требует;
  • персональные сообщения.

Права файлов

sudo find /etc/primecast -maxdepth 1 -type f \
  -printf '%M %u:%g %p\n'

Любой секрет, доступный на чтение всем пользователям, является инцидентом.

Запрещённые практики

  • общий аккаунт администратора;
  • один пароль на все модули;
  • production-секреты в .env.example;
  • скриншот пароля в общей группе;
  • отключение firewall ради теста;
  • запуск backend от root без необходимости;
  • публикация runtime JSON и базы данных в GitLab.

Регламент обновления

Перед обновлением

  • создать резервную копию;
  • записать версии;
  • проверить свободное место;
  • проверить питание;
  • предупредить пользователей;
  • назначить окно работ;
  • подготовить откат.

После обновления

  1. службы активны;
  2. экран работает;
  3. сеть определяется;
  4. HDMI определяется;
  5. ключ и пароль отображаются;
  6. стрим запускается и останавливается;
  7. просмотр работает в браузере;
  8. просмотр работает в целевом приложении;
  9. роли и группы не нарушены;
  10. в логах нет новых критических ошибок.

Критерий отката

Откатывайте версию, если:

  • модуль перестал публиковать поток;
  • OSD не запускается;
  • данные доступа недоступны;
  • появились массовые ошибки авторизации;
  • сертификат перестал приниматься клиентами;
  • повреждены роли или изоляция компаний.
Обновлено: 3 августа 2026 г.