Jellyfin във VPS: как да създадете собствен медиен сървър
Language: bg
Папка, пълна с видеоклипове, рядко е удобна медийна библиотека: имената на файловете са непоследователни, субтитрите са в отделни файлове, а правилният епизод се намира ръчно. 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 |
|---|---|---|
| Изходен код | Отворен код | Собственически |
| Платени функции | Сървърът и официалните клиенти нямат платено ниво | Някои функции зависят от абонаментния план |
| Централен акаунт | Не е необходим | Използва екосистемата на доставчика |
| Отдалечен достъп | Собственикът настройва домейн, reverse proxy или 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 GB RAM. В Linux без графичен интерфейс малък сървър може да работи с 4 GB. Бърз диск е необходим за операционната система, базата данни, изображенията, кеша и временните файлове; медийната библиотека се съхранява отделно и обикновено заема по-голямата част от пространството.
| Сценарий | Начална конфигурация | Коментар |
|---|---|---|
| Музика и един 1080p Direct Play поток | 2 vCPU, 4 GB RAM | Мрежата и скоростта на диска са по-важни |
| Малка семейна медийна библиотека | 4 vCPU, 8 GB RAM | За предпочитане са съвместими формати |
| Периодично 1080p транскодиране | 4–8 високопроизводителни vCPU или GPU | Натоварването зависи от кодека |
| Няколко 4K/HDR потока | Съвременен Intel iGPU или графична карта | Обикновен VPS само с CPU не е подходящ |
Не забравяйте да отчетете и трафика: поток от 20 Mbps прехвърля около 9 GB данни на час. При ежедневно гледане потреблението бързо може да достигне стотици гигабайти месечно.
Домашен сървър или VPS
Домашен mini PC или 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/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 GB RAM. За няколко потребители, голяма база данни и допълнителни услуги 8 GB е по-разумен избор.
Когато избирате VPS от tropic.host, оценявайте отделно капацитета на хранилището, месечния трафик и нуждата от транскодиране. Виртуалният сървър е удобна постоянно достъпна крайна точка с публичен IP адрес и HTTPS, но не заменя GPU сървър. Ако са ви нужни няколко 4K/HDR потока с преобразуване на формата, домашен сървър с Intel iGPU, специален сървър или специализиран план с графична карта е по-добрият избор.
Можете да започнете с малка колекция, да проверите дела на сесиите Direct Play в таблото на Jellyfin и едва след това да увеличите CPU, RAM или хранилището според реалното натоварване.
Обобщение
Jellyfin превръща собствената ви колекция в лична стрийминг услуга без задължителен абонамент или централен акаунт. За успешното внедряване е важно предварително да оцените хранилището, трафика и вероятността от транскодиране.
Малък сървър с Direct Play често може да работи с 4–8 GB RAM. Редовното 4K/HDR възпроизвеждане изисква хардуерна видеообработка. Независимо от конфигурацията защитете външния достъп с HTTPS или VPN и архивирайте настройките и медийната библиотека отделно.
FAQ
Jellyfin напълно безплатен ли е?
Да. Сървърът и клиентите са достъпни без платен план. Трябва да заплащате само хардуера, VPS, дисковете, домейна и трафика.
Jellyfin включва ли готови за гледане филми и сериали?
Не. Потребителите добавят собствените си медийни файлове.
Може ли Jellyfin да работи във VPS без графична карта?
Да, ако повечето файлове се възпроизвеждат чрез Direct Play. Честото транскодиране на 4K и HDR изисква сървър с подходящ iGPU или графична карта.
Колко RAM е необходима на Jellyfin?
Малък Linux сървър може да работи с 4 GB RAM. За семейна медийна библиотека и няколко потребители по-добрата цел е 8 GB.
Как да използвам Jellyfin безопасно през интернет?
Използвайте домейн и HTTPS през reverse proxy или VPN. Не излагайте порт 8096 директно и създайте отделни потребителски акаунти с минимални права.
