Tropic Host

Jellyfin във VPS: инсталиране на собствен медиен сървър

6 минути четене
Tropic
Jellyfin във VPS: инсталиране на собствен медиен сървър

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: основни разлики

И двете решения превръщат локалната колекция в медийна услуга, но използват различни модели.

ПараметърJellyfinPlex
Изходен кодОтворен кодСобственически
Платени функцииСървърът и официалните клиенти нямат платено нивоНякои функции зависят от абонаментния план
Централен акаунтНе е необходимИзползва екосистемата на доставчика
Отдалечен достъпСобственикът настройва домейн, 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/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 добавете 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 директно и създайте отделни потребителски акаунти с минимални права.