Установка Jellyfin Media Server на Debian 10 Buster: пошаговое руководство

В этом руководстве мы расскажем, как установить медиа-сервер Jellyfin на сервер или настольный компьютер с Debian 10. Jellyfin — это бесплатное приложение с открытым исходным кодом, которое помогает организовать ваши фильмы, сериалы, музыку и фотографии в одном удобном интерфейсе, позволяя транслировать медиафайлы на ПК, планшеты, телефоны, телевизоры, Roku и другие устройства по сети или через интернет. Установить Jellyfin можно на операционных системах Linux, MacOS и Windows.

Установите медиа-сервер Jellyfin на Debian 10 Buster.

Характерные черты Jellyfin

Jellyfin представляет собой ответвление медиасервера Emby. Он обладает рядом схожих возможностей с Plex и Emby.

  • В отличие от Plex и Emby, Jellyfin полностью бесплатен и имеет открытый исходный код. Здесь нет рекламы, и вы можете воспроизводить контент в мобильных приложениях без ограничений. (Однако приложение для iOS не поддерживает фоновое воспроизведение видео.)
  • Просматривайте прямые эфиры и настройте автоматическую запись, чтобы увеличить свою коллекцию.
  • Автоматически получает обложки и метаданные из таких источников, как TheTVDB, TheMovieDB, OpenMovie Database и Rotten Tomatoes.
  • Совместим с DLNA.
  • Можно добавить дополнительные плагины для расширения функционала.
  • Поддерживает аппаратное ускорение для кодирования и декодирования видео с применением FFMpeg.
  • И множество других вещей.

Настройка Jellyfin Media Server на Debian 10.

Jellyfin отсутствует в стандартном репозитории Debian, однако у него имеется собственный репозиторий. Чтобы добавить репозиторий Jellyfin в вашу систему Debian 10, выполните следующую команду.

echo "deb [arch=$( dpkg --print-architecture )] https://repo. jellyfin. org/debian buster main" | sudo tee /etc/apt/sources. list. d/jellyfin. list

После этого выполните команду для импорта GPG-ключа Jeffyfin в вашу систему Debian, чтобы APT мог проверять корректность пакетов во время установки.

wget - O - https://repo. jellyfin. org/jellyfin_team. gpg. key | sudo apt-key add -

Так как данный репозиторий работает через HTTPS, нам потребуется установить пакеты apt-transport-https и ca-certificates.

sudo apt install apt-transport-https ca-certificates

В конце концов, обновите репозиторий пакетов в вашей системе Debian и выполните установку Jellyfin.

sudo apt update sudo apt install jellyfin

Эта команда также загрузит три дополнительных пакета в качестве зависимостей.

  • jellyfin-ffmpeg: предназначен для преобразования видео.
  • jellyfin-server : компонент, отвечающий за серверную часть.
  • jellyfin-web : интерфейс для работы с фронтендом в вебе.

Теперь, когда медиасервер Jellyfin успешно установлен, можно проверить его работоспособность с помощью:

systemctl status jellyfin

Как вы можете заметить, он функционирует на моей системе Debian 10. (Чтобы вернуть управление терминалом, нажмите клавишу q.)

Если медиасервер Jellyfin не функционирует, попробуйте запустить его следующим образом:

sudo systemctl start jellyfin

Начальная конфигурация Jellyfin Media Server.

Веб-интерфейс управления доступен через порт 8096. Вы можете открыть интерфейс Jellyfin по следующему URL.

Читайте также:  Установка текстового редактора Brackets на Ubuntu через PPA

http://127.0.0.1:8096/web

После установки Jellyfin на удалённом сервере с операционной системой Debian вам потребуется настроить обратный прокси через Nginx или Apache для доступа к веб-интерфейсу. Подробности будут приведены в дальнейшем в данном руководстве.

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

install-jellyfin-media-server-debian-10

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

jellyfin-debian-10-apt-repository

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

jellyfin-debian-buster-server

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

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

путь к папке медиафайлов 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/имя-директории

Существует соблазн установить флаг рекурсии (-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. Файлы, как правило, хранятся значительно дольше, чем торрент-файлы. К примеру, Newsdemon сохраняет свои файлы на протяжении 4430 дней (более 12 лет), что позволяет скачивать старый контент с высокой скоростью.
Читайте также:  Как через MC посмотреть содержимое вставленного диска в Linux?

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

Так как он работает на 127.0.0.1:8096, веб-интерфейс Jellyfin можно открыть только с того же устройства. Чтобы получить доступ к веб-интерфейсу 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.com; access_log /var/log/nginx/jellyfin. access; error_log /var/log/nginx/jellyfin. error; 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; } # location block for /web - Это чисто для эстетики, чтобы /web/#!/ работало вместо того, чтобы переходить на /web/index. html/#!/ location ~ ^/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; } location /socket { # Прокси трафик Websockets Jellyfin proxy_pass http://$jellyfin: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 ProxyPassReverse wss://localhost:8096/:/websockets/notificationsЗаголовок всегда удаляет X-Frame-Options.

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

Читайте также:  Как в Linux узнать ip адрес через терминал?

sudo a2ensite jellyfin.conf

sudo systemctl restart apache2

Теперь у вас есть возможность подключиться к медиа-серверу Jellyfin через доменное имя jellyfin. example.com.

Активация HTTPS

Для шифрования HTTP-трафика при доступе к серверу Jellyfin извне необходимо активировать HTTPS, установив бесплатный TLS сертификат от Let’s Encrypt. Для этого выполните следующую команду, чтобы установить клиент Let’s Encrypt (certbot) на Debian 10.

sudo apt install certbot

Если вы работаете с Nginx, необходимо также установить плагин Certbot, предназначенный для Nginx.

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.
  • —agree-tos : Примите условия использования.
  • Принудительное перенаправление на HTTPS через редирект 301.
  • —hsts : Добавляет заголовок Strict-Transport-Security ко всем HTTP-ответам. Заставляет браузер всегда применять TLS для данного домена, предотвращая атаки типа SSL/TLS Stripping.
  • —staple-ocsp : Активирует OCSP Stapling. К сертификату, предоставляемому сервером при установке TLS-соединения, прикрепляется актуальный ответ OCSP.

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

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

Как выполнить обновление Jellyfin на Debian 10

При выходе новой версии медиасервера Jellyfin его можно обновить, выполнив следующие команды.

sudo apt update sudo apt upgrade

Перезапустите Jellyfin после этого.

sudo systemctl restart jellyfin

Решение проблем

Если ваш сервер на базе Debian использует 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 (Простого протокола обнаружения служб). Причина заключается в том, что вашему WireGuard интерфейсу запрещен доступ к этому IP-адресу.

Для устранения данной проблемы измените файл конфигурации вашего интерфейса WireGuard.

sudo nano /etc/wireguard/your-interface.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@your-interface

sudo systemctl restart jellyfin

Проверьте журнал Jellyfin с помощью команды (sudo journalctl — eu jellyfin) ещё раз. Указанная ошибка должна больше не проявляться.

Заключение

Надеюсь, данный учебник оказался полезным для вас в процессе установки медиасервера Jellyfin на Debian 10. Как и прежде, если вам понравился этот материал, подписывайтесь на нашу бесплатную рассылку, чтобы получать еще больше советов и рекомендаций.