Установка Jellyfin Media Server на Debian 13, 12, 11: подробное руководство

Jellyfin — это свободная альтернатива Plex и Emby для организации домашней медиатеки. Вы можете хранить фильмы, сериалы, музыку и фото на сервере, а потом смотреть/слушать на любом устройстве (телевизор, телефон, планшет, компьютер) через браузер или приложение. Jellyfin не имеет платных подписок, не собирает телеметрию и полностью находится под вашим контролем. Главные сложности при установке на Debian: нужно правильно добавить репозиторий (лучше через extrepo), настроить права доступа для пользователя jellyfin к папкам с медиафайлами (через setfacl), а также, при необходимости, настроить reverse-прокси для доступа через домен с SSL. Если вы используете reverse-прокси, сначала настройте его на HTTP, а потом получите сертификат Let’s Encrypt.

💡 В этом руководстве вы установите Jellyfin Media Server на Debian из официального репозитория (через extrepo или вручную). Вы также узнаете, как настроить права доступа к медиафайлам, открыть порт в UFW, настроить reverse-прокси с SSL (Apache или Nginx) и решить типичные проблемы.

В этой статье вы узнаете:

  • Как установить Jellyfin через extrepo (рекомендованный способ)
  • Как установить Jellyfin через ручное добавление репозитория
  • Как настроить доступ к медиафайлам (права через setfacl)
  • Как открыть порт 8096 в UFW
  • Как настроить reverse-прокси с SSL (Apache или Nginx)
  • Как решить типичные проблемы: порт занят, нет доступа к файлам, сервис не запускается

Для кого: владельцы домашних медиатек, администраторы небольших серверов, а также все, кто хочет стримить свою коллекцию без платных подписок на Debian 11, 12 или 13.

Оглавление

1. 🔧 Предварительные требования

Перед установкой убедитесь, что:

  • У вас установлена Debian 11, 12 или 13
  • Подключение к интернету стабильно
  • У вас есть права sudo
  • У вас есть медиафайлы (фильмы, музыка) для добавления в библиотеку

⚠️ ВАЖНО: Проверьте права sudo перед установкой

Если вы не уверены, есть ли у вашего пользователя права администратора, выполните в терминале:

sudo whoami

Что делает: sudo выполняет команду от имени суперпользователя, whoami показывает имя текущего пользователя.

Зачем: Эта команда проверяет, есть ли у вас права sudo. Без них вы не сможете устанавливать пакеты.

✅ Если выводит root — всё в порядке, можете продолжать.

❌ Если выводит is not in the sudoers file — сначала пройдите наше руководство по настройке sudo.

1.1 Обновление системы

Перед установкой всегда обновляйте список пакетов.

sudo apt update && sudo apt upgrade -y

Что делает:

  • sudo — права суперпользователя
  • apt update — обновляет список доступных пакетов из репозиториев
  • && — выполняет следующую команду только если предыдущая успешна
  • apt upgrade -y — обновляет все установленные пакеты до последних версий

Зачем: Это стандартная практика безопасности перед установкой нового ПО.

1.2 Установка вспомогательных пакетов

sudo apt install ca-certificates curl gpg lsb-release -y

Что делает: Устанавливает инструменты для безопасной работы с HTTPS-репозиториями и GPG-ключами.

2. 📊 Сравнение способов установки Jellyfin

В Debian есть два основных способа установки Jellyfin. Вот их сравнение:

МетодИнструментСложностьПлюсыМинусы
extrepo
рекомендовано
extrepoОчень низкаяМинимум
команд,
автоматическое
управление
ключами
Меньше
контроля
Ручное
добавление
репозитория
curl, teeСредняяПолный контроль
над ключами и
конфигурацией
Больше шагов

💡 Рекомендация: Для большинства пользователей extrepo — идеальный выбор. Это официальный инструмент Debian для управления сторонними репозиториями.

3. 📦 Способ 1: Установка Jellyfin через extrepo (рекомендованный)

extrepo — это инструмент от Debian, который упрощает добавление сторонних репозиториев.

3.1 Установка extrepo и включение репозитория Jellyfin

sudo apt install extrepo -y
sudo extrepo enable jellyfin

Что делает: Устанавливает extrepo и добавляет официальный репозиторий Jellyfin.

3.2 Обновление списка пакетов

sudo apt update

3.3 Установка Jellyfin

sudo apt install jellyfin -y

Что делает: Устанавливает Jellyfin Media Server (метапакет, который подтягивает сервер, веб-интерфейс и FFmpeg).

3.4 Проверка статуса сервиса

systemctl status jellyfin

Ожидаемый вывод в терминале (сокращённо):

● jellyfin.service - Jellyfin Media Server
     Loaded: loaded (/lib/systemd/system/jellyfin.service; enabled)
     Active: active (running)

4. 📦 Способ 2: Установка Jellyfin через ручное добавление репозитория

Этот способ подходит, если вы хотите полностью контролировать процесс.

4.1 Импорт GPG-ключа Jellyfin

curl -fsSL https://repo.jellyfin.org/jellyfin_team.gpg.key | sudo gpg --dearmor -o /usr/share/keyrings/jellyfin.gpg

4.2 Добавление репозитория (DEB822)

sudo tee /etc/apt/sources.list.d/jellyfin.sources > /dev/null <<EOF
Types: deb
URIs: https://repo.jellyfin.org/debian
Suites: $(lsb_release -cs)
Components: main
Architectures: $(dpkg --print-architecture)
Signed-By: /usr/share/keyrings/jellyfin.gpg
EOF

4.3 Обновление списка пакетов и установка

sudo apt update
sudo apt install jellyfin -y

5. 🔐 Настройка прав доступа к медиафайлам (ВАЖНО!)

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

5.1 Установка пакета ACL (если не установлен)

sudo apt install acl -y

5.2 Добавление прав для пользователя jellyfin через setfacl

sudo setfacl -R -m u:jellyfin:rx /путь/к/медиа

Пример для /media/video:

sudo setfacl -R -m u:jellyfin:rx /media/video

Что делает: Добавляет пользователю jellyfin права на чтение и выполнение (доступ к директориям) для всех файлов и папок рекурсивно.

5.3 Проверка прав

getfacl /путь/к/медиа

6. 🔥 Настройка UFW (фаервол)

Если вы планируете иметь доступ к Jellyfin с других устройств в сети, откройте порт 8096.

6.1 Разрешить SSH (чтобы не заблокировать себя)

sudo ufw allow ssh

6.2 Разрешить порт Jellyfin

sudo ufw allow 8096

6.3 Включить UFW

sudo ufw enable

7. 🖥️ Первоначальная настройка через WebUI

7.1 Доступ к WebUI

Откройте браузер и перейдите по адресу:

http://IP_вашего_сервера:8096

или локально:

http://localhost:8096

7.2 Процесс настройки

  1. Выберите язык (русский или английский).
  2. Создайте учётную запись администратора (имя, пароль).
  3. Добавьте медиатеки: нажмите Add Media Library, выберите тип (фильмы, сериалы), укажите папку.
  4. Настройте метаданные (язык).
  5. Настройте удалённый доступ (можно пропустить и настроить reverse-прокси позже).

8. 🚀 (Опционально) Reverse-прокси с SSL (Apache или Nginx)

Если у вас есть домен и вы хотите доступаться к Jellyfin через https://jellyfin.example.com, настройте reverse-прокси. Сначала настройте HTTP-прокси, получите сертификат Let’s Encrypt, после чего Certbot сам настроит HTTPS.

8.1 Для Apache

Установка Apache и модулей:

sudo apt install apache2 -y
sudo a2enmod proxy proxy_http headers proxy_wstunnel ssl
sudo systemctl restart apache2

Создание конфигурации (HTTP, временно):

sudo tee /etc/apache2/sites-available/jellyfin.conf > /dev/null <<EOF
<VirtualHost *:80>
    ServerName jellyfin.example.com
    ProxyPreserveHost On
    ProxyPass "/socket" "ws://localhost:8096/socket"
    ProxyPassReverse "/socket" "ws://localhost:8096/socket"
    ProxyPass "/" "http://localhost:8096/"
    ProxyPassReverse "/" "http://localhost:8096/"
</VirtualHost>
EOF

sudo a2ensite jellyfin.conf
sudo systemctl reload apache2

Установка Certbot и получение сертификата:

sudo apt install python3-certbot-apache -y
sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --email admin@example.com -d jellyfin.example.com

8.2 Для Nginx

Установка Nginx:

sudo apt install nginx -y

Создание конфигурации (HTTP, временно):

sudo tee /etc/nginx/conf.d/jellyfin.conf > /dev/null <<EOF
server {
    listen 80;
    server_name jellyfin.example.com;

    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;
    }

    location /socket {
        proxy_pass http://127.0.0.1:8096/socket;
        proxy_http_version 1.1;
        proxy_set_header Upgrade \$http_upgrade;
        proxy_set_header Connection "upgrade";
    }
}
EOF

sudo nginx -t
sudo systemctl reload nginx

Установка Certbot и получение сертификата:

sudo apt install python3-certbot-nginx -y
sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email admin@example.com -d jellyfin.example.com

9. ⚠️ Решение типичных проблем

9.1 Ошибка: Port 8096 already in use

Симптом: Jellyfin не запускается, порт 8096 занят.

Решение: Найдите процесс, который занимает порт:

sudo ss -tlnp | grep 8096

Остановите конфликтующий процесс или измените порт Jellyfin в /etc/jellyfin/network.xml.

9.2 Jellyfin не видит медиафайлы

Симптом: В WebUI при добавлении библиотеки папка пуста или не отображается.

Причина: Пользователь jellyfin не имеет прав на чтение.

Решение: Исправьте права через setfacl (раздел 5). Проверьте:

sudo -u jellyfin ls /путь/к/медиа

9.3 Ошибка: Jellyfin service not starting

Симптом: systemctl status jellyfin показывает failed.

Диагностика:

sudo journalctl -xeu jellyfin

Решение: Часто помогает сброс конфигурации:

sudo systemctl stop jellyfin
sudo mv /etc/jellyfin/system.xml /etc/jellyfin/system.xml.bak
sudo systemctl start jellyfin

После этого потребуется пройти первоначальную настройку заново.

10. 🔄 Обновление Jellyfin

sudo apt update
sudo apt install --only-upgrade jellyfin -y

11. ❌ Удаление Jellyfin

Удаление пакетов

sudo apt remove --purge jellyfin -y
sudo apt autoremove -y

Удаление репозитория

Для extrepo:

sudo extrepo disable jellyfin
sudo rm -f /etc/apt/sources.list.d/extrepo_jellyfin.sources

Для ручного добавления:

sudo rm -f /etc/apt/sources.list.d/jellyfin.sources
sudo rm -f /usr/share/keyrings/jellyfin.gpg
sudo apt update

Удаление данных (опционально)

⚠️ Осторожно: Удаляет всю медиатеку, настройки и кэш.

sudo rm -rf /var/lib/jellyfin /var/cache/jellyfin /var/log/jellyfin

12. 📝 Чек-лист: всё готово к работе

  • [ ] Система обновлена (sudo apt update && sudo apt upgrade -y)
  • [ ] Репозиторий Jellyfin добавлен (через extrepo или вручную)
  • [ ] Пакет jellyfin установлен (systemctl status jellyfin показывает active (running))
  • [ ] Порт 8096 открыт в UFW (если нужен доступ из сети)
  • [ ] Права на медиафайлы настроены (sudo -u jellyfin ls /путь/к/медиа работает)
  • [ ] WebUI открывается (http://IP_сервера:8096)
  • [ ] Reverse-прокси с SSL настроен (домен открывается по HTTPS)

Заключение

Вы установили Jellyfin Media Server на Debian. Это полностью свободная альтернатива Plex без платных подписок и сбора телеметрии. Главное, что нужно запомнить: для доступа к медиафайлам настройте права через setfacl. Если вы хотите доступаться к серверу через домен, сначала настройте reverse-прокси на HTTP, а затем получите сертификат Let’s Encrypt — Certbot сам настроит HTTPS.

Что дальше:

  • Добавьте медиатеки: фильмы, сериалы, музыку, фото
  • Установите приложение Jellyfin на телевизор (Android TV, Apple TV), телефон (iOS, Android) или планшет
  • Настройте аппаратное транскодирование (Intel Quick Sync, NVIDIA NVENC) в панели управления Jellyfin
  • Установите плагины (Subtitles, Open Subtitles, YouTube Metadata)
  • Для дополнительного кэширования и оптимизации настройте Redis