Jellyfin на VPS: как создать собственный медиасервер
Папка с видео редко похожа на удобную медиатеку: имена файлов, отдельные субтитры и ручной поиск нужной серии. Jellyfin превращает такой архив в личный стриминговый сервис с постерами, описаниями, профилями и продолжением просмотра.
При этом Jellyfin не продает подписку и не предоставляет готовый каталог. Он работает с вашими файлами и размещается на домашнем компьютере, NAS или VPS. Ниже разберем возможности сервиса, требования к серверу и установку на Ubuntu с доменом и HTTPS.
Что такое Jellyfin и зачем он нужен
Jellyfin — бесплатный медиасервер с открытым исходным кодом. Сервер индексирует фильмы, сериалы, музыку, фотографии и другой контент, а клиентские приложения воспроизводят его на телефоне, компьютере или телевизоре.
После сканирования папок Jellyfin загружает постеры и описания, распределяет сериалы по сезонам, запоминает прогресс и показывает блок «Продолжить». Для семьи можно создать отдельные локальные профили, ограничить доступ к библиотекам и настроить родительский контроль. Quick Connect позволяет войти на телевизоре по короткому коду без ввода длинного пароля.
Клиенты доступны для Android, iOS, Android TV, Roku, webOS, Tizen, Xbox и компьютеров. Также есть веб-интерфейс и интеграция с Kodi.
Дополнительно Jellyfin поддерживает музыку, IPTV, ТВ-тюнеры и запись эфира. SyncPlay синхронизирует просмотр у нескольких пользователей, а плагины добавляют субтитры, новые источники метаданных и интеграции.
Jellyfin не ищет и не загружает фильмы самостоятельно. Он только организует и передает контент, который уже находится в распоряжении владельца сервера.
Jellyfin и Plex: главные отличия
Оба решения превращают локальную коллекцию в медиасервис, но используют разные модели.
| Параметр | Jellyfin | Plex |
|---|---|---|
| Исходный код | Открытый | Проприетарный |
| Премиум-функции | У сервера и официальных клиентов нет платного уровня | Часть возможностей зависит от тарифа |
| Центральный аккаунт | Не требуется | Используется экосистема поставщика |
| Удаленный доступ | Владелец настраивает домен, reverse proxy или VPN | Есть больше готовых механизмов |
| Контроль над данными | Максимальный | Часть инфраструктуры контролирует поставщик |
Jellyfin выбирают ради независимости, приватности и отсутствия подписки. Plex может оказаться удобнее, если важнее максимально простой запуск и одинаково отполированные приложения на всех устройствах.
Direct Play или транскодирование: что нагружает сервер
Производительность Jellyfin зависит не столько от размера библиотеки, сколько от способа воспроизведения.
| Режим | Что происходит | Нагрузка |
|---|---|---|
| Direct Play | Сервер передает исходный файл | Низкая |
| Direct Stream | Меняется контейнер или отдельная дорожка | Низкая или средняя |
| Transcoding | На лету меняются кодек, разрешение или битрейт | Высокая |
Если телевизор поддерживает кодек, аудио и субтитры файла, сервер почти не тратит CPU. Проблемы начинаются, когда клиент не понимает формат, соединение требует уменьшить битрейт или субтитры приходится встраивать в изображение. Тогда Jellyfin запускает FFmpeg и перекодирует видео в реальном времени.
Особенно требовательны 4K, HEVC, HDR и преобразование HDR в SDR. Обычный VPS без видеокарты может не справиться, даже если у него много виртуальных ядер. Поэтому совместимые форматы и Direct Play часто экономят больше денег, чем переход на следующий тариф.
Какой сервер нужен для Jellyfin
Официальная рекомендация для обычной установки — около 8 ГБ RAM. На Linux без графического интерфейса небольшой сервер может работать с 4 ГБ. Быстрый диск нужен для системы, базы, изображений, кэша и временных файлов; медиатека хранится отдельно и обычно занимает основную часть пространства.
| Сценарий | Стартовая конфигурация | Комментарий |
|---|---|---|
| Музыка и один поток 1080p Direct Play | 2 vCPU, 4 ГБ RAM | Важнее скорость сети и диск |
| Небольшая семейная медиатека | 4 vCPU, 8 ГБ RAM | Желательны совместимые форматы |
| Периодическое транскодирование 1080p | 4–8 производительных vCPU или GPU | Нагрузка зависит от кодека |
| Несколько потоков 4K/HDR | Современная Intel iGPU или видеокарта | Обычный CPU-only VPS не подходит |
Учитывайте и трафик: поток 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/jellyfin2. Создайте /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 добавьте reverse proxy в список доверенных прокси, чтобы ограничения внешнего доступа работали корректно.
Первичная настройка медиатеки
В мастере выберите язык, создайте администратора и добавьте библиотеки:
- фильмы —
/media/movies; - сериалы —
/media/series; - музыка —
/media/music.
Для точного распознавания используйте понятные имена:
/media/movies/Название фильма (2024)/Название фильма (2024).mkv
/media/series/Название сериала (2024)/Season 01/Название сериала 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 iGPU, выделенный сервер или специализированный тариф с видеокартой.
Начать можно с небольшой коллекции, проверить в панели Jellyfin долю Direct Play и только затем увеличивать CPU, RAM или хранилище по фактической нагрузке.
Краткий вывод
Jellyfin превращает собственную коллекцию в личный стриминговый сервис без обязательной подписки и центральной учетной записи. Для удачного запуска важно заранее рассчитать хранилище, трафик и вероятность транскодирования.
Небольшому серверу с Direct Play часто достаточно 4–8 ГБ RAM. Для регулярного 4K/HDR нужна аппаратная обработка видео. Независимо от конфигурации внешний доступ следует закрыть HTTPS или VPN, а настройки и медиатеку — резервировать отдельно.
FAQ
Jellyfin полностью бесплатный?
Да. Сервер и клиенты доступны без премиум-тарифа. Платить нужно только за оборудование, VPS, диски, домен и трафик.
Есть ли в Jellyfin готовые фильмы и сериалы?
Нет. Пользователь самостоятельно добавляет свои медиафайлы.
Можно ли запустить Jellyfin на VPS без видеокарты?
Да, если основная часть файлов воспроизводится через Direct Play. Для частого транскодирования 4K и HDR нужен сервер с подходящей iGPU или видеокартой.
Сколько RAM нужно Jellyfin?
Небольшой Linux-сервер может работать с 4 ГБ RAM. Для семейной медиатеки и нескольких пользователей лучше ориентироваться на 8 ГБ.
Как безопасно смотреть Jellyfin через интернет?
Используйте домен и HTTPS через reverse proxy либо VPN. Не открывайте порт 8096 напрямую и создавайте пользователям отдельные учетные записи с минимальными правами.
