Гид по технологиям

Установка Jellyfin на Ubuntu 22.04 с Apache и Let's Encrypt

• 6 min read • Инструкции • Обновлено 24 Nov 2025
Jellyfin на Ubuntu 22.04: установка, Apache, SSL
Jellyfin на Ubuntu 22.04: установка, Apache, SSL

Важное: все команды выполняйте под пользователем с правами sudo. Замените media.howtoforge.local и email на свои значения.

Основная цель и варианты запроса

  • Основная цель: установить и защитить Jellyfin на Ubuntu 22.04 с помощью Apache и Certbot.
  • Варианты: установка без обратного прокси, конфигурация с Nginx, локальная установка с самоподписанным сертификатом.

Краткое содержание

  • Предварительные требования
  • Добавление репозитория Jellyfin
  • Установка сервера Jellyfin
  • Получение сертификата Let’s Encrypt
  • Настройка Apache как обратного прокси
  • Открытие портов через UFW
  • Начальная настройка в веб‑интерфейсе
  • Отладка, безопасность и контроль качества

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

  • Сервер с Ubuntu 22.04.
  • Непользователь root с правами sudo.
  • Доменное имя, указывающее на IP сервера (A/AAAA запись).

Короткое определение: Jellyfin — свободный медиасервер для хранения и стриминга личной медиатеки через локальную сеть и интернет.

Добавление репозитория Jellyfin

Сначала установите зависимости и утилиты для работы с репозиториями и HTTPS:

sudo apt install software-properties-common apt-transport-https ca-certificates gnupg curl -y

Включите репозиторий universe:

sudo add-apt-repository universe

Включение репозитория universe в Ubuntu

Создайте каталог для ключей и загрузите GPG‑ключ репозитория Jellyfin:

sudo mkdir -p /etc/apt/keyrings  
curl -fsSL https://repo.jellyfin.org/jellyfin_team.gpg.key | sudo gpg --dearmor -o /etc/apt/keyrings/jellyfin.gpg

Добавьте источник пакетов Jellyfin в apt (точно выполните команду как в примере):

cat <

Добавление репозитория Jellyfin

Обновите индекс пакетов:

sudo apt update

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

Установка Jellyfin

Установите пакет jellyfin:

sudo apt install jellyfin

Установка пакета jellyfin через apt

Проверьте статус службы и включение автозапуска:

sudo systemctl is-enabled jellyfin  
sudo systemctl status jellyfin

Ожидаемый результат: служба должна быть включена (enabled) и запущена (active).

Проверка статуса службы jellyfin

Проверьте прослушиваемые порты:

ss -tulpn | grep jellyfin

Обычно Jellyfin использует 8096/tcp (HTTP) и 8920/tcp (HTTPS), а также 1900/udp и 7359/udp для автодетектирования в локальной сети.

Порты Jellyfin, отображаемые командой ss

Генерация SSL/TLS сертификатов

Для публичного доступа используйте Let’s Encrypt через Certbot. Если окружение локальное — можно временно применить самоподписанный сертификат, но для внешнего доступа нужен валидный сертификат.

Установите certbot:

sudo apt install certbot

Создайте директорию для webroot, если её ещё нет:

mkdir -p /var/www/html

Запросите сертификат через webroot (замените email и имя домена):

sudo certbot certonly --agree-tos --email [email protected] --no-eff-email --webroot -w /var/www/html -d media.howtoforge.local

После успешного выполнения сертификаты окажутся в /etc/letsencrypt/live/<ваш_домен>/.

Примечание: Certbot в режиме webroot положит временный файл в /.well-known/ для проверки владения доменом. Убедитесь, что Apache отдаёт этот каталог без проксирования.

Настройка Apache как обратного прокси

Установите Apache и необходимые модули:

sudo apt install apache2 -y

Установка Apache2

Включите модули:

sudo a2enmod proxy proxy_http ssl proxy_wstunnel remoteip http2 headers

Создайте файл виртуального хоста:

sudo nano /etc/apache2/sites-available/jellyfin.conf

Вставьте конфигурацию (не меняйте пути к сертификатам без проверки):

  
 ServerName media.howtoforge.local  
  
 # Comment to prevent HTTP to HTTPS redirect  
 Redirect permanent / https://media.howtoforge.local/  
  
 ErrorLog /var/log/apache2/media.howtoforge.local-error.log  
 CustomLog /var/log/apache2/media.howtoforge.local-access.log combined  
  
  
# If you are not using an SSL certificate, replace the 'redirect'  
# line above with all lines below starting with 'Proxy'  
  
  
 ServerName media.howtoforge.local  
 # This folder exists just for certbot(You may have to create it, chown and chmod it to give apache permission to read it)  
 DocumentRoot /var/www/html/jellyfin/public_html  
  
 ProxyPreserveHost On  
  
 # Letsencrypt's certbot will place a file in this folder when updating/verifying certs  
 # This line will tell Apache to not to use the proxy for this folder.  
 ProxyPass "/.well-known/" "!"  
  
 # Tell Jellyfin to forward that requests came from TLS connections  
 RequestHeader set X-Forwarded-Proto "https"  
 RequestHeader set X-Forwarded-Port "443"  
  
 ProxyPass "/socket" "ws://192.168.5.30:8096/socket"  
 ProxyPassReverse "/socket" "ws://192.168.5.30:8096/socket"  
  
 ProxyPass "/" "http://192.168.5.30:8096/"  
 ProxyPassReverse "/" "http://192.168.5.30:8096/"  
  
 SSLEngine on  
 SSLCertificateFile /etc/letsencrypt/live/media.howtoforge.local/fullchain.pem  
 SSLCertificateKeyFile /etc/letsencrypt/live/media.howtoforge.local/privkey.pem  
 Protocols h2 http/1.1  
  
 # Enable only strong encryption ciphers and prefer versions with Forward Secrecy  
 SSLCipherSuite HIGH:RC4-SHA:AES128-SHA:!aNULL:!MD5  
 SSLHonorCipherOrder on  
  
 # Disable insecure SSL and TLS versions  
 SSLProtocol all -SSLv2 -SSLv3 -TLSv1 -TLSv1.1  
  
 ErrorLog /var/log/apache2/media.howtoforge.local-error.log  
 CustomLog /var/log/apache2/media.howtoforge.local-access.log combined  
  

Важно: в примере прокси направлен на IP 192.168.5.30:8096. Замените его на адрес вашего сервера (localhost:8096, если Jellyfin на той же машине).

Включите сайт и проверьте конфигурацию:

sudo a2ensite jellyfin.conf  
sudo apachectl configtest

Ожидаемый вывод: Syntax OK

Включение виртуального хоста Apache для Jellyfin

Перезапустите Apache:

sudo systemctl restart apache2

Проверьте сервис:

sudo systemctl is-enabled apache2  
sudo systemctl status apache2

Проверка статуса службы apache2

Настройка UFW (брандмауэр)

Откройте SSH, HTTP и HTTPS:

sudo ufw allow OpenSSH  
sudo ufw allow 'Apache Full'

Откройте порты автодетектирования в локальной сети, если используете DLNA/UPnP:

sudo ufw allow 1900/udp  
sudo ufw allow 7359/udp

Включите UFW:

sudo ufw enable

Проверьте статус:

sudo ufw status

Доступ к веб‑интерфейсу и начальная настройка

Откройте в браузере HTTPS://media.howtoforge.local/ (замените домен). Вы увидите мастер первичной настройки Jellyfin.

Экран приветствия Jellyfin в браузере

Пошагово:

  • Создайте первого пользователя.
    Создание первого пользователя Jellyfin
  • Можно пропустить настройку медиатеки и добавить её позже в администраторской панели.
    Пропуск настройки медиатеки в мастере Jellyfin
  • Выберите язык метаданных и разрешите удалённый доступ при необходимости.
    Выбор языка метаданных
    Настройка удалённого доступа и автоматического проброса портов
  • Завершите мастер и войдите в систему.
    Завершение мастера настройки Jellyfin
    Страница входа в Jellyfin

Панель управления после входа:

Панель управления Jellyfin

В разделе администратора вы увидите информацию о версии и состоянии сервера.

Раздел администратора Jellyfin с информацией о версии

Отладка и часто встречаемые проблемы

  • Проблема: браузер показывает ошибку соединения по HTTPS.

    • Проверьте, что сертификат выдан и пути к сертификатам в конфигурации Apache корректны.
    • Убедитесь, что порт 443 открыт для входящих соединений.
  • Проблема: веб‑интерфейс доступен, но поток не воспроизводится.

    • Проверьте записи в /var/log/apache2/ и /var/log/jellyfin/.
    • Убедитесь, что прокси передает заголовки X‑Forwarded‑Proto и X‑Forwarded‑For.
  • Проблема: WebSocket (socket) не работает.

    • Проверьте блоки ProxyPass для /socket и соответствие ws:// или wss:// схемы.
    • Проверьте конфигурацию брандмауэра и промежуточных балансировщиков.
  • Проблема: Certbot не может верифицировать домен.

    • Убедитесь, что A/AAAA запись указывает на IP сервера и что Apache не блокирует доступ к /.well-known/.

Безопасность и эксплуатация

Рекомендации по безопасности:

  • Держите систему и пакеты обновлёнными: sudo apt update && sudo apt upgrade.
  • Используйте ограничение доступа к /var/lib/jellyfin и настройте резервное копирование конфигураций и метаданных.
  • Отключите менее безопасные протоколы TLS в Apache (как в примере конфигурации).
  • Настройте автоматическое обновление сертификатов с помощью cron или systemd timer для certbot (обычно certbot устанавливает таймер автоматически).

Пример проверки автоматического продления:

sudo certbot renew --dry-run

Альтернативные подходы

  • Nginx как обратный прокси: чаще используется в больших инсталляциях и имеет встроенную поддержку WebSocket и HTTP/2.
  • Прямой доступ без прокси: допустим в локальной сети, но требует проброса портов и отдельной настройки TLS на самом Jellyfin.
  • Docker/Kubernetes: удобны для изоляции и обновлений, но требуют навыков контейнеризации.

Checklist для разных ролей

Администратор:

  • Проверить доступность домена и DNS.
  • Добавить репозиторий и установить jellyfin.
  • Настроить Apache и сертификат.
  • Настроить бэкапы и мониторинг.

DevOps:

  • Автоматизировать развёртывание (Ansible, Terraform).
  • Настроить мониторинг сервиса (systemd, Prometheus/Alertmanager).
  • Настроить CI для образов Docker, если используется контейнеризация.

Пользователь:

  • Создать учётную запись.
  • Добавить медиатеки и проверить воспроизведение.

Критерии приёмки

  • Сервис jellyfin запущен и включён: systemctl status показывает active и enabled.
  • Домен по HTTPS возвращает корректный сертификат Let’s Encrypt.
  • Веб‑интерфейс доступен и можно войти под созданной учётной записью.
  • Воспроизведение локальных файлов работает через веб‑интерфейс и мобильные клиенты.

Мини‑методология развёртывания

  1. Подготовка ОС и DNS.
  2. Добавление репозитория и установка пакета.
  3. Настройка TLS (Certbot).
  4. Конфигурирование обратного прокси (Apache) и проверка WebSocket.
  5. Настройка брандмауэра и тестирование клиента.

Тесты и критерии приёмки

  • Тест 1: Доступность / — браузер получает 200 и сертификат валиден.
  • Тест 2: Вход в веб‑интерфейс под созданной учётной записью.
  • Тест 3: Воспроизведение видеофайла 720p без ошибок.
  • Тест 4: Обновление сертификата через certbot renew –dry-run проходит успешно.

Риски и способы смягчения

  • Риск: утечка данных при неправильных правах на каталоги.

    • Смягчение: минимизировать привилегии, резервное копирование и регулярный аудит прав.
  • Риск: устаревшие версии с уязвимостями.

    • Смягчение: автоматические обновления и мониторинг CVE для используемых пакетов.

Миграция с Plex/Emby

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

Заключение

Вы успешно установили Jellyfin на Ubuntu 22.04, настроили Apache как обратный прокси и защитили доступ сертификатами Let’s Encrypt. Дальше рекомендуется настроить регулярное резервирование метаданных, мониторинг сервиса и план обновлений.

Короткое напоминание: замените примеры доменов и IP в конфигурациях на свои реальные значения перед запуском в продакшн.


Сводка ключевых действий:

  • Добавить репозиторий и установить jellyfin.
  • Получить сертификат через certbot с webroot.
  • Настроить Apache как обратный прокси и проброс WebSocket.
  • Открыть необходимые порты в UFW и пройти начальную настройку в веб‑интерфейсе.
Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро