Настроил работу DLNA в Jellyfin, который крутится на TrueNAS в качестве приложения App. Оставлю инструкции, потому что с документацией всё плохо.
Цель — проигрывание фильмов на телевизоре.
Jellyfin — это медиа-решение, созданное добровольцами, которое ставит вас во главу угла в управлении вашим медиаконтентом. Транслируйте на любое устройство с вашего собственного сервера без каких-либо обязательств. Ваши медиафайлы, ваш сервер, ваши правила.
DLNA (Digital Living Network Alliance) — набор стандартов, которые позволяют передавать и воспроизводить в реальном времени фото, видео и аудио файлы по домашней сети. Поддерживается проводная (Ethernet) и беспроводная (Wi-Fi) связь.
Устанавливаем Jellyfin в TrueNAS. И добиваемся работоспособности.
Медиа сервер Jellyfin на TrueNAS
Дополнительно я настраиваю Nginx Proxy Manager.
Nginx Proxy Manager — настраиваем SSL для всех сайтов домашней лаборатории
И добиваюсь того, чтобы Jellyfin заработал по адресу https://video.moipartner.ru. SSL снимается на Nginx, так что сам Jellyfin работает только по HTTP на порту TCP 8096.
Настройки приложения и NAS
Если мы планируем заставить работать DLNA в Jellyfin, то следует запускать его в режиме хоста, тогда все порты поднимутся на интерфейсе NAS. Это важно, потому как DLNA работает на UDP 1900, используя широковещательные сетевые запросы.

В настройках сети приложения устанавливаем галку:
- Host Network
Теперь все порты будут подниматься на интерфейсе NAS. И следует заранее позаботиться, чтобы никто другой не занимал эти порты, а именно:
- TCP 8096 для HTTP — можно переопределить в Jellyfin
- TCP 8920 для HTTPS (если используем, у меня не используется) — можно переопределить в Jellyfin
- UDP 1900 для DLMA — нельзя переопределить
- UDP 7359 для приложений, которые определяют Jellyfin — нельзя переопределить

Сеть в NAS должна работать в режиме моста, иначе широковещательные запросы не достигнут приложения.
Настройка сетевого моста в TrueNAS

Перезапускаем приложение и убеждаемся, что HTTP порт работает и управление доступно.

Настройки Jellyfin
Далее переходим в web-интерфейс и настраиваем Jellyfin.

Создаём пользователя guest без пароля.

Устанавливаем плагин DLNA.

И включаем его.

В настройках DLNA указываем:
- Enable Play To — ставим галку
- Client Discovery Interval — 30 секунд
- Blast Alive Messages — ставим галку
- Alive Message Interval — 30 секунд
- Send only to matched host — снимаем галку, если не снять, то сервер на телевизоре увидим, но в списке файлов будет пусто
- Default User — выбираем созданного нами пользователя
guest.

В Сетевых параметрах, Параметры адреса сервера.
- Номер локального HTTP-порта: 8096
- HTTPS не использую

Параметры удалённого доступа:
- Разрешить удалённый доступ к данному серверу — установить галку, иначе:
Jellyfin — не найдено ни одного сервера - Режим фильтра внешних IP-адресов — Белый список
- Номер публичного HTTP-порта — 8096
Сетевое обнаружение:
- Включение автоматического обнаружения — установить галку, пусть будет.

Параметры брандмауэра и прокси, Опубликованные серверные URI:
- Указываем URI сервера после прокси, итоговый.
Всё сохраняем, перезагружаем приложение.
