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Змінюється контейнер або окрема доріжкаНизьке або середнє
ТранскодуванняКодек, роздільна здатність або бітрейт змінюються на льотуВисоке

Якщо телевізор підтримує кодек, аудіо та субтитри файлу, сервер майже не використовує 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 iGPU або відеокартаЗвичайний 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 додайте зворотний проксі до списку довірених проксі, щоб обмеження зовнішнього доступу працювали коректно.

Початкове налаштування медіатеки

У майстрі налаштування виберіть мову, створіть адміністратора та додайте бібліотеки:

  • movies — /media/movies;
  • TV shows — /media/series;
  • music — /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 iGPU, виділений сервер або спеціалізований тариф із відеокартою.

Почніть із невеликої колекції, перевірте частку сеансів 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 потрібен сервер із сумісною iGPU або відеокартою.

Скільки RAM потрібно Jellyfin?

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

Як безпечно отримати доступ до Jellyfin через інтернет?

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