Установка медиа-сервера Jellyfin на сервере или компьютере с операционной системой Ubuntu 22.04/20.04

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

Установите сервер медиа Jellyfin на Ubuntu 20.04.

Возможности 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 для доступа к веб-интерфейсу. Подробности этой настройки будут изложены в следующей части руководства.

Читайте также:  Как в Linux Ubuntu переключить язык на клавиатуре?

Первый этап — определиться с желаемым языком.

установка медиа-сервера Jellyfin на Ubuntu 20.04

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

jellyfin-ubuntu-20.04-apt-repository

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

сервер Jellyfin на Ubuntu 20.04

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

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

путь к медиа-папке Jellyfin

Необходимо убедиться, что пользователь 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/

Если ваш внешний жесткий диск предназначен исключительно для хранения медиафайлов, вы можете поступить так. Однако, если на нем находятся важные или личные данные, делать этого не стоит.

После того как вы завершите добавление медиа-папок, у вас будет возможность настроить параметры библиотеки. Выберите предпочтительный язык, страну и другие настройки.

настройки библиотеки Jellyfin

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

Доступ к Jellyfin из удаленной сети.

Нажмите «Далее», затем «Завершить». После этого выполните вход в свою учетную запись Jellyfin.

Перенастройка.

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

sudo nano /etc/jellyfin/system. xml

true

false

Сохраните изменения в файле и закройте его. После этого перезапустите Jellyfin.

sudo systemctl restart jellyfin

Теперь откройте адрес localhost:8096/web, и вы снова встретите мастер настройки.

Где можно найти и загрузить фильмы и сериалы?

  1. Попробуйте воспользоваться торрент-клиентом, например, Deluge.
  2. Научитесь загружать файлы с Usenet.

Плюсы использования Usenet

  1. Это обеспечивает вам высокий уровень приватности, поскольку другие не имеют доступа к информации о ваших загрузках.
  2. Молниеносная скорость загрузки.
  3. Файлы на Usenet обычно доступны значительно дольше, чем торрент-файлы. К примеру, Newsdemon сохраняет материалы на протяжении 4430 дней (более 12 лет), что позволяет скачивать старый контент с высокой скоростью.

Конфигурация реверсивного прокси.

Поскольку Jellyfin принимает запросы на 127.0.0.1:8096, его веб-интерфейс может быть использован только с локального устройства. Для доступа к веб-интерфейсу Jellyfin с другого компьютера необходимо настроить обратный прокси-сервер, используя Nginx или Apache.

Читайте также:  Установка Squid на CentOS 5.5

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 на весь срок использования.

ServerName jellyfin. example.comОшибка документа 404 /404.html #HTTP прокси ProxyPass / http://localhost:8096/ ProxyPassReverse / http://localhost:8096/ #Websocket прокси SSLProxyEngine включенНастройка ProxyPass для wss://localhost:8096/:/websockets/notifications и обратной прокси для wss://localhost:8096/:/websockets/notifications.Заголовок всегда удаляет X-Frame-Options.

Сохраните изменения в файле и закройте его. После этого активируйте данный виртуальный хост.

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-соединения.

Сертификат теперь необходимо получить и установить автоматически.

включите SSL-сертификат Let's Encrypt для Jellyfin с помощью Certbot

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

веб-интерфейс Jellyfin

Обновление 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. Если вам понравилась эта статья, не забудьте подписаться на нашу бесплатную рассылку, чтобы получать больше информации.