Задеплойте Jellyfin в один клик
Медиасервер, который стримит ваши фильмы, сериалы и музыку на любое устройство
Альтернатива Plex и Emby на вашей машине.
Что такое Jellyfin?
Jellyfin — бесплатный медиасервер с открытым кодом, который запускают вместо Plex или Emby. Он раскладывает ваши фильмы, сериалы и музыку по медиатекам, подтягивая из интернета постеры, описания и актерский состав, и стримит их в браузер, на телефоны, планшеты и телевизоры. Есть официальные приложения для Android, iOS, Android TV и Fire TV, Roku, телевизоров LG и Samsung, Xbox и Kodi, а на компьютерах работает Jellyfin Media Player. У каждого человека свой аккаунт со своим прогрессом просмотра и родительским контролем.
Jellyfin хостят у себя, чтобы смотреть свои медиафайлы откуда угодно без аккаунта у какой-либо компании и без подписки: у него нет премиум-версии, слежки и центральных серверов. Этот шаблон настраивает его с администратором, которого вы указали в полях, и тремя медиатеками (Movies, Shows и Music) в папках тома media. Подвох — транскодирование. Когда устройство не может воспроизвести файл как есть, Jellyfin перекодирует его на лету, здесь на CPU, а это тяжелая нагрузка, поэтому легкими остаются файлы, которые ваши устройства воспроизводят напрямую, например видео H.264 в MP4.
Хостинг Jellyfin на Pethost
- Вы входите в Pethost — с passkey, через GitHub или Google. Машины еще нет? Вы выбираете тариф, и ссылка ждет, пока машина не будет готова.
- Окно «Новый проект» открывается на приложении Jellyfin. Вы заполняете то, что оно просит, и нажимаете «Создать проект»: Имя пользователя, Пароль администратора.
- Через минуту-две Jellyfin работает по своему адресу с HTTPS. Секреты создаются случайно, а данные попадают в ночной бэкап.
- Это проект как любой другой: вы или ваш агент можете его изменить, откатить или восстановить.
Вопросы про Jellyfin
Jellyfin действительно бесплатный?
Да. Jellyfin — свободное ПО под лицензией GNU GPL: его сервер и официальные приложения ничего не стоят, а премиум-версии и платных функций нет. Его разрабатывают волонтеры.
Jellyfin или Plex: в чем разница?
И Jellyfin, и Plex стримят ваши собственные медиафайлы на ваши устройства. У Plex сервер с закрытым кодом, аккаунты работают через plex.tv, а с апреля 2025 года, чтобы смотреть свои медиафайлы вне дома, нужен Plex Pass или Remote Watch Pass. У Jellyfin открытый код, сторонний аккаунт ему не нужен, и он ни за что не берет денег.
Какие устройства поддерживает Jellyfin?
Любой современный браузер, а также официальные приложения для Android, iOS, Android TV и Fire TV, Roku, LG webOS, Samsung Tizen и Xbox. Jellyfin Media Player работает на Windows, macOS и Linux, а дополнение JellyCon встраивает Jellyfin в Kodi.
Как называть фильмы и сериалы для Jellyfin?
Положите каждый фильм в папку с его названием и годом, например Big Buck Bunny (2008), а видео внутри назовите так же. Для сериала заведите отдельную папку, внутри нее Season 01, Season 02 и так далее, а серии называйте вроде Show Name S01E01.mkv. Тогда Jellyfin найдет правильные постеры и описания.
Нужна ли для Jellyfin видеокарта?
Нет. Видеокарта (GPU) только ускоряет транскодирование, то есть перекодирование, которое нужно устройству, когда оно не может воспроизвести файл как есть; без нее Jellyfin транскодирует на CPU. Сложный случай — HDR-видео: в документации Jellyfin сказано, что ни один современный потребительский CPU не делает для него тон-маппинг в реальном времени. Файлы, которые ваши устройства воспроизводят как есть, транскодировать вообще не нужно.
Сколько памяти и диска нужно Jellyfin?
Jellyfin в простое расходует около 250 MB памяти, а диск занимает ваша медиатека; транскодирование видео идет на CPU и сильно его нагружает. На Pethost ему хватит тарифа Starter, и рядом останется место для других приложений.
Jellyfin: файл Docker Compose
Шаблон — это этот compose.yaml и переменные, которые пишутся в .env проекта при его создании. Pethost запускает файл так, как он написан.
Контейнеры: jellyfin (jellyfin/jellyfin:12).
Тома, в ночном бэкапе: 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:
Еще в категории «Медиа»
- OwncastПрямые трансляции и чат на собственной странице
- NavidromeМузыкальный сервер, который стримит вашу собственную коллекцию
- RomMБиблиотека и плеер в браузере для ваших ретро-игр
- KomgaСервер и веб-читалка для ваших комиксов, манги и электронных книг
- LycheeФотогалерея, чтобы загружать, упорядочивать и показывать ваши фото
- AudiobookshelfСобственный сервер аудиокниг и подкастов: слушайте в браузере или приложениях, прогресс сохраняется на всех устройствах