← Wszystkie szablony · Multimedia
Wdróż Jellyfin jednym kliknięciem
Serwer multimedialny, który streamuje twoje filmy, seriale i muzykę na każde urządzenie
Alternatywa dla Plex i Emby, hostowana u siebie.
Czym jest Jellyfin?
Jellyfin to darmowy serwer multimedialny open source, który ludzie uruchamiają zamiast Plexa albo Emby. Układa filmy, seriale i muzykę, które masz, w biblioteki z plakatami, opisami i obsadą z metadanych pobieranych z sieci, a potem streamuje je do przeglądarki, na telefony, tablety i telewizory. Oficjalne aplikacje są na Androida, iOS, Android TV i Fire TV, Roku, telewizory LG i Samsung, Xboksa i Kodi, a Jellyfin Media Player działa na komputerach. Każda osoba dostaje własne konto, z własnym postępem oglądania i kontrolą rodzicielską.
Jellyfina hostuje się u siebie, żeby oglądać własne zbiory z każdego miejsca, bez konta w jakiejkolwiek firmie i bez abonamentu: nie ma płatnej wersji premium, śledzenia ani centralnych serwerów. Ten szablon konfiguruje go z administratorem podanym w polach formularza i trzema bibliotekami, Movies, Shows i Music, w katalogach wolumenu media. Haczyk to transkodowanie. Gdy urządzenie nie potrafi odtworzyć pliku takim, jaki jest, Jellyfin konwertuje go w locie, tutaj na CPU, co jest ciężką pracą, więc lekkie są pliki, które twoje urządzenia odtwarzają bezpośrednio, takie jak wideo H.264 w MP4.
Hosting Jellyfin na Pethost
- Logujesz się do Pethost kluczem dostępu, przez GitHub albo Google. Nie masz jeszcze maszyny? Wybierasz plan, a link czeka, aż będzie gotowa.
- Okno „Nowy projekt” otwiera się na aplikacji Jellyfin. Wypełniasz to, o co prosi, i klikasz „Utwórz projekt”: Nazwa użytkownika, Hasło administratora.
- Za minutę czy dwie aplikacja Jellyfin działa pod własnym adresem z HTTPS. Jej sekrety są tworzone losowo, a dane trafiają do nocnego backupu.
- To projekt jak każdy inny: ty albo twój agent możecie go zmienić, cofnąć do wcześniejszej wersji albo przywrócić.
Pytania o Jellyfin
Czy Jellyfin jest naprawdę darmowy?
Tak. Jellyfin to wolne oprogramowanie na licencji GNU GPL, a jego serwer i oficjalne aplikacje nic nie kosztują: nie ma wersji premium ani płatnych funkcji. Tworzą go wolontariusze.
Jellyfin czy Plex: jaka jest różnica?
Oba streamują twoje własne zbiory na twoje urządzenia. Serwer Plexa ma zamknięty kod, jego konta działają przez plex.tv, a od kwietnia 2025 oglądanie własnych zbiorów poza domem wymaga Plex Pass albo Remote Watch Pass. Jellyfin jest open source, nie wymaga zewnętrznego konta i za nic nie pobiera opłat.
Na jakich urządzeniach można oglądać Jellyfin?
W każdej nowoczesnej przeglądarce i w oficjalnych aplikacjach na Androida, iOS, Android TV i Fire TV, Roku, LG webOS, Samsung Tizen i Xboksa. Jellyfin Media Player działa na Windowsie, macOS i Linuksie, a dodatek JellyCon wprowadza Jellyfina do Kodi.
Jak nazywać pliki filmów i seriali w Jellyfin?
Każdy film dostaje katalog nazwany tytułem i rokiem, na przykład Big Buck Bunny (2008), a w nim wideo pod tą samą nazwą. Serial dostaje własny katalog, a w nim Season 01, Season 02 i tak dalej, z odcinkami nazwanymi jak Show Name S01E01.mkv. Wtedy Jellyfin znajduje właściwe plakaty i opisy.
Czy Jellyfin potrzebuje karty graficznej?
Nie. GPU tylko przyspiesza transkodowanie, czyli konwersję potrzebną urządzeniu, które nie potrafi odtworzyć pliku takim, jaki jest; bez GPU Jellyfin transkoduje na CPU. Trudny przypadek to wideo HDR: według dokumentacji Jellyfina żaden współczesny procesor konsumencki nie wykonuje dla niego mapowania tonów w czasie rzeczywistym. Pliki, które twoje urządzenia odtwarzają bez zmian, w ogóle nie wymagają transkodowania.
Ile pamięci i miejsca na dysku potrzebuje Jellyfin?
Jellyfin bez obciążenia zajmuje około 250 MB pamięci, a dysk to twoja biblioteka; transkodowanie wideo odbywa się na CPU i jest bardzo wymagające. Na Pethost wystarczy mu plan Starter, z miejscem na inne aplikacje obok.
Jellyfin: plik Docker Compose
Szablon to ten compose.yaml i zmienne zapisywane do .env projektu przy jego tworzeniu. Pethost uruchamia plik dokładnie tak, jak jest napisany.
Kontenery: jellyfin (jellyfin/jellyfin:12).
Wolumeny, w nocnym backupie: config, cache, media.
services:
jellyfin:
image: jellyfin/jellyfin:12
restart: unless-stopped
environment:
ADMIN_USERNAME: ${ADMIN_USERNAME}
ADMIN_PASSWORD: ${ADMIN_PASSWORD}
# A new server's startup wizard is open to whoever comes first. So until the wizard is done,
# Jellyfin runs on port 8097, which nobody reaches: there it is given the administrator from
# the fields and a library for each folder of /media, and only then answers on 8096.
entrypoint: ["/bin/sh", "-c"]
command:
- |
set -e
config=/config/config
if ! grep -qs '<IsStartupWizardCompleted>true<' "$$config/system.xml"; then
mkdir -p "$$config" /media/movies /media/shows /media/music
if [ -f "$$config/network.xml" ]; then
sed -i 's|<InternalHttpPort>[0-9]*<|<InternalHttpPort>8097<|' "$$config/network.xml"
else
printf '<?xml version="1.0" encoding="utf-8"?>\n<NetworkConfiguration>\n <InternalHttpPort>8097</InternalHttpPort>\n</NetworkConfiguration>\n' > "$$config/network.xml"
fi
/jellyfin/jellyfin &
setup=$$!
api() { curl -fsS -H 'Content-Type: application/json' "$$@"; }
# 401: an administrator with a password exists already, from a first start cut short,
# and Jellyfin has marked its wizard done by itself.
until wizard=$$(curl -sS -o /dev/null -w '%{http_code}' http://127.0.0.1:8097/Startup/Configuration) &&
{ [ "$$wizard" = 200 ] || [ "$$wizard" = 401 ]; }; do sleep 2; done
if [ "$$wizard" = 200 ]; then
api -d '{"ServerName":"Jellyfin","UICulture":"en-US","MetadataCountryCode":"US","PreferredMetadataLanguage":"en"}' http://127.0.0.1:8097/Startup/Configuration
library() {
api http://127.0.0.1:8097/Library/VirtualFolders | grep -q "\"Name\":\"$$1\"" ||
api -d '{"LibraryOptions":{"EnableRealtimeMonitor":true}}' "http://127.0.0.1:8097/Library/VirtualFolders?name=$$1&collectionType=$$2&paths=/media/$$3"
}
library Movies movies movies
library Shows tvshows shows
library Music music music
api -o /dev/null http://127.0.0.1:8097/Startup/User
json() { printf '%s' "$$1" | sed 's/\\/\\\\/g; s/"/\\"/g'; }
api -d "{\"Name\":\"$$(json "$$ADMIN_USERNAME")\",\"Password\":\"$$(json "$$ADMIN_PASSWORD")\"}" http://127.0.0.1:8097/Startup/User
api -d '{"EnableRemoteAccess":true,"EnableAutomaticPortMapping":false}' http://127.0.0.1:8097/Startup/RemoteAccess
api -X POST http://127.0.0.1:8097/Startup/Complete
fi
kill $$setup
wait $$setup || true
sed -i 's|<InternalHttpPort>8097<|<InternalHttpPort>8096<|' "$$config/network.xml"
fi
exec /jellyfin/jellyfin
volumes:
- config:/config
- cache:/cache
# Writable, so that films, shows and music can be copied in over SFTP.
- media:/media
volumes:
config:
cache:
media:
Więcej w kategorii Multimedia
- OwncastWideo na żywo i czat na twojej własnej stronie
- NavidromeSerwer muzyczny, który streamuje twoją własną kolekcję
- RomMBiblioteka i odtwarzacz w przeglądarce dla twoich gier retro
- KomgaSerwer i czytnik w przeglądarce dla twoich komiksów, mang i e-booków
- LycheeGaleria do wgrywania, porządkowania i udostępniania zdjęć
- AudiobookshelfWłasny serwer audiobooków i podcastów: słuchaj w przeglądarce lub w aplikacjach, z postępem zapamiętanym na wszystkich urządzeniach