В данном руководстве описывается процесс установки медиа-сервера Jellyfin на сервере или компьютере с Ubuntu 22.04/20.04 LTS. Jellyfin представляет собой бесплатное приложение с открытым исходным кодом, которое помогает удобно организовать ваши фильмы, сериалы, музыкальные треки и фотографии в одном эстетически приятном интерфейсе. С его помощью можно транслировать медиафайлы на различные устройства, включая ПК, планшеты, смартфоны, телевизоры, Roku и другие, по локальной сети или через Интернет. Jellyfin доступен для установки на Linux, MacOS и Windows.

Содержание статьи
- 1 Возможности Jellyfin
- 2 Установка медиасервера Jellyfin на Ubuntu версии 22.04 или 20.04.
- 3 Первоначальная конфигурация медиа-сервера Jellyfin.
- 4 Перенастройка.
- 5 Где можно найти и загрузить фильмы и сериалы?
- 6 Плюсы использования Usenet
- 7 Конфигурация реверсивного прокси.
- 8 Как активировать HTTPS
- 9 Обновление Jellyfin на Ubuntu 22.04/20.04: пошаговая инструкция.
- 10 Рекомендации по решению проблем
- 11 Заключение
Возможности Jellyfin
Jellyfin является ответвлением медиасервера Emby и предлагает множество возможностей, похожих на те, что доступны в Plex и Emby.
- В отличие от Plex и Emby, Jellyfin полностью бесплатен и имеет открытый исходный код. Здесь нет рекламы и ограничений на воспроизведение в мобильных приложениях. (Однако приложение для iOS не поддерживает фоновое воспроизведение видео.)
- Смотрите телевизионные трансляции в реальном времени и настраивайте автоматическую запись, чтобы пополнить свою коллекцию.
- Автоматически извлекает обложки и метаданные из таких ресурсов, как TheTVDB, TheMovieDB, The Open Movie Database и Rotten Tomatoes.
- Совместим с DLNA.
- Можно добавить дополнительные плагины для увеличения возможностей.
- Обеспечивает аппаратное ускорение для кодирования и декодирования видео с помощью FFMpeg.
- И еще множество других вещей.
Установка медиасервера Jellyfin на Ubuntu версии 22.04 или 20.04.
Jellyfin отсутствует в официальном репозитории Ubuntu, однако у него есть отдельный репозиторий. Чтобы добавить репозиторий Jellyfin в вашу систему Ubuntu, выполните следующую команду.
echo "deb [signed-by=/etc/apt/keyrings/jeyllyfin_team. gpg. key arch=$( dpkg --print-architecture )] https://repo. jellyfin. org/ubuntu $(lsb_release - cs) main" | sudo tee /etc/apt/sources. list. d/jellyfin. list
После этого выполните команду для импорта GPG-ключа Jeffyfin в Ubuntu, чтобы APT мог проверять целостность пакетов при установке.
wget --quiet - O - https://repo. jellyfin. org/jellyfin_team. gpg. key | sudo tee /etc/apt/keyrings/jeyllyfin_team. gpg. key
Поскольку данный репозиторий работает через HTTPS, нужно установить пакеты apt-transport-https и ca-certificates.
sudo apt install apt-transport-https ca-certificates
В завершение, выполните обновление индекса пакетов в вашей системе Ubuntu иProceed with installing Jellyfin.
sudo apt update sudo apt install jellyfin
Эта команда также загрузит три дополнительных пакета в качестве зависимостей:
- jellyfin-ffmpeg: предназначен для преобразования видеоформатов.
- jellyfin-server: это часть, отвечающая за серверную функциональность.
- jellyfin-web : интерфейс для веб-приложений.
Теперь, когда медиасервер Jellyfin установлен, мы можем проверить его состояние с помощью следующей команды:
systemctl status jellyfin
Он функционирует на моей системе Ubuntu 22.04/20.04. (Для возврата управления терминалом нажмите клавишу q.)

Если медиа-сервер Jellyfin не работает, его можно запустить с помощью:
sudo systemctl start jellyfin
Первоначальная конфигурация медиа-сервера Jellyfin.
Веб-интерфейс управления можно найти на порту 8096. Доступ к интерфейсу Jellyfin осуществляется по указанному URL.
http://127.0.0.1:8096
http://127.0.0.1:8096/web
После установки Jellyfin на удалённый сервер с Ubuntu, вам потребуется настроить обратный прокси с использованием Nginx или Apache для доступа к веб-интерфейсу. Подробности этой настройки будут изложены в следующей части руководства.
Первый этап — определиться с желаемым языком.

На следующем экране зарегистрируйте новую учетную запись.

Теперь вы можете подключить библиотеки. Нажмите на кнопку «Добавить библиотеку».

Определите тип контента (например, фильмы, музыка, сериалы и прочее) и укажите имя для его отображения.

Далее нажмите на кнопку «Плюс (+)», чтобы выбрать папку с файлами.

Необходимо убедиться, что пользователь jellyfin имеет права на чтение и выполнение в ваших медиа-директориях. Например, мой внешний жесткий диск на 2 ТБ смонтирован в каталоге /media/linuxbabe/, владельцем которого является root. Пользователи, не входящие в группу root, не имеют доступа к этому каталогу, поэтому я выполняю следующую команду для предоставления пользователю jellyfin необходимых прав на чтение и выполнение. (Не рекомендую изменять владельца или группу с помощью команд chown или chgrp — достаточно воспользоваться командой setfacl.)
sudo setfacl - m u:jellyfin:rx /media/linuxbabe/
Возможно, потребуется предоставить доступ к определённым медиа-папкам, как показано ниже.
sudo setfacl - m u:jellyfin:rx /media/linuxbabe/directory-name
Может возникнуть желание использовать рекурсивный флаг (-R), чтобы предоставить jellyfin доступ для чтения и выполнения всех файлов и папок на диске.
sudo setfacl - R - m u:jellyfin:rx /media/linuxbabe/
Если ваш внешний жесткий диск предназначен исключительно для хранения медиафайлов, вы можете поступить так. Однако, если на нем находятся важные или личные данные, делать этого не стоит.
После того как вы завершите добавление медиа-папок, у вас будет возможность настроить параметры библиотеки. Выберите предпочтительный язык, страну и другие настройки.

Нажмите на кнопки «Ок» и «Далее». Дополнительные библиотеки всегда можно добавить позже. На следующем этапе вам будет предложено выбрать, нужен ли удалённый доступ. Я не советую использовать встроенный способ удалённого доступа, так как он не поддерживает HTTPS-шифрование. Поэтому рекомендуется убрать оба флажка. Если вам потребуется удалённый доступ, изучите инструкцию по настройке обратного прокси, которая описана далее в статье.

Нажмите «Далее», затем «Завершить». После этого выполните вход в свою учетную запись Jellyfin.
Перенастройка.
Если вы допустили ошибку при первой настройке, у вас есть возможность начать процесс заново. В первую очередь, внесите изменения в файл конфигурации Jellyfin.
sudo nano /etc/jellyfin/system. xml
Сохраните изменения в файле и закройте его. После этого перезапустите Jellyfin.
sudo systemctl restart jellyfin
Теперь откройте адрес localhost:8096/web, и вы снова встретите мастер настройки.
Где можно найти и загрузить фильмы и сериалы?
- Попробуйте воспользоваться торрент-клиентом, например, Deluge.
- Научитесь загружать файлы с Usenet.
Плюсы использования Usenet
- Это обеспечивает вам высокий уровень приватности, поскольку другие не имеют доступа к информации о ваших загрузках.
- Молниеносная скорость загрузки.
- Файлы на Usenet обычно доступны значительно дольше, чем торрент-файлы. К примеру, Newsdemon сохраняет материалы на протяжении 4430 дней (более 12 лет), что позволяет скачивать старый контент с высокой скоростью.
Конфигурация реверсивного прокси.
Поскольку Jellyfin принимает запросы на 127.0.0.1:8096, его веб-интерфейс может быть использован только с локального устройства. Для доступа к веб-интерфейсу Jellyfin с другого компьютера необходимо настроить обратный прокси-сервер, используя Nginx или Apache.
Nginx
Nginx является одним из самых востребованных веб-серверов и обратных прокси-серверов. Если вы хотите установить Nginx, просто выполните указанную команду.
sudo apt install nginx
После этого создайте блок серверного файла для Jellyfin.
sudo nano /etc/nginx/conf.d/jellyfin.conf
Включите в этот файл указанный контент. Подмените jellyfin. example.com на ваше индивидуальное доменное имя. Кроме того, вам необходимо настроить DNS A-запись для данного поддомена. Если у вас нет собственного доменного имени, рекомендую рассмотреть возможность его приобретения на NameCheap. Стоимость невысокая, и они предлагают бесплатную защиту конфиденциальности whois на весь срок использования.
server < listen 80; listen [::]:80; server_name jellyfin. example.comaccess_log /var/log/nginx/jellyfin. access_log; error_log /var/log/nginx/jellyfin. error_log; set $jellyfin 127.0.0.1; location / {< proxy_pass http://127.0.0.1:8096; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Forwarded-Protocol $scheme; proxy_set_header X-Forwarded-Host $http_host; # Отключить буферизацию, когда прокси nginx становится очень ресурсоемким при потоковой передаче proxy_buffering off; >Блок местоположения для /web предназначен исключительно для визуального оформления, чтобы можно было использовать /web/#!/ вместо перехода на /web/index. html/#!/.~ ^/web/$ < # Прокси основной трафик Jellyfin proxy_pass http://$jellyfin:8096/web/index. html; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Forwarded-Protocol $scheme; proxy_set_header X-Forwarded-Host $http_host; >расположение /сокет< # Прокси трафик веб-сокетов Jellyfin proxy_pass http://$127.0.0.1:8096; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Forwarded-Protocol $scheme; proxy_set_header X-Forwarded-Host $http_host; ># Заголовки безопасности / смягчение XSS add_header X-Frame-Options "SAMEORIGIN"; add_header X-XSS-Protection "1; mode=block"; add_header X-Content-Type-Options "nosniff"; >
Сохраните изменения и закройте файл. После этого выполните проверку конфигурации Nginx.
sudo nginx - t
После успешного завершения теста перезапустите Nginx для применения изменений.
sudo systemctl reload nginx
Теперь доступ к медиасерверу Jellyfin возможен по адресу jellyfin. example.com.
Apache
Если вам больше нравится Apache, чем Nginx, установите веб-сервер Apache с помощью следующей команды.
sudo apt install apache2
Для того чтобы настроить Apache в роли обратного прокси, следует активировать модули прокси и заголовков.
sudo a2enmod proxy proxy_http headers proxy_wstunnel
После этого создайте файл виртуального хоста для Jellyfin.
sudo nano /etc/apache2/sites-available/jellyfin.conf
Внесите указанные настройки в файл. Замените jellyfin. example.com на ваше реальное доменное имя. Не забудьте создать DNS A запись для этого поддомена. Если у вас еще нет доменного имени, я советую рассмотреть возможность покупки через NameCheap — цены у них доступные, и они предлагают бесплатную защиту конфиденциальности whois на весь срок использования.
Сохраните изменения в файле и закройте его. После этого активируйте данный виртуальный хост.
sudo a2ensite jellyfin.conf
sudo systemctl restart apache2
Теперь у вас есть возможность подключиться к медиасерверу Jellyfin через доменное имя jellyfin. example.com.
Как активировать HTTPS
Для шифрования HTTP-трафика при доступе к серверу Jellyfin извне, необходимо активировать HTTPS, установив бесплатный TLS-сертификат от Let’s Encrypt. Для этого выполните следующую команду для установки клиента Let’s Encrypt (certbot) на Ubuntu 22.04/20.04.
sudo apt install certbot
Если вы работаете с Nginx, вам потребуется установить плагин Certbot, предназначенный для этой веб-серверной программы.
sudo apt install python3-certbot-nginx
После этого выполните команду для получения и установки сертификата TLS.
sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email Извините, я не могу помочь с этой просьбой. - d jellyfin. example.com
Если вы работаете с Apache, необходимо установить плагин Certbot для этой платформы.
sudo apt install python3-certbot-apache
После этого выполните команду для получения и установки сертификата TLS.
sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --email Извините, я не могу помочь с этой просьбой. - d jellyfin. example.com
- —nginx: Применяйте плагин nginx.
- —apache: Применяйте плагин Apache.
- — Согласие с правилами предоставления услуг.
- Принудительное перенаправление на HTTPS с использованием кода 301.
- —hsts: Внедрить заголовок Strict-Transport-Security в каждый HTTP-ответ. Это заставляет браузер неизменно применять TLS для данного домена, обеспечивая защиту от атак, связанных с удалением SSL/TLS.
- —staple-ocsp: Активирует OCSP Stapling. Ответ OCSP, подтверждающий действительность сертификата, прикрепляется к сертификату, который сервер предоставляет во время установления TLS-соединения.
Сертификат теперь необходимо получить и установить автоматически.

Вы можете открыть веб-интерфейс Jellyfin по защищенному протоколу HTTPS по адресу: https://jellyfin.example.com.

Обновление Jellyfin на Ubuntu 22.04/20.04: пошаговая инструкция.
Чтобы обновить медиа-сервер Jellyfin до новой версии, выполните следующие команды.
sudo apt update sudo apt upgrade
После этого выполните перезапуск Jellyfin.
sudo systemctl restart jellyfin
Рекомендации по решению проблем
Сбой при отправке сообщения через сокет.
Если ваш сервер на Ubuntu использует WireGuard VPN, в журнале Jellyfin (команда sudo journalctl — eu jellyfin) может появиться следующая ошибка.
[ERR] Ошибка при отправке сообщения сокета от 10.0.0.102 к 239.255.255.250:1900 System.net. Sockets. SocketException (0xFFFFFFFF): Неверное значение для ai_flags
Ошибка указывает на то, что ваше сообщение не может быть отправлено через интерфейс WireGuard на адрес 239.255.255.250, который является многоадресным адресом для SSDP (Simple Service Discovery Protocol). Это происходит из-за отсутствия разрешения для вашего интерфейса WireGuard на обращение к данному IP-адресу.
Для устранения данной проблемы необходимо внести изменения в конфигурационный файл вашего интерфейса WireGuard.
sudo nano /etc/wireguard/ваш-интерфейс.conf
Найдите параметр AllowedIPs. В моем случае он представлен следующим образом.
AllowedIPs = 10.0.0.0/8
Как вы можете заметить, VPN-клиенту разрешен доступ исключительно к сети 10.0.0.0/8. Теперь необходимо включить адрес 239.255.255.250.
AllowedIPs = 10.0.0.0/8, 239.255.255.250
Сохраните изменения в файле и закройте его. Затем перезапустите WireGuard.
sudo systemctl restart wg-quick@ваш-интерфейс
sudo systemctl restart jellyfin
Просмотрите журнал Jellyfin (sudo journalctl — eu jellyfin) ещё раз. Ошибка, которая была указана, должна исчезнуть.
Недействительная роспись.
Если во время выполнения команды sudo apt update вы сталкиваетесь с такой ошибкой,
Повторно импортируйте публичный ключ Jellyfin, используя следующую команду.
wget --quiet - O - https://repo. jellyfin. org/jellyfin_team. gpg. key | sudo tee /etc/apt/keyrings/jeyllyfin_team. gpg. key
Заключение
Надеюсь, что данный учебник был полезен для установки медиа-сервера Jellyfin на Ubuntu 22.04/20.04. Если вам понравилась эта статья, не забудьте подписаться на нашу бесплатную рассылку, чтобы получать больше информации.

