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

Содержание статьи
- 1 Характерные черты Jellyfin
- 2 Настройка Jellyfin Media Server на Debian 10.
- 3 Начальная конфигурация Jellyfin Media Server.
- 4 Пожалуйста, выполните начальную конфигурацию еще раз.
- 5 Где можно найти фильмы и сериалы для загрузки
- 6 Плюсы использования Usenet
- 7 Конфигурация реверсивного прокси
- 8 Активация HTTPS
- 9 Как выполнить обновление Jellyfin на Debian 10
- 10 Решение проблем
- 11 Заключение
Характерные черты 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.
http://127.0.0.1:8096/web
После установки Jellyfin на удалённом сервере с операционной системой Debian вам потребуется настроить обратный прокси через 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/имя-директории
Существует соблазн установить флаг рекурсии (-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
- Он гарантирует более высокий уровень приватности, так как никто не сможет узнать, что именно вы загружаете.
- Молниеносная скорость загрузки.
- Файлы, как правило, хранятся значительно дольше, чем торрент-файлы. К примеру, Newsdemon сохраняет свои файлы на протяжении 4430 дней (более 12 лет), что позволяет скачивать старый контент с высокой скоростью.
Конфигурация реверсивного прокси
Так как он работает на 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 на весь срок использования.
Сохраните файл и закройте его. После этого активируйте данный виртуальный хост.
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. Как и прежде, если вам понравился этот материал, подписывайтесь на нашу бесплатную рассылку, чтобы получать еще больше советов и рекомендаций.

