Установка Jellyfin: Самостоятельно размещаемый медиасервер
Установка Jellyfin через Docker, настройка медиатеки, аппаратное транскодирование, управление пользователями, удалённый доступ, Nginx reverse proxy и клиентские приложения.
Содержание
Установка Jellyfin: Самостоятельно размещаемый медиасервер
Jellyfin — это бесплатный медиасервер с открытым исходным кодом, позволяющий управлять и транслировать фильмы, сериалы, музыку и фотографии с собственного сервера. В отличие от Plex и Emby, он полностью бесплатен и не требует подписки. Вы можете получить доступ к своим медиафайлам со всех устройств и делиться ими с друзьями.
Что такое Jellyfin?
Jellyfin начинался как форк Emby с открытым исходным кодом и вырос в самостоятельный проект. Ключевые особенности:
- Полностью бесплатный: Нет подписки или премиум-функций
- Мультиплатформенный: Web, Android, iOS, Roku, Apple TV, Fire TV
- Аппаратное транскодирование: Поддержка Intel QSV, NVIDIA NVENC, AMD AMF
- Живое ТВ: Поддержка DVR и IPTV
- Несколько пользователей: Совместное использование с семьёй и друзьями
- Метаданные: Автоматическая загрузка информации о фильмах/сериалах и постеров
Системные требования
- Сервер с установленными Docker и Docker Compose
- Минимум 2 ГБ ОЗУ (рекомендуется 4 ГБ)
- Достаточно места на диске (для медиафайлов)
- Совместимый GPU для аппаратного транскодирования (опционально)
Установка с Docker
Создание docker-compose.yml
version: '3.8'
services:
jellyfin:
image: jellyfin/jellyfin:latest
container_name: jellyfin
restart: unless-stopped
user: "1000:1000"
environment:
- JELLYFIN_PublishedServerUrl=https://jellyfin.example.com
volumes:
- ./config:/config
- ./cache:/cache
- /mnt/media/films:/media/films:ro
- /mnt/media/series:/media/series:ro
- /mnt/media/music:/media/music:ro
ports:
- "127.0.0.1:8096:8096"
devices:
- /dev/dri:/dev/dri
# Запустить контейнер
docker compose up -d
# Проверить логи
docker logs jellyfin -f
Монтирование медиадиректорий как :ro (только для чтения) рекомендуется из соображений безопасности.
Структура медиадиректорий
/mnt/media/
├── films/
│ ├── Начало (2010)/
│ │ └── Начало (2010).mkv
│ └── Матрица (1999)/
│ └── Матрица (1999).mp4
├── series/
│ └── Breaking Bad/
│ ├── Season 01/
│ │ ├── S01E01.mkv
│ │ └── S01E02.mkv
│ └── Season 02/
└── music/
└── Исполнитель/
└── Альбом/
└── 01 - Трек.flac
Начальная настройка
После установки перейдите на http://IP_СЕРВЕРА:8096:
- Выберите язык
- Создайте учётную запись администратора
- Добавьте медиатеки:
- Тип: Фильмы, Сериалы, Музыка, Фото
- Папка:
/media/films,/media/seriesи т.д.
- Выберите язык метаданных
- Завершите настройку
Аппаратное транскодирование
Intel Quick Sync (QSV)
services:
jellyfin:
devices:
- /dev/dri:/dev/dri
group_add:
- "109"
# Проверить наличие Intel GPU
ls /dev/dri
# Вывод: card0 renderD128
# Получить ID группы render
stat -c '%g' /dev/dri/renderD128
Активация в Jellyfin:
Панель управления → Воспроизведение → Транскодирование
→ Аппаратное ускорение: Intel QuickSync (QSV)
→ Включить: H.264, H.265, VP9
NVIDIA GPU
services:
jellyfin:
image: jellyfin/jellyfin:latest
runtime: nvidia
environment:
- NVIDIA_VISIBLE_DEVICES=all
- NVIDIA_DRIVER_CAPABILITIES=all
# Установить NVIDIA Container Toolkit
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | apt-key add -
curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | \
tee /etc/apt/sources.list.d/nvidia-docker.list
apt update && apt install -y nvidia-container-toolkit
nvidia-ctk runtime configure --runtime=docker
systemctl restart docker
Управление пользователями
Создание пользователей
Панель управления → Пользователи → Новый пользователь
- Имя пользователя и пароль
- Права доступа к библиотекам
- Родительский контроль (возрастной рейтинг)
- Разрешение удалённого доступа
Удалённый доступ и Nginx Proxy
Конфигурация Nginx
server {
listen 80;
server_name jellyfin.example.com;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl http2;
server_name jellyfin.example.com;
ssl_certificate /etc/letsencrypt/live/jellyfin.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/jellyfin.example.com/privkey.pem;
location / {
proxy_pass http://127.0.0.1:8096;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_buffering off;
proxy_read_timeout 3600;
}
}
Клиентские приложения
- Web:
https://jellyfin.example.com - Android: Jellyfin из Google Play
- iOS: Jellyfin из App Store
- Kodi: Плагин Jellyfin для Kodi
- Roku: Канал Jellyfin
- Apple TV: Приложение tvOS
Резервное копирование
# Резервное копирование конфигурации Jellyfin
tar -czf jellyfin-config-$(date +%Y%m%d).tar.gz ./config/
# Автоматическое резервное копирование
cat > /etc/cron.weekly/jellyfin-backup << 'EOF'
#!/bin/bash
tar -czf /backups/jellyfin-$(date +%Y%m%d).tar.gz /opt/jellyfin/config/
find /backups -name "jellyfin-*.tar.gz" -mtime +60 -delete
EOF
chmod +x /etc/cron.weekly/jellyfin-backup
Вы можете использовать аппаратное транскодирование на выделенных серверах REXE. Наши серверы с GPU Intel или NVIDIA идеально подходят для контента 4K.
Связанные статьи
Установка Coolify: Развёртывание приложений с Self-Hosted PaaS
Установка Coolify, интеграция Docker и Git, развёртывание приложений, управление базами данных, SSL-сертификаты, переменные окружения и self-hosted PaaS как альтернатива Heroku/Netlify.
Установка Nextcloud: Self-Hosted облачное хранилище и совместная работа
Установка Nextcloud с Docker, настройка Apache/Nginx, установка базы данных, SSL-сертификат, синхронизация файлов, магазин приложений и оптимизация производительности.
Управление Docker с Portainer: Веб-интерфейс для контейнеров
Установка Portainer CE, управление Docker и Kubernetes, развёртывание стеков, управление томами/сетями, авторизация пользователей, вебхуки и интеграция GitOps.