Jellyfin на своём сервере: Synology, Docker, Proxmox и Home Assistant

Jellyfin на своём сервере: Synology, Docker, Proxmox и Home Assistant Docker
Jellyfin на своём сервере: Docker, пакет Synology, Proxmox, Home Assistant и TrueNAS. Порт 8096 и папки с фильмами.

Реклама. ООО «ТАЙМВЭБ.КЛАУД», ИНН 7810945525.

Timeweb

Jellyfin — медиасервер для своих фильмов, сериалов и музыки. Он раздаёт библиотеку на телевизор, телефон и браузер, без подписки и без учётной записи у разработчиков. Ниже — установка на Linux через Docker и пакет Debian/Ubuntu, на Synology двумя способами, в Proxmox, в Home Assistant, на TrueNAS SCALE, в Windows и macOS.

На Synology у меня Jellyfin стоит пакетом SynoCommunity, без Docker. Остальные способы — из документации Jellyfin и из статей этого сайта про ту же машину: сетевая папка в LXC и Home Assistant в Proxmox.

Что такое Jellyfin

Jellyfin хранит метаданные и постеры у вас, а файлы читает из папок, которые вы ему показали. Клиент спрашивает сервер, сервер отдаёт поток. Если телевизор не умеет нужный кодек, сервер перекодирует ролик на лету. На это уходит процессор или встроенная графика.

Это не облачный диск и не торрент-клиент. Фильмы на сервер попадают сами: с диска NAS, из общей папки или из каталога, куда их положила другая программа. Учётная запись Jellyfin нужна только на вашем сервере. Сайт проекта её не выдаёт.

  • Фильмы, сериалы и музыка в одной библиотеке, с продолжением просмотра.
  • Официальные приложения для Android, Android TV, iOS, компьютера, Roku, LG webOS, Samsung Tizen и Xbox.
  • Веб-интерфейс на порту 8096, если отдельного приложения нет.
  • Несколько пользователей с разными библиотеками.

Интерфейс полностью русифицирован, и перевод довольно качественный. Четыре экрана ниже сняты с работающего сервера на Synology: главный экран, библиотека, карточка фильма и воспроизведение.

Главный экран Jellyfin на русском: медиатеки и недавно добавленное
Главный экран: медиатеки и полки «Недавно добавлено». Сервер на Synology, интерфейс по-русски.
Библиотека фильмов Jellyfin на русском
Библиотека фильмов: постеры, сортировка и алфавитный указатель.
Карточка фильма в Jellyfin: название и описание на русском
Карточка фильма. Название и описание по-русски. Имена людей и жанры The Movie Database часто оставляет на английском.
Воспроизведение в Jellyfin с русскими подписями плеера
Воспроизведение: подписи плеера по-русски.

Какой способ поставить

  • Synology без Docker. Пакет SynoCommunity, если Container Manager на модели нет или не хочется контейнер. Так стоит мой NAS. Нужен DSM 7.2 или новее.
  • Synology в Container Manager. Официальный путь Jellyfin: образ jellyfin/jellyfin. В их руководстве — DSM 7.0 или новее и запас от 4 ГБ памяти на контейнер.
  • Linux-сервер. Docker Compose с тем же официальным образом. Так Jellyfin советует ставить систему, для которой нет их пакета.
  • Debian и Ubuntu. Официальный репозиторий, без Docker. Тот же способ внутри контейнера или виртуальной машины Proxmox.
  • Proxmox. LXC-контейнер скриптом community-scripts либо контейнер Debian и официальный установщик. Фильмы с NAS подключаются отдельно.
  • Home Assistant. Аддон ставит сервер только в Home Assistant OS. Встроенная интеграция сервер не ставит: она подключается к уже работающему Jellyfin.
  • TrueNAS SCALE 24.10 или новее. Приложение из каталога либо свой Compose. TrueNAS CORE Jellyfin не поддерживает.
  • Windows и macOS. Установщик с сайта. Контейнер на этих системах проект не поддерживает.

Что нужно до установки

  • Папка с медиа, которую сервер сможет читать. Имена файлов лучше держать обычными: название и год для фильма, «Сериал/Season 01» для сезона.
  • Компьютер, NAS или мини-ПК, который не засыпает, пока кто-то смотрит.
  • Память. Для контейнера на Synology руководство Jellyfin просит не меньше 4 ГБ. Небольшая библиотека без перекодирования живёт и на меньшем объёме, перекодирование 4K — нет.
  • Адрес в своей сети. После установки страница открывается как http://IP:8096. Порт 8096 в интернет лучше не публиковать: снаружи удобнее VPN.

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

Docker Compose

Официальный образ — jellyfin/jellyfin. Он же публикуется как ghcr.io/jellyfin/jellyfin. Образы LinuxServer.io и hotio проект считает сторонними. На Windows и macOS контейнер не поддерживается: там ставят обычную программу.

Сначала нужен Docker Engine и плагин Compose. Команды установки для Ubuntu — в документации Docker. Скрипт get.docker.com там помечен как тестовый. Те же шаги уже разобраны в статье Nextcloud на своём сервере. Опубликованные порты Docker обходят правила ufw и firewalld: что с этим делать, написано в заметке Docker про файрвол и в памятке по VPS.

Каталоги конфигурации и кэша создайте заранее. /srv/media замените на папку, где уже лежат фильмы.

sudo mkdir -p /srv/jellyfin/config /srv/jellyfin/cache

Рядом положите файл docker-compose.yml. Порт 8096 — веб-интерфейс, 7359/udp — обнаружение сервера в локальной сети. Если файлы принадлежат не root, в сервис добавляют строку user с числовыми uid и gid этого пользователя. Без неё процесс в контейнере работает от root, и так написано в инструкции по контейнеру.

services:
  jellyfin:
    image: jellyfin/jellyfin
    container_name: jellyfin
    ports:
      - "8096:8096/tcp"
      - "7359:7359/udp"
    volumes:
      - /srv/jellyfin/config:/config
      - /srv/jellyfin/cache:/cache
      - /srv/media:/media
    restart: unless-stopped

Из каталога с этим файлом:

docker compose up -d

Дальше откройте http://IP-сервера:8096. Аппаратное транскодирование включается уже в панели Jellyfin, раздел Playback, после того как в контейнер проброшено устройство /dev/dri. Как именно это сделать на своём процессоре, разобрано в документации транскодирования.

Debian и Ubuntu

Для Debian, Ubuntu и близких систем у Jellyfin есть скрипт, который подключает репозиторий и ставит пакеты. Сначала скачайте его и проверьте контрольную сумму. Строка install-debuntu.sh: OK значит, что файл совпал с суммой на сайте. Имеет смысл открыть скрипт в less и только потом запускать.

curl -s https://repo.jellyfin.org/install-debuntu.sh -O
curl -s https://repo.jellyfin.org/install-debuntu.sh.sha256sum -O
sha256sum -c install-debuntu.sh.sha256sum
sudo bash install-debuntu.sh

Скрипт рассчитан и на Linux Mint, Raspberry Pi OS и KDE Neon. Для Fedora, Arch и остальных дистрибутивов Jellyfin рекомендует контейнер. Сторонние пакеты есть, но поддержку по ним просят начинать у тех, кто эти пакеты собирает. После установки страница та же: http://IP:8096.

Synology

На NAS два рабочих пути. Пакет SynoCommunity не требует Docker и ставится на модели, где Container Manager недоступен. Контейнер — это способ, который описывает сам Jellyfin. Готовые NAS часто слабоваты для перекодирования: об этом прямо написано в их странице про Synology.

Пакет SynoCommunity

Репозиторий подключается один раз: Центр пакетов → Настройки → Источники пакетов → Добавить. Имя можно задать SynoCommunity, расположение — https://packages.synocommunity.com. Дальше пакет лежит в разделе Сообщество. Предупреждение DSM 7, что издатель сторонний, появляется у каждого такого пакета. Подробности источника, права на папки и ручная установка spk — в статье Synology без Docker.

  1. Центр пакетов → Сообщество → Jellyfin → Установить. Пакету нужен DSM 7.2 или новее.
  2. Панель управления → Общая папка → папка с кино → Изменить → Разрешения. В списке сверху выберите «Внутренний пользователь системы» и найдите sc-jellyfin.
  3. Поставьте «Только чтение» и нажмите ОК. Jellyfin файлы не изменяет, писать ему в медиатеку не нужно.
  4. Перезапустите пакет в Центре пакетов.
  5. Откройте http://IP-NAS:8096 и пройдите мастер.

Если библиотека пустая, почти всегда не хватает права на чтение или на родительские папки не включён обзор. На Intel-процессоре аппаратное транскодирование включается пакетом SynoCli Video Driver из того же раздела Сообщество: в Jellyfin это Панель управления → Воспроизведение → Транскодирование → Video Acceleration API (VAAPI) и устройство /dev/dri/renderD128. Если доступ к устройству запрещён, пользователю sc-ffmpeg нужны те же права на медиа, что и sc-jellyfin.

Container Manager

  1. В Центре пакетов установите Container Manager. Значок может быть спрятан в главном меню слева сверху.
  2. Вкладка Registry, поиск Jellyfin, официальный образ jellyfin/jellyfin, Download. В окне версии оставьте latest и нажмите Apply.
  3. Вкладка Container → Create. Выберите скачанный образ, задайте имя и включите auto-restart, чтобы контейнер поднимался вместе с NAS.
  4. В лимитах руководство Jellyfin советует отдать контейнеру все ядра и не меньше 4 ГБ памяти.
  5. В томах добавьте три папки. Точка монтирования /config — настройки, /cache — кэш и временные файлы перекодирования, /media — фильмы. Папку /media можно подключить только для чтения.
  6. Пробросьте порт 8096 TCP. Если мастер спрашивает локальный порт, оставьте 8096.
  7. На последнем шаге включите запуск после мастера и нажмите Apply.
  8. С другого устройства откройте http://IP-NAS:8096.

Proxmox

В Proxmox Jellyfin удобно держать в LXC: контейнер легче виртуальной машины, а диски с кино остаются на NAS. Готовый контейнер ставит скрипт community-scripts. Команду выполняйте в оболочке узла, не внутри другой виртуальной машины.

bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/ct/jellyfin.sh)"

Скрипт скачивается с GitHub. У части провайдеров raw.githubusercontent.com открывается с перебоями, и установка обрывается на загрузке. Тогда создайте контейнер Debian или Ubuntu из шаблона Proxmox и внутри него выполните официальный установщик из раздела Debian и Ubuntu.

Скрипт сам спрашивает параметры контейнера. Когда он закончит, веб-интерфейс открывается по адресу контейнера и порту 8096. Папку Synology или другого NAS в непривилегированный LXC нельзя смонтировать изнутри: шару монтирует хост Proxmox и пробрасывает её точкой монтирования. Пошагово это разобрано в статье SMB в LXC для Jellyfin. Пока эта папка не проброшена, мастер установки запустится, но библиотека будет пустой.

Home Assistant

В Home Assistant легко перепутать две разные вещи. Интеграция Jellyfin в разделе «Настройки → Устройства и службы» только подключает уже работающий сервер как источник музыки и фильмов. Саму программу она не ставит. Аддон с сервером есть лишь там, где есть магазин приложений, то есть в Home Assistant OS. Как поставить HAOS в Proxmox, написано в статье Home Assistant в Proxmox.

Своего аддона у проекта Jellyfin нет. Рабочий вариант — сторонний репозиторий alexbelgium/hassio-addons: аддон Jellyfin там собран на образе LinuxServer.io, не на пакете с сайта Jellyfin.

  1. Настройки → Приложения → Магазин приложений. Меню из трёх точек → Репозитории.
  2. Добавьте https://github.com/alexbelgium/hassio-addons и обновите список.
  3. Найдите Jellyfin, установите и запустите.
  4. В настройках аддона укажите папку с фильмами. У этого аддона она называется data_location. Пароль сетевой папки заполняйте только если аддон сам монтирует чужой диск. Если файлы уже видны Home Assistant, достаточно пути к ним.
  5. Откройте веб-интерфейс аддона. Обычный порт Jellyfin — 8096.

Когда сервер ответил, интеграцию добавляют отдельно: Настройки → Устройства и службы → Добавить интеграцию → Jellyfin. В поле адреса нужен полный URL, например http://192.168.1.10:8096. Так пишет документация интеграции. В Home Assistant из этой связки видны музыка, фильмы и сериалы, остальные типы библиотек — нет. Если Home Assistant у вас в Docker без магазина приложений, сервер ставьте соседним контейнером из раздела Docker Compose, а в Home Assistant добавьте только интеграцию.

TrueNAS SCALE

Jellyfin поддерживает TrueNAS SCALE 24.10 и новее, потому что приложения там работают на Linux и Docker. TrueNAS CORE основан на FreeBSD, и Jellyfin его не поддерживает: неофициальные сборки — чужой проект. Приложение в каталоге SCALE собрано на официальном образе jellyfin/jellyfin, но сопровождает его iXsystems, не команда Jellyfin. Вопросы по кнопкам каталога лучше задавать в поддержку TrueNAS. Описание обоих способов — в инструкции Jellyfin для SCALE.

Каталог приложений: Apps → Discover Apps → Jellyfin → Install. Если карточки нет, обновите каталог. Имя можно оставить как есть. Пользователь и группа по умолчанию — 568, это служебная учётная запись apps, ею нельзя войти в веб-интерфейс Jellyfin. Администратора создаёт мастер на порту веб-интерфейса. Штатный порт приложения в SCALE — 30013. Его стоит сменить на 8096, иначе телефоны и телевизоры не найдут сервер сами: они ищут именно 8096. Host Network включайте только если нужен DLNA. Для конфигурации, кэша и временных файлов перекодирования заведите три датасета на SSD, а не на тех же дисках, где лежит медиатека.

Второй способ — своё приложение из Compose: Discover Apps → меню из трёх точек → Install via YAML. Вставьте файл из раздела Docker Compose, поправьте пути на /mnt/… и при необходимости укажите user: «568:568». Такой вариант потом редактируется как YAML. Мастер SCALE без YAML после установки правится только формой.

Windows и macOS

На Windows скачайте установщик со страницы загрузок Jellyfin и запустите его. Службу Windows инструкция помечает как необязательную и не рекомендует её без нужды. Если установщик дошёл до конца, откройте http://локальный-IP:8096. Обновление — тот же установщик, перед этим Jellyfin закрывают из значка в трее. Удаление — через «Приложения» Windows.

На Mac скачайте DMG с той же страницы. Для Apple Silicon на macOS старше 14 берите более новую систему или сборку x86. Перетащите приложение в «Программы», запустите, в строке меню нажмите Launch. Обновление ставят поверх, предварительно остановив сервер из строки меню или из панели.

Другие системы

На Unraid Jellyfin есть в Community Applications как шаблон сообщества, не как пакет с сайта Jellyfin. Смысл полей тот же, что в Docker Compose: образ jellyfin/jellyfin, порт 8096, каталоги config, cache и media. На остальных дистрибутивах Linux, где нет официального репозитория, Jellyfin тоже просит контейнер.

Первый запуск

Мастер один и тот же на всех установках. Он спрашивает язык интерфейса, имя и пароль администратора и папки библиотек. Русский перевод полный и довольно качественный. Тип библиотеки задайте сразу: фильмы, сериалы или музыка. Смешивать их в одной папке не стоит, иначе сезоны и фильмы перепутаются.

Метаданные на русском

Отдельный плагин Кинопоиска не нужен. На скриншоте панели его нет. Названия и описания фильмов и сериалов скачивает The Movie Database. Музыку описывает MusicBrainz. OMDb в комплекте тоже есть, но документация Jellyfin прямо указывает: этот источник отдаёт только английский текст.

Язык задаётся в настройках медиатеки. Панель управления → Медиатеки → «Добавить медиатеку» или «Управление медиатекой». В поле «Предпочитаемый язык для загрузки» выберите русский, в поле «Страна/Регион» — Россию. Мастер при первом запуске спрашивает то же. Это значения по умолчанию, у каждой медиатеки их можно задать отдельно.

Смена языка не переписывает уже скачанные карточки. Откройте меню фильма или медиатеки и нажмите «Обновить метаданные», затем «Замена всех метаданных». «Поиск отсутствующих метаданных» оставляет старый текст как есть.

Название, описание и постер чаще приходят по-русски. Имена людей, студию и жанры TMDb нередко оставляет на английском. Так устроена их база, это не пробел в переводе интерфейса.

Плагины Jellyfin: TMDb, OMDb и MusicBrainz, без Кинопоиска
Плагины в панели. Русский текст фильмов даёт TMDb. Плагина Кинопоиска нет.

Предлагаемый удалённый доступ на этом шаге лучше не включать, если вы не ставите перед Jellyfin свой обратный прокси и не понимаете, кто увидит порт. В домашней сети достаточно http://IP:8096. С улицы подключайтесь через VPN, а не через проброс 8096 на роутере. Учётную запись администратора не используйте на телевизоре: заведите отдельного пользователя с доступом только к нужным библиотекам.

Клиенты

Список официальных приложений — на jellyfin.org/downloads: Jellyfin Media Player для компьютера, Android, Android TV и Fire TV, iOS и iPadOS, Roku, LG webOS, Samsung Tizen, Xbox и дополнение JellyCon для Kodi. В магазине Roku приложение может показывать требование подписки на кабельное телевидение. Это ограничение витрины Roku, подписка Jellyfin не нужна. В браузере сервер открывается и без приложения.

Частые вопросы

Чем Jellyfin отличается от Plex

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

Почему библиотека пустая

Сервер не видит папку. На Synology это пользователь sc-jellyfin без права чтения. В Docker — чужой владелец каталога и не указанный user. В LXC Proxmox — шара не проброшена с хоста, внутри контейнера её просто нет. После правки прав библиотеку обновляют из меню библиотеки, не переустанавливая сервер.

Какой порт открывать

В локальной сети — 8096 TCP. Порт 7359 UDP нужен только для автоматического поиска сервера. На TrueNAS SCALE мастер подставляет 30013, его меняют на 8096. В интернет эти порты лучше не выставлять.

Можно ли поставить Jellyfin в Home Assistant Container

Магазина приложений там нет, поэтому аддон не установится. Сервер ставят отдельным контейнером Docker, а в Home Assistant добавляют интеграцию по адресу этого контейнера.

Рубрики: Docker Proxmox Веб-приложения Программы и сервисы
Подписаться на новые статьи (RSS)

Без почты и трекеров — только лента обновлений.

Также есть английская лента

Оцените статью
Добавить комментарий