Tropic Host

Jellyfin на VPS: как установить собственный медиасервер

5 мин чтения
Tropic
Jellyfin на VPS: как установить собственный медиасервер

Jellyfin на VPS: как создать собственный медиасервер

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

При этом Jellyfin не продает подписку и не предоставляет готовый каталог контента. Он работает с вашими файлами и может запускаться на домашнем компьютере, NAS или VPS. Ниже рассмотрим его возможности, требования к серверу и установку на Ubuntu с доменным именем и HTTPS.

Что такое Jellyfin и зачем он нужен

Jellyfin — бесплатный медиасервер с открытым исходным кодом. Сервер индексирует фильмы, сериалы, музыку, фотографии и другой контент, а клиентские приложения воспроизводят его на телефоне, компьютере или телевизоре.

После сканирования папок Jellyfin загружает постеры и описания, распределяет сериалы по сезонам, запоминает прогресс просмотра и показывает раздел «Продолжить просмотр». Можно создать отдельные локальные профили для членов семьи, ограничить доступ к медиатекам и настроить родительский контроль. Quick Connect позволяет войти на телевизоре по короткому коду, не вводя длинный пароль.

Клиенты доступны для Android, iOS, Android TV, Roku, webOS, Tizen, Xbox и настольных компьютеров. Jellyfin также предоставляет веб-интерфейс и интеграцию с Kodi.

Кроме того, Jellyfin поддерживает музыку, IPTV, ТВ-тюнеры и запись прямого эфира. SyncPlay синхронизирует воспроизведение для нескольких пользователей, а плагины добавляют субтитры, новые источники метаданных и интеграции.

Jellyfin не ищет и не скачивает фильмы самостоятельно. Он только организует и передает контент, который уже есть у владельца сервера.

Jellyfin и Plex: основные различия

Оба решения превращают локальную коллекцию в медиасервис, но используют разные модели.

ПараметрJellyfinPlex
Исходный кодОткрытый исходный кодПроприетарный
Платные возможностиУ сервера и официальных клиентов нет платного уровняНекоторые возможности зависят от тарифного плана
Центральная учетная записьНе требуетсяИспользует экосистему провайдера
Удаленный доступВладелец настраивает домен, обратный прокси или VPNПредлагает больше готовых механизмов
Контроль над даннымиМаксимальныйЧасть инфраструктуры контролирует провайдер

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

Direct Play или транскодирование: что нагружает сервер

Производительность Jellyfin зависит не столько от размера медиатеки, сколько от способа воспроизведения.

РежимЧто происходитНагрузка
Direct PlayСервер отправляет исходный файлНизкая
Direct StreamИзменяется контейнер или отдельная дорожкаНизкая или средняя
TranscodingКодек, разрешение или битрейт изменяются на летуВысокая

Если телевизор поддерживает кодек файла, аудио и субтитры, сервер почти не использует CPU. Проблемы начинаются, когда клиент не умеет работать с форматом, соединение требует меньшего битрейта или субтитры нужно встроить в изображение. Тогда Jellyfin запускает FFmpeg и транскодирует видео в реальном времени.

Особенно ресурсоемки 4K, HEVC, HDR и преобразование HDR в SDR. Обычный VPS без графического процессора может не справиться, даже если у него много виртуальных ядер CPU. Поэтому совместимые форматы и Direct Play иногда экономят больше средств, чем переход на следующий тариф сервера.

Какой сервер нужен Jellyfin

Официальная рекомендация для типичной установки — около 8 ГБ RAM. В Linux без графического интерфейса небольшой сервер может работать с 4 ГБ. Быстрый диск нужен для операционной системы, базы данных, изображений, кэша и временных файлов; медиатека хранится отдельно и обычно занимает большую часть пространства.

СценарийНачальная конфигурацияКомментарий
Музыка и один поток 1080p в режиме Direct Play2 vCPU, 4 ГБ RAMВажнее скорость сети и диска
Небольшая семейная медиатека4 vCPU, 8 ГБ RAMПредпочтительны совместимые форматы
Периодическое транскодирование 1080p4–8 производительных vCPU или GPUНагрузка зависит от кодека
Несколько потоков 4K/HDRСовременная встроенная графика Intel или видеокартаОбычный VPS только с CPU не подходит

Не забудьте учесть трафик: поток со скоростью 20 Мбит/с передает около 9 ГБ данных в час. При ежедневном просмотре расход быстро достигает сотен гигабайт в месяц.

Домашний сервер или VPS

Домашний мини-ПК или NAS выгоднее для коллекции объемом в несколько терабайт и регулярного аппаратного транскодирования. Можно установить диски большой емкости и выбрать процессор с Intel Quick Sync, но удаленный доступ будет зависеть от электричества, домашнего интернет-соединения и наличия публичного IP-адреса.

У VPS есть публичный адрес и стабильное соединение, и он работает круглосуточно. Это удобно для музыки, небольшой видеотеки, Direct Play и пользователей в разных местах. Его ограничения — стоимость хранилища и отсутствие GPU на стандартных тарифах.

Есть и гибридный вариант: файлы остаются дома, а VPS выступает безопасной точкой входа. Такая схема помогает, когда нет публичного IPv4-адреса, но скорость воспроизведения все равно ограничена исходящей пропускной способностью домашнего соединения.

Установка Jellyfin на Ubuntu с Docker Compose

В конфигурации ниже Jellyfin и Caddy работают в одной сети Docker. Порт 8096 не открыт в интернете; Caddy принимает HTTPS-соединения и автоматически получает сертификат.

Сначала направьте A-запись домена, например media.example.com, на IP-адрес сервера.

1. Установить Docker и создать каталоги

sudo apt update
sudo apt install -y docker.io docker-compose-v2
sudo systemctl enable --now docker

sudo mkdir -p /opt/jellyfin/{config,cache,caddy-data,caddy-config}
sudo mkdir -p /srv/media/{movies,series,music}
cd /opt/jellyfin

2. Создать /opt/jellyfin/compose.yaml

services:
  jellyfin:
    image: jellyfin/jellyfin:latest
    container_name: jellyfin
    restart: unless-stopped
    volumes:
      - ./config:/config
      - ./cache:/cache
      - /srv/media:/media:ro
    networks: [media]

  caddy:
    image: caddy:2
    container_name: jellyfin-caddy
    restart: unless-stopped
    ports:
      - "80:80"
      - "443:443"
      - "443:443/udp"
    volumes:
      - ./Caddyfile:/etc/caddy/Caddyfile:ro
      - ./caddy-data:/data
      - ./caddy-config:/config
    networks: [media]

networks:
  media:

Параметр :ro подключает медиатеку только для чтения и защищает исходные файлы от случайного удаления через Jellyfin.

3. Создать /opt/jellyfin/Caddyfile

media.example.com {
    reverse_proxy jellyfin:8096
}

Замените домен на собственный, запустите контейнеры и откройте необходимые порты:

sudo docker compose up -d

sudo ufw allow OpenSSH
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw allow 443/udp
sudo ufw enable

Если SSH использует другой порт, добавьте отдельное правило для него до запуска ufw enable.

После выдачи сертификата откройте https://media.example.com. В сетевых настройках Jellyfin добавьте обратный прокси в список доверенных прокси, чтобы ограничения внешнего доступа работали корректно.

Первоначальная настройка медиатеки

В мастере настройки выберите язык, создайте администратора и добавьте медиатеки:

  • фильмы — /media/movies;
  • сериалы — /media/series;
  • музыка — /media/music.

Используйте понятные имена, чтобы система правильно распознавала файлы:

/media/movies/Movie Title (2024)/Movie Title (2024).mkv
/media/series/Series Title (2024)/Season 01/Series Title S01E01.mkv

Создайте отдельный обычный профиль для просмотра и скройте учетную запись администратора с экрана входа. Давайте пользователям доступ только к нужным медиатекам и не разрешайте удалять файлы без необходимости.

Обновления и резервные копии

В конфигурации Jellyfin хранятся пользователи, настройки, база данных и прогресс просмотра. Перед обновлением остановите контейнер и сохраните каталог config:

cd /opt/jellyfin
sudo docker compose stop jellyfin
sudo tar -czf /root/jellyfin-config-$(date +%F).tar.gz config
sudo docker compose start jellyfin

Переместите архив за пределы VPS. Медиаданные резервируйте отдельно.

Для обновления выполните:

sudo docker compose pull
sudo docker compose up -d

Не открывайте порт 8096 напрямую. Используйте HTTPS или VPN, регулярно устанавливайте обновления и отслеживайте свободное место на диске.

Jellyfin на VPS от tropic.host

Для небольшой медиатеки, которая в основном использует Direct Play, можно начать с Linux VPS с 4 ГБ RAM. Для нескольких пользователей, большой базы данных и дополнительных сервисов разумнее выбрать 8 ГБ.

При выборе VPS от tropic.host отдельно оцените объем хранилища, месячный трафик и необходимость транскодирования. Виртуальный сервер удобен как постоянно доступная точка с публичным IP-адресом и HTTPS, но он не заменяет сервер с GPU. Если нужны несколько потоков 4K/HDR с преобразованием формата, лучше выбрать домашний сервер со встроенной графикой Intel, выделенный сервер или специализированный тариф с видеокартой.

Можно начать с небольшой коллекции, проверить долю сеансов Direct Play в панели Jellyfin и только затем увеличивать CPU, RAM или хранилище в соответствии с фактической нагрузкой.

Итоги

Jellyfin превращает собственную коллекцию в личный потоковый сервис без обязательной подписки и центральной учетной записи. Для успешного развертывания важно заранее оценить объем хранилища, трафик и вероятность транскодирования.

Небольшой сервер с Direct Play часто может работать с 4–8 ГБ RAM. Для регулярного воспроизведения 4K/HDR нужна аппаратная обработка видео. Независимо от конфигурации защищайте внешний доступ с помощью HTTPS или VPN и отдельно создавайте резервные копии настроек и медиатеки.

FAQ

Jellyfin полностью бесплатен?

Да. Сервер и клиенты доступны без премиум-тарифа. Платить нужно только за оборудование, VPS, диски, доменное имя и трафик.

Входит ли в Jellyfin каталог готовых к просмотру фильмов и сериалов?

Нет. Пользователь добавляет собственные медиафайлы.

Может ли Jellyfin работать на VPS без видеокарты?

Да, если большинство файлов воспроизводится в режиме Direct Play. Для частого транскодирования 4K и HDR нужен сервер с подходящей встроенной или отдельной видеокартой.

Сколько RAM нужно Jellyfin?

Небольшой Linux-сервер может работать с 4 ГБ RAM. Для семейной медиатеки и нескольких пользователей лучше ориентироваться на 8 ГБ.

Как безопасно открыть Jellyfin в интернете?

Используйте домен и HTTPS через обратный прокси либо VPN. Не открывайте порт 8096 напрямую и создавайте отдельные учетные записи с минимальными разрешениями.