Представь, что у тебя есть мощный NAS на базе TrueNAS, заполненный терабайтами фильмов, сериалов и музыки. Но чтобы получить к этому контенту удобный доступ с любого устройства, с красивыми обложками, метаданными и транскодированием "на лету", нужен медиасервер. Jellyfin — это идеальное open-source решение, и сегодня я, как твой DevOps-ментор, покажу, как развернуть его на TrueNAS Scale так, чтобы всё работало как часы.
Почему именно Jellyfin на TrueNAS Scale?
Давай разберем преимущества этой связки, прежде чем переходить к технической части:
- Полный контроль: Никакой подписки, никаких ограничений. Весь софт — open source.
- Мощное железо: TrueNAS обычно работает на серверных компонентах, что идеально для ресурсоемкого транскодирования видео.
- Интеграция хранилища: Прямой доступ к твоим ZFS-пулам и датасетам из контейнера.
- Централизованное управление: Весь твой медиа-стек управляется через единый веб-интерфейс TrueNAS.
Подготовка TrueNAS Scale к установке Jellyfin
Перед тем как нажать кнопку "Установить", нужно подготовить почву. Представь, что это настройка stage-окружения для нового микросервиса.
Шаг 1: Создание Dataset'ов для медиа и конфигурации
Не храни конфиги и медиафайлы в одном месте. Создай отдельные датасеты для лучшей организации и возможности делать снэпшоты только конфигов.
- Зайди в Datasets в боковом меню TrueNAS.
- Выбери пул, где хочешь хранить данные (например,
tank). - Нажми Add Dataset и создай:
tank/apps/jellyfin-config— для конфигурационных файлов.tank/media/movies— для фильмов.tank/media/tvshows— для сериалов.tank/media/music— для организации твоей TrueNAS music библиотеки под Jellyfin.
- Для датасета
jellyfin-configв настройках ACL (Permissions) установи тип APPS — это важно для корректной работы контейнера.
Шаг 2: Настройка GPU для аппаратного транскодирования (опционально, но очень рекомендуется)
Если на твоем сервере есть дискретная видеокарта (NVIDIA или Intel Quick Sync), её можно "пробросить" в контейнер для разгрузки CPU.
# Проверь, видит ли система GPU (выполни из Shell TrueNAS)
lspci | grep -i vga
# или для NVIDIA
nvidia-smi
Далее зайди в System Settings → Advanced и в разделе Isolated GPU Device(s) укажи ID твоей GPU (например, 0000:01:00.0). После перезагрузки система выделит её для контейнеров.
Установка Jellyfin через систему Apps (TrueNAS Catalog)
Это самый простой и рекомендуемый способ установки Jellyfin на TrueNAS Scale. Каталог Apps — это, по сути, репозиторий готовых Helm-чартов.
- Зайди в раздел Apps.
- Убедись, что каталоги обновлены. Нажми "Discover Apps", если список пуст.
- Найди "Jellyfin" в поиске или списке.
- Нажми "Install". Откроется форма конфигурации.
Конфигурация установки Jellyfin
Вот самые важные настройки, на которые нужно обратить внимание. Не пропускай этот раздел!
| Параметр | Значение / Описание | Важность |
|---|---|---|
| Application Name | jellyfin (можно оставить по умолчанию) |
Низкая |
| Version | Выбери последнюю стабильную (stable) | Средняя |
| Configuration Storage | Host Path: Укажи созданный ранее /mnt/tank/apps/jellyfin-configMount Path: /config |
Критическая |
| Media Storage | Добавь несколько точек монтирования для каждой библиотеки: 1. Host Path: /mnt/tank/media/movies → Mount Path: /media/movies2. Host Path: /mnt/tank/media/tvshows → /media/tvshows3. Host Path: /mnt/tank/media/music → /media/music |
Критическая |
| Network & Services | Service Type: ClusterIP (для доступа только внутри сети) или NodePort (если хочешь свой порт). Чаще меняют на NodePort и задают порт, например, 8096 для веб-интерфейса. |
Средняя |
| GPU Configuration | Если настраивал GPU, в разделе Add выбери тип ресурса (nvidia.com/gpu или GPU) и укажи лимит (например, 1). | Средняя |
После заполнения нажми "Save". TrueNAS развернет контейнер с Jellyfin. Процесс займет несколько минут. Статус сменится на "Active" в основном меню Apps.
Первоначальная настройка Jellyfin и добавление библиотек
- Открой веб-интерфейс Jellyfin. В карточке приложения в Apps нажми "Web Portal" или перейди по адресу
http://<IP_ТВОЕГО_TRUENAS>:8096. - Пройди мастер первоначальной настройки: Выбери язык, создай административного пользователя.
- Добавление медиабиблиотек — ключевой момент:
- Зайди в Dashboard → Libraries.
- Нажми Add Media Library.
- Content Type: Movies. Folder: Выбери
/media/movies. Нажми OK. - Повтори для TV Shows (папка
/media/tvshows) и для Music (папка/media/music). Вот так твоя TrueNAS music коллекция становится частью Jellyfin.
- Jellyfin начнет сканирование библиотек и загрузку метаданных (обложек, описаний).
Настройка транскодирования (Playback → Transcoding)
Зайди в Dashboard → Playback. Вот где пригодится GPU.
# Пример настроек для аппаратного транскодирования:
# Hardware Acceleration: Выбери в зависимости от GPU:
# - Intel Quick Sync: `Video Acceleration API (VAAPI)`
# - NVIDIA: `NVENC`
# - AMD: `AMD AMF`
#
# Транскодировать все медиафайлы в: H.264 (широко поддерживается).
# Максимальное количество одновременных трансформаций: 2-4 (зависит от мощности GPU).
Продвинутая настройка: Ручное редактирование через Helm-чарт
Если тебе не хватает опций в графическом интерфейсе установки (например, нужно добавить переменные среды или изменить аргументы запуска), можно отредактировать развернутое приложение.
- В карточке приложения Jellyfin в Apps нажми три точки (⋮) и выбери Edit.
- Перейди на вкладку Advanced Settings → Edit YAML.
- Добавь нужные параметры в секцию
envилиargs. Например, для принудительного использования русского языка в интерфейсе:
# В секции основного контейнера (jellyfin) добавь:
env:
- name: LANG
value: "ru_RU.UTF-8"
- name: LANGUAGE
value: "ru_RU.UTF-8"
- name: LC_ALL
value: "ru_RU.UTF-8"
# Это пример. Не копируй слепо, если у тебя уже есть секция env.
Часто задаваемые вопросы (FAQ) по Jellyfin и TrueNAS
Как обновить Jellyfin до новой версии?
В карточке приложения в Apps нажми "Update Available" или выбери вручную новую версию через Edit → Version. TrueNAS сделает rolling update без потери данных, так как конфиги хранятся на отдельном томе.
Почему Jellyfin не видит мои файлы в смонтированной папке?
Проблема в правах доступа (Permissions). Убедись, что:
- Датасет с медиа имеет ACL, разрешающий чтение пользователю/группе
apps(или568). - В настройках монтирования (Storage) в Apps не стоит галочка Read Only.
- Попробуй в Shell TrueNAS дать права:
chmod -R 755 /mnt/tank/mediaиchown -R apps:apps /mnt/tank/media.
Как организовать резервное копирование конфигурации Jellyfin?
Проще простого! Ты уже создал отдельный датасет jellyfin-config. Просто настрой периодические снэпшоты (Snapshots) для этого датасета через меню Data Protection → Snapshots. Восстановление — это откат снэпшота. Для переноса на другой сервер можно использовать репликацию ZFS.
Можно ли использовать один экземпляр Jellyfin для нескольких пользователей TrueNAS?
Да, Jellyfin имеет встроенную систему пользователей с разными уровнями доступа. В её настройках создай учетные записи для членов семьи и назначь права на библиотеки. TrueNAS здесь выступает только как платформа для хостинга, управление доступом к контенту происходит внутри самого Jellyfin.
Заключение
Развертывание Jellyfin на TrueNAS Scale — это не просто установка приложения. Это создание отказоустойчивой, управляемой и мощной медиа-инфраструктуры у себя дома. Ты получаешь все преимущества ZFS (снэпшоты, репликация, целостность данных) в сочетании с лучшим open-source медиасервером.
Ключевые моменты для успеха:
- Правильная подготовка датасетов отдельно для конфигов и медиа.
- Внимательная настройка монтирования томов при установке из каталога Apps.
- Использование GPU для транскодирования — это меняет правила игры.
- Резервное копирование через ZFS-снэпшоты конфигурационного датасета.
Теперь у тебя есть собственный Netflix, который полностью под твоим контролем, не зависит от подписок и использует мощь твоего TrueNAS-сервера. Осталось лишь наполнить библиотеки контентом и наслаждаться просмотром с любого устройства.