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: головні відмінності
Обидва рішення перетворюють локальну колекцію на медіасервіс, але використовують різні моделі.
| Параметр | Jellyfin | Plex |
|---|---|---|
| Вихідний код | Відкритий код | Власницький |
| Преміум-функції | Сервер і офіційні клієнти не мають платного рівня | Деякі функції залежать від тарифу підписки |
| Центральний обліковий запис | Не потрібен | Використовує екосистему провайдера |
| Віддалений доступ | Власник налаштовує домен, зворотний проксі або 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 Play | 2 vCPU, 4 ГБ RAM | Швидкість мережі й диска важливіша |
| Невелика сімейна медіатека | 4 vCPU, 8 ГБ RAM | Краще використовувати сумісні формати |
| Періодичне транскодування 1080p | 4–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/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 додайте зворотний проксі до списку довірених проксі, щоб обмеження зовнішнього доступу працювали коректно.
Початкове налаштування медіатеки
У майстрі налаштування виберіть мову, створіть адміністратора та додайте бібліотеки:
- 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 безпосередньо та створюйте окремі облікові записи з мінімальними правами.
