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 Процесс настройки
- Выберите язык (русский или английский).
- Создайте учётную запись администратора (имя, пароль).
- Добавьте медиатеки: нажмите
Add Media Library, выберите тип (фильмы, сериалы), укажите папку. - Настройте метаданные (язык).
- Настройте удалённый доступ (можно пропустить и настроить 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