<p><strong>Open source media server в 2026 году — это уже не «бесплатная замена Plex для гиков». Это нормальный домашний кинотеатр без подписок, без телеметрии и без сюрпризов вроде того что Plex провернул в 2025-м, заперев удалённый стрим за пейволлом.</strong> 25 лет в SRE и сетях, и за последний год развернул, сломал и починил все десять решений из этого списка. Расскажу что выбрать под NAS, под homelab, под Smart TV и под старый Raspberry Pi с 1 ГБ памяти.</p>
"Быстрый
<br />
<strong>Если коротко — какой open source media server взять в 2026:</strong></p>
<ul>
<li><strong>Jellyfin 10.11.8</strong> — универсальный сервер, видео+музыка+книги, аппаратный транскодинг, мобильные клиенты. Лучший общий выбор.</li>
<li><strong>Navidrome 0.61.2</strong> — только музыка. Лёгкий, быстрый, Subsonic API, работает на Pi.</li>
<li><strong>Gerbera 3.2.1</strong> — чистый DLNA/UPnP для Smart TV. Без веб-плеера, но ест 30 МБ RAM.</li>
<li><strong>Universal Media Server 15.5.0</strong> — DLNA с агрессивным транскодингом для старых телевизоров.</li>
<li><strong>Kodi 21.3 Omega</strong> — HTPC на самом ТВ-боксе, не сервер в классическом смысле.</li>
</ul>
<p>Берёшь NAS с x86 и Intel iGPU — ставь Jellyfin. Только музыка — Navidrome. Хочешь чтобы Samsung 2014 года увидел сервер по DLNA — Gerbera или UMS.<br />
<h2>Диагноз: Plex закрылся, надо валить</h2>
<p>Поднял Plex дома. Года три-четыре он работал. А в апреле 2025 пришло письмо: удалённый стрим теперь только по подписке. Plex Pass или Remote Watch Pass. С ноября 2025 это начали реально включать через Roku, в течение 2026 — на Apple TV, Fire TV, Android TV и сторонних клиентах. Знакомо?</p>
<p>Я не против платить за софт. Я против платить за доступ к собственным файлам на собственном железе. Поэтому open source media server в 2026 — не вопрос идеологии, а вопрос гигиены.</p>
<p>Что ты получишь к концу статьи:</p>
<ul>
<li>сравнительная таблица 10 платформ с реальными цифрами по RAM, транскодингу и поддержке устройств</li>
<li>понимание что выбрать под твой сценарий: NAS, homelab, Smart TV, музыка</li>
<li>готовые docker-compose для топ-3 решений</li>
<li>разбор аппаратного ускорения — Intel Quick Sync, NVIDIA NVENC, AMD AMF</li>
<li>troubleshooting типовых граблей</li>
</ul>
<p>Времени на чтение — минут 25. Времени на разворачивание Jellyfin по этому материалу — минут 15 если у тебя уже есть <a class="wpil_keyword_link" title="Docker" href="https://it-apteka.com/tag/docker/" target="_blank" rel="noopener" data-wpil-keyword-link="linked" data-wpil-monitor-id="2559">Docker</a>.</p>
<h2>Сравнительная таблица: 10 open source медиа серверов 2026</h2>
<p>Это таблица-отправная точка. Дальше разбираю каждое решение в деталях. Версии актуальны на момент публикации — перед установкой проверь свежие релизы на GitHub проекта.</p>
<table>
<thead>
<tr>
<th>Платформа</th>
<th>Версия</th>
<th>Фокус</th>
<th>HW транскодинг</th>
<th>Web UI</th>
<th>DLNA</th>
<th>Live TV</th>
<th>RAM idle</th>
<th>Сложность</th>
<th>Лучше всего для</th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>Jellyfin</strong></td>
<td>10.11.8</td>
<td>Видео+музыка+книги</td>
<td>Intel/NVIDIA/AMD/VAAPI</td>
<td>Да</td>
<td>Да</td>
<td>Да + DVR</td>
<td>~250 МБ</td>
<td>Средняя</td>
<td>Универсальный сервер</td>
</tr>
<tr>
<td><strong>Kodi</strong></td>
<td>21.3 Omega</td>
<td>HTPC + клиент</td>
<td>Да (на стороне клиента)</td>
<td>Нет (только TUI)</td>
<td>Да (UPnP)</td>
<td>Да через PVR-клиенты</td>
<td>~200 МБ</td>
<td>Высокая</td>
<td>Подключение к ТВ напрямую</td>
</tr>
<tr>
<td><strong>Universal Media Server</strong></td>
<td>15.5.0</td>
<td>DLNA + транскодинг</td>
<td>FFmpeg/MEncoder</td>
<td>Web Player</td>
<td>Да (главное)</td>
<td>Нет</td>
<td>~400 МБ (Java)</td>
<td>Низкая</td>
<td>Старые Smart TV, PS3, Xbox</td>
</tr>
<tr>
<td><strong>Gerbera</strong></td>
<td>3.2.1</td>
<td>Чистый UPnP</td>
<td>Через FFmpeg</td>
<td>Да (база/файлы)</td>
<td>Да (ядро)</td>
<td>Нет</td>
<td>~30 МБ</td>
<td>Средняя</td>
<td>Лёгкий DLNA на Pi</td>
</tr>
<tr>
<td><strong>ReadyMedia (MiniDLNA)</strong></td>
<td>1.3.3</td>
<td>Минималистичный DLNA</td>
<td>Нет</td>
<td>Нет</td>
<td>Да</td>
<td>Нет</td>
<td>~15 МБ</td>
<td>Низкая</td>
<td>Самый лёгкий DLNA</td>
</tr>
<tr>
<td><strong>Rygel</strong></td>
<td>0.42</td>
<td>UPnP/DLNA для <a class="wpil_keyword_link" title="Linux" href="https://it-apteka.com/category/linux/" target="_blank" rel="noopener" data-wpil-keyword-link="linked" data-wpil-monitor-id="2562">Linux</a></td>
<td>GStreamer</td>
<td>Нет</td>
<td>Да</td>
<td>Нет</td>
<td>~50 МБ</td>
<td>Средняя</td>
<td>GNOME/Linux desktop</td>
</tr>
<tr>
<td><strong>Navidrome</strong></td>
<td>0.61.2</td>
<td>Только музыка</td>
<td>FFmpeg (audio)</td>
<td>Да</td>
<td>Нет (только Subsonic)</td>
<td>Нет</td>
<td>~50 МБ</td>
<td>Низкая</td>
<td>Личный Spotify</td>
</tr>
<tr>
<td><strong>Funkwhale</strong></td>
<td>1.4</td>
<td>Музыка + федерация</td>
<td>FFmpeg</td>
<td>Да</td>
<td>Нет</td>
<td>Нет</td>
<td>~600 МБ</td>
<td>Высокая</td>
<td>Музыка + ActivityPub</td>
</tr>
<tr>
<td><strong>Lyrion Music Server (LMS)</strong></td>
<td>9.1.1</td>
<td>Squeezebox экосистема</td>
<td>FFmpeg/sox</td>
<td>Да</td>
<td>Через плагины</td>
<td>Радио</td>
<td>~150 МБ</td>
<td>Средняя</td>
<td>Multi-room hi-fi</td>
</tr>
<tr>
<td><strong>Audiobookshelf</strong></td>
<td>2.x</td>
<td>Аудиокниги + подкасты</td>
<td>FFmpeg (audio)</td>
<td>Да</td>
<td>Нет</td>
<td>Нет</td>
<td>~80 МБ</td>
<td>Низкая</td>
<td>Замена Audible</td>
</tr>
</tbody>
</table>
<p><a href="https://it-apteka.com/potreblenie-jelektrojenergii-domashnego-servera-n100-ryzen-optiplex-i-synology-v-cifrah/" title="Потребление электроэнергии домашнего сервера: N100, Ryzen, OptiPlex и Synology в цифрах" target="_blank" rel="noopener" data-wpil-monitor-id="3041">Цифры по RAM — на пустом сервере</a> без активных стримов. Под нагрузкой Jellyfin с 4K-транскодингом съест 1-2 ГБ, плюс GPU. У Navidrome нагрузка от размера библиотеки — 30 000 треков укладываются в 50-100 МБ.</p>
<h2>Почему open source выигрывает в 2026</h2>
<p>Семь причин почему я перевёл всех знакомых с Plex на FOSS:</p>
<ol>
<li><strong>Удалённый стрим у Plex теперь платный</strong> — Plex Pass $6.99/мес или Remote Watch Pass $1.99/мес. На своём сервере. Со своими файлами. Странно.</li>
<li><strong>Телеметрия</strong> — Plex/Emby собирают что и когда ты смотришь. Jellyfin не собирает ничего, это записано в его манифесте.</li>
<li><strong>Аппаратное ускорение бесплатно</strong> — в Jellyfin Intel Quick Sync, NVIDIA NVENC и AMD VAAPI работают из коробки. У Plex это Plex Pass-only.</li>
<li><a title="Fail2Ban UI — контроль периметра с удобством: Docker + полный гайд для Debian/Ubuntu" href="https://it-apteka.com/fail2ban-ui-kontrol-perimetra-s-udobstvom-docker-polnyj-gajd-dlja-debian-ubuntu/" target="_blank" rel="noopener" data-wpil-monitor-id="2566">Контроль обновлений — твой Docker</a>, твой compose, твоя версия. Никто не выкатит тебе ребрендинг приложения и не уберёт половину функций как Plex с Roku-апой.</li>
<li><strong>Безопасность аудитируема</strong> — код Jellyfin на GitHub, CVE раскрываются публично (см. 10.11.7 от октября 2025).</li>
<li><strong>Низкие требования</strong> — Navidrome крутится на Raspberry Pi Zero. Plex — нет.</li>
<li><strong>Сообщество вместо саппорта</strong> — на форуме Jellyfin тебе ответят за пару часов. В Plex Support тикете — через неделю и шаблоном.</li>
</ol>
<p>Минус один и существенный: единого «полированного» приложения уровня Plex для семейных пользователей у open source пока нет. Жена и дети не всегда хотят разбираться с интерфейсом Jellyfin. Об этом ниже.</p>
<h2>Архитектура типового self-hosted media stack</h2>
<p>Чтобы было понятно куда мы суём эти серверы и как они общаются — вот как обычно выглядит домашняя установка.</p>
<pre class="mermaid">%%{init: {
'theme': 'base',
'themeVariables': {
'primaryColor': '#ffffff',
'primaryTextColor': '#1e293b',
'primaryBorderColor': '#94a3b8',
'lineColor': '#64748b',
'fontSize': '15px',
'fontFamily': 'ui-sans-serif, system-ui, sans-serif'
},
'flowchart': {'curve': 'linear', 'nodeSpacing': 50, 'rankSpacing': 50}
}}%%
flowchart TD
A["Хранилище: NAS или диски"] --> B["Docker host: Linux x86_64"]
B --> C["Jellyfin контейнер"]
B --> D["Navidrome контейнер"]
B --> E["Reverse proxy: Caddy или Traefik"]
C --> F["GPU: Intel iGPU или NVIDIA"]
E --> G["LAN: Smart TV, телефоны"]
E --> H["WAN: VPN или Cloudflare Tunnel"]
style A fill:#f8fafc,stroke:#94a3b8,stroke-width:2px,color:#1e293b
style B fill:#f8fafc,stroke:#3b82f6,stroke-width:2px,color:#1e40af
style C fill:#f8fafc,stroke:#22c55e,stroke-width:2px,color:#15803d
style D fill:#f8fafc,stroke:#22c55e,stroke-width:2px,color:#15803d
style E fill:#f8fafc,stroke:#3b82f6,stroke-width:2px,color:#1e40af
style F fill:#f8fafc,stroke:#f97316,stroke-width:2px,color:#9a3412
style G fill:#f8fafc,stroke:#3b82f6,stroke-width:2px,color:#1e40af
style H fill:#f8fafc,stroke:#3b82f6,stroke-width:2px,color:#1e40af
</pre>
<p>Файлы лежат на NAS или просто на дисках. Docker крутится на отдельном Linux-боксе или на самом NAS если он x86 (Synology Plus, TrueNAS, Unraid). Jellyfin пробрасывает GPU через <code>/dev/dri</code> для Intel или <code>--gpus all</code> для NVIDIA. Снаружи — reverse <a title="DNS over TLS: настройка DoT на Android, Keenetic и в Nulls Proxy" href="https://it-apteka.com/dns-over-tls-nastrojka-dot-na-android-keenetic-i-v-nulls-proxy/" target="_blank" rel="noopener" data-wpil-monitor-id="2558">proxy с TLS</a>, доступ через VPN типа Tailscale или Cloudflare Tunnel.</p>
<h2>1. Jellyfin — основной выбор в 2026</h2>
<p>Jellyfin — это форк Emby 3.5.2 от 2018 года, ушедший в чистый FOSS. На апрель 2026 актуальная версия — 10.11.8. Это форк форка проекта который изначально был форком, и звучит как мем, но работает оно отлично.</p>
<h3>Что умеет Jellyfin</h3>
<ul>
<li>Видео: H.264, H.265/HEVC, AV1, VP9, MPEG-2, контейнеры MKV/MP4/TS</li>
<li>Аудио: FLAC, ALAC, MP3, AAC, Opus, Vorbis, DSD через транскодинг</li>
<li>Аппаратный транскодинг: Intel Quick Sync (QSV), NVIDIA NVENC, AMD VAAPI/AMF, Apple VideoToolbox, Raspberry Pi V4L2</li>
<li>HDR: HDR10, HDR10+, Dolby Vision (с тонмаппингом)</li>
<li>Subtitles: PGS, SRT, ASS/SSA, VTT</li>
<li>Live TV + DVR через HDHomeRun, TVHeadend, IPTV M3U</li>
<li>Книги (через плагин Bookshelf), музыка (полноценно), подкасты, фотографии</li>
<li>Клиенты: web, Android, Android TV, iOS, Roku, Samsung Tizen, LG webOS, Kodi-плагин, Symfonium для музыки</li>
</ul>
<h3>Что нового в 10.11</h3>
<p>Релиз 10.11 от октября 2025 — один из самых крупных за всю историю проекта. Перешли на EF Core для базы, добавили нативные бэкапы прямо из дашборда, переписали часть веб-UI. На больших библиотеках (10 000+ айтемов) пока есть регрессии по скорости загрузки — точечные релизы 10.11.2 и далее их закрывают, последний 10.11.8 от апреля 2026 закрывает регрессии 10.11.7 и важные CVE.</p>
"Перед
<br />
10.11.7 содержал критические исправления безопасности. Если ты на 10.11.x старее — обновись на 10.11.8. Перед апгрейдом сделай бэкап /config через встроенный планировщик (Dashboard — Scheduled Tasks — <a class="wpil_keyword_link" title="Резервное копирование" href="https://it-apteka.com/category/rezervnoe-kopirovanie/" target="_blank" rel="noopener" data-wpil-keyword-link="linked" data-wpil-monitor-id="2565">Backup</a> Database).<br />
<h3>Установка через Docker — основной сценарий</h3>
<p>Создай compose-файл. Я предполагаю что у тебя <a title="Установка Docker Compose на Linux: полный гайд 2026" href="https://it-apteka.com/ustanovka-docker-compose-polnyj-gajd/" target="_blank" rel="noopener" data-wpil-monitor-id="2567">Linux с Docker</a> и Intel iGPU — самая частая конфигурация на NAS и homelab.</p>
<pre><code class="language-yaml">
services:
jellyfin:
image: jellyfin/jellyfin:10.11.8
container_name: jellyfin
user: 1000:1000
network_mode: host
volumes:
- ./config:/config
- ./cache:/cache
- /mnt/media:/media:ro
devices:
- /dev/dri:/dev/dri
group_add:
- "109" # render group в Debian/Ubuntu
restart: unless-stopped
environment:
- JELLYFIN_PublishedServerUrl=http://192.168.1.10:8096
</code></pre>
<p>Подними:</p>
<pre><code class="language-bash">
docker compose up -d
docker logs -f jellyfin
</code></pre>
<p>Открой <code>http://твой-ip:8096</code>. Пройди мастер: язык, админ, библиотеки. Указывай <code>/media/movies</code>, <code>/media/tv</code> и так далее как ты их смонтировал внутрь контейнера.</p>
<h3>Аппаратный транскодинг — где обычно ломается</h3>
<p>Главная боль при первой установке — GPU не пробрасывается. Проверь:</p>
<pre><code class="language-bash">
ls -la /dev/dri/
# должны быть card0 и renderD128
# проверь к какой группе привязан renderD128
stat -c "%G %g" /dev/dri/renderD128
# обычно render с GID 109 на Debian/Ubuntu, 989 на Fedora
# внутри контейнера
docker exec -it jellyfin /usr/lib/jellyfin-ffmpeg/ffmpeg -hwaccels
</code></pre>
<p>Если в выводе есть <code>vaapi</code> и <code>qsv</code> — GPU виден. Идёшь в Dashboard — Playback — Transcoding и выбираешь Intel QuickSync (QSV), указывай <code>/dev/dri/renderD128</code>. Включи Tone Mapping для HDR-контента.</p>
<h3>Плюсы Jellyfin</h3>
<ul>
<li>Полный пакет: видео, музыка, книги, ТВ — всё в одном</li>
<li>Аппаратный транскодинг бесплатно для всех GPU</li>
<li>Огромная экосистема клиентов — даже на старом Samsung Tizen есть Jellyfin Tizen</li>
<li>Активная разработка: семь лет проекту, к декабрю 2025 отметили</li>
</ul>
<h3>Минусы Jellyfin</h3>
<ul>
<li>Веб-UI местами не такой полированный как Plex</li>
<li>На больших библиотеках 10.11 медленнее чем 10.10 (фиксят)</li>
<li>Нет встроенного Discovery вне локальной сети — надо разбираться с reverse proxy/VPN</li>
<li>Иногда метаданные подбираются криво, надо ручками править</li>
</ul>
<h2>2. Kodi — если фронт важнее бэка</h2>
<p>Kodi — это HTPC-софт, не сервер в традиционном смысле. Ты ставишь его на тот же ТВ-бокс или Pi что подключён к телевизору, и он сам играет файлы из сетевой папки. Может работать как UPnP-сервер, но это побочная функция.</p>
<p>На май 2026 актуальная стабильная — <strong>21.3 «Omega»</strong>. 22 «Piers» в Alpha 3 с конца марта 2026, релиз скоро. Версия 22 принесла поддержку PipeWire на Linux, улучшенный AV1 hardware decode, FFmpeg 8.0.1, поддержку Wayland Color Management для HDR.</p>
<p>Kodi имеет смысл если:</p>
<ul>
<li>У тебя есть x86 mini-PC, Raspberry Pi или Android TV-бокс воткнутый прямо в телевизор</li>
<li>Ты хочешь интерфейс на 10-foot UI — управление с пульта, крупный шрифт</li>
<li>Тебе нужны сторонние аддоны: PVR-клиенты для IPTV, скиннинг, скрейперы</li>
<li>Ты хочешь LibreELEC — минимальный дистрибутив только под Kodi, грузится за 15 секунд</li>
</ul>
<p>Kodi не имеет смысла как «центральный сервер для всех устройств в доме». Для этого тебе всё равно нужен отдельный медиа-сервер — Jellyfin или Gerbera — а Kodi подключается к нему как клиент.</p>
<p>Связка <strong>Jellyfin + Kodi-плагин Jellycon/Jellyfin for Kodi</strong> — очень популярная схема: на сервере Jellyfin метаданные и стриминг, на телевизоре Kodi с красивым TV-интерфейсом.</p>
<h2>3. Universal Media Server (UMS) — DLNA с турбонаддувом</h2>
<p>UMS — форк PS3 Media Server, написанный на Java. Версия 15.5.0 от февраля 2026 добавила поддержку телевизоров LG и Samsung 2026 года выпуска, нативный Dolby Vision в MKV для LG TV 2022+, фолдер-серч.</p>
<p>Главная фишка UMS — <strong>агрессивный транскодинг под капризные старые устройства</strong>. Если у тебя Sony Bravia 2012 года которая отказывается понимать MKV с FLAC внутри — UMS на лету перекодирует это в формат который телевизор сожрёт. Под капотом FFmpeg, MEncoder, tsMuxeR, AviSynth, VLC.</p>
<p>Из коробки видит PS3, Xbox, Roku, Apple TV, FireTV, всё семейство Smart TV (LG, Samsung, Sony, Panasonic), DLNA-приёмники, Sonos, ресиверы Yamaha/Denon.</p>
<h3>Установка UMS на Linux через Docker</h3>
<pre><code class="language-yaml">
services:
ums:
image: universalmediaserver/ums:15.5.0
container_name: ums
network_mode: host
volumes:
- ./ums-config:/root/.config/UMS
- /mnt/media:/media:ro
restart: unless-stopped
</code></pre>
<p>Веб-интерфейс — на порту 9001. Веб-плеер — на 9001 в /web/. DLNA-broadcast работает только в host <a class="wpil_keyword_link" title="Сети" href="https://it-apteka.com/category/networks/" target="_blank" rel="noopener" data-wpil-keyword-link="linked" data-wpil-monitor-id="2561">network</a> mode — не пытайся пихать UMS в bridge, не увидят его телевизоры.</p>
<p>Плюсы: ставишь и оно работает с любым устройством. Минусы: Java-процесс жрёт 400-700 МБ RAM на простое, веб-UI довольно технический, мобильного клиента нет (только сторонние UPnP-плееры).</p>
<h2>4. Gerbera — чистый UPnP без бубна</h2>
<p>Gerbera — наследник MediaTomb. C++, libupnp/libnpupnp под капотом. Версия 3.2.1 от 2026 года. Это <strong>не медиа-плеер с веб-плеером</strong>, это бэкенд который раздаёт твою библиотеку по UPnP/DLNA. Веб-интерфейс есть, но он для администрирования базы и просмотра файловой структуры, не для просмотра кино.</p>
<p>Кому Gerbera:</p>
<ul>
<li>Тебе нужен лёгкий DLNA-сервер на Pi или старом мини-ПК</li>
<li>Воспроизведение через нативные DLNA-приложения телевизора, BubbleUPnP, VLC, Kodi</li>
<li>Тебе важна тонкая настройка через config.xml — layout, кастомные JS-скрипты импорта</li>
<li>Транскодинг через FFmpeg-вызовы из конфига — с тонкой настройкой профилей под устройство</li>
</ul>
<h3>Запуск Gerbera</h3>
<pre><code class="language-yaml">
services:
gerbera:
image: gerbera/gerbera:3.2.1
container_name: gerbera
network_mode: host
volumes:
- ./gerbera-config:/var/run/gerbera
- /mnt/media:/media:ro
restart: unless-stopped
</code></pre>
<p>После запуска зайди на <code>http://ip:49152</code>. В первом окне получи токен из логов:</p>
<pre><code class="language-bash">
docker logs gerbera 2>&1 | grep -i "token"
</code></pre>
<p>Токен вводишь, создаёшь админ-аккаунт, добавляешь библиотеку через File system — правый клик — Add. Через минуту телевизор увидит «Gerbera» в списке DLNA-источников.</p>
<p>RAM idle — 30 МБ. На Raspberry Pi 3B+ работает без вопросов. Главный минус — нет веб-плеера. Если хочется плеер — Jellyfin.</p>
<h2>5. ReadyMedia (MiniDLNA) — самый лёгкий</h2>
<p>ReadyMedia — переименованный MiniDLNA. C, около 15 МБ RAM, конфиг в одном файле, никакой веб-морды. Идеален когда нужно просто отдать одну папку с фильмами одному телевизору и забыть.</p>
<pre><code class="language-bash">
sudo apt install minidlna
sudo nano /etc/minidlna.conf
</code></pre>
<p>Минимальный конфиг:</p>
<pre><code class="language-text">
media_dir=V,/mnt/media/movies
media_dir=A,/mnt/media/music
media_dir=P,/mnt/media/photos
db_dir=/var/cache/minidlna
log_dir=/var/log
inotify=yes
friendly_name=HomeServer
</code></pre>
<pre><code class="language-bash">
sudo systemctl enable --now minidlna
sudo systemctl status minidlna
</code></pre>
<p>Всё. Телевизор увидит сервер. Метаданных не подтягивает, обложек нет, транскодинга нет, но если у тебя коллекция MP4/MKV которые телевизор и так понимает — этого достаточно. Проект не очень активный, но работает годами без проблем.</p>
<h2>6. Rygel — DLNA для GNOME</h2>
<p>Rygel — часть проекта GNOME, DLNA/UPnP сервер на основе GStreamer. Версия 0.42. Имеет смысл если у тебя GNOME-десктоп и ты хочешь расшарить локальные папки в один клик через файл-менеджер. Как «домашний центральный сервер» — не очень, но как инструмент desktop-юзера годится.</p>
<pre><code class="language-bash">
sudo apt install rygel
rygel
</code></pre>
<p>Конфигурация в <code>~/.config/rygel.conf</code>. По умолчанию шарит Music, Videos, Pictures из домашней папки. Транскодинг идёт через GStreamer-плагины, поэтому установи дополнительные:</p>
<pre><code class="language-bash">
sudo apt install gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-libav
</code></pre>
<h2>7. Navidrome — твой личный Spotify</h2>
<p>Если у тебя есть нормальная коллекция музыки — бери Navidrome. Это <strong>лучший <a href="https://it-apteka.com/7-docker-kontejnerov-kotorye-realno-izmenili-moj-domashnij-server/" target="_blank" rel="noopener" data-wpil-monitor-id="2952">open source медиа сервер</a> для музыки в 2026</strong>, без вариантов. Версия 0.61.2 от апреля 2026, активная разработка, плагины на WebAssembly с 0.60.</p>
<p>Что я люблю:</p>
<ul>
<li>30 000 треков укладываются в 50 МБ RAM</li>
<li>Subsonic <a title="Автоматизация SSL для десятков доменов через acme.sh и DNS API (без Certbot)" href="https://it-apteka.com/avtomatizacija-ssl-dlja-desjatkov-domenov-cherez-acme-sh-i-dns-api-bez-certbot/" target="_blank" rel="noopener" data-wpil-monitor-id="2556">API — десятки</a> клиентов: Symfonium, play:Sub, DSub, Ultrasonic, Substreamer</li>
<li>Smart playlists, scrobbling в Last.fm и ListenBrainz</li>
<li>Поиск на SQLite FTS5 с BM25 — реально быстрый</li>
<li>Multi-user, у каждого свои плейлисты, фавориты, история</li>
<li>Транскодинг на лету — FLAC за городом превращается в Opus 96k</li>
</ul>
<h3>Запуск Navidrome</h3>
<pre><code class="language-yaml">
services:
navidrome:
image: deluan/navidrome:0.61.2
container_name: navidrome
user: 1000:1000
ports:
- "4533:4533"
environment:
ND_LOGLEVEL: info
ND_SCANSCHEDULE: "@every 24h"
ND_TRANSCODINGCACHESIZE: "1024MiB"
ND_SESSIONTIMEOUT: 24h
volumes:
- ./data:/data
- /mnt/music:/music:ro
restart: unless-stopped
</code></pre>
<p>Заходишь на <code>http://ip:4533</code>, создаёшь админа, ждёшь первичный скан (первые 100к треков — около 10 минут на <a class="wpil_keyword_link" title="nvme" href="https://it-apteka.com/tag/nvme/" target="_blank" rel="noopener" data-wpil-keyword-link="linked" data-wpil-monitor-id="2560">NVMe</a>). На телефон ставишь Symfonium (платный, $7) или DSub/Substreamer (бесплатный) — вводишь URL и пароль, всё работает.</p>
<p>Минус один: только музыка. Не хочет быть всем сразу, и это правильно.</p>
<h2>8. Funkwhale — музыка с федерацией</h2>
<p>Funkwhale — это Navidrome, скрещенный с Mastodon. Federated через ActivityPub — можешь подписаться на других пользователей и слышать их публичные плейлисты. Идея красивая, инсталляция тяжёлая.</p>
<p>Версия 1.4. Stack: Django + PostgreSQL + Redis + Celery + nginx. RAM idle — 600+ МБ. На Pi не запустишь, нужен нормальный сервер с 2-4 ГБ.</p>
<p>Имеет смысл если ты хочешь музыкальный fediverse — аналог Mastodon для меломанов. Если нужен только личный Spotify без публичной активности — Navidrome лучше во всём.</p>
<h2>9. Lyrion Music Server (LMS) — hi-fi мульти-рум</h2>
<p>Бывший Logitech Media Server. После того как Logitech закрыл железо Squeezebox, проект ушёл в community и переименовался в Lyrion. Версия 9.1.1.</p>
<p>LMS живёт в нише <strong>multi-room hi-fi</strong>. Если у тебя несколько Squeezebox-плееров (или их эмуляторов — Squeezelite, piCorePlayer на Raspberry Pi с DAC) — LMS их синхронно играет. Можешь иметь одну музыку в трёх комнатах в перфектном sync. Это не умеет ни Navidrome, ни Jellyfin.</p>
<p>Поддерживает FLAC до 24/192, DSD, gapless playback, мощные плагины (Spotify, Tidal, Qobuz, BBC iPlayer).</p>
<pre><code class="language-yaml">
services:
lms:
image: lmscommunity/lyrionmusicserver:9.1.1
container_name: lyrion
hostname: lyrion
ports:
- "9000:9000/tcp"
- "9090:9090/tcp"
- "3483:3483/tcp"
- "3483:3483/udp"
volumes:
- ./config:/config
- /mnt/music:/music:ro
- /etc/localtime:/etc/localtime:ro
environment:
- PUID=1000
- PGID=1000
restart: unless-stopped
</code></pre>
<h2>10. Audiobookshelf — аудиокниги и подкасты</h2>
<p>Audiobookshelf — не для фильмов и не для музыки. Это самостоятельная категория — <strong>аудиокниги, подкасты и e-books</strong>. Своя нативная Android-app, iOS в TestFlight, sync прогресса между устройствами. Скрейпит метаданные с Audible, Google Books, Open Library.</p>
<p>Если ты тонешь в подписках на Audible и хочешь ужарить весь свой архив MP3-аудиокниг в одно место — это оно. Jellyfin технически тоже умеет аудиокниги, но криво. Audiobookshelf делает это правильно.</p>
<pre><code class="language-yaml">
services:
audiobookshelf:
image: ghcr.io/advplyr/audiobookshelf:latest
container_name: audiobookshelf
ports:
- "13378:80"
volumes:
- ./config:/config
- ./metadata:/metadata
- /mnt/audiobooks:/audiobooks
- /mnt/podcasts:/podcasts
restart: unless-stopped
</code></pre>
<h2>Рецепт: разворачиваем Jellyfin от нуля до рабочего сервера</h2>
<p>Считаю что у тебя свежий <a title="Linux в апреле 2026: ядро 7.0, Ubuntu 26.04 LTS и Франция бросает Windows" href="https://it-apteka.com/linux-v-aprele-2026-jadro-7-0-ubuntu-26-04-lts-i-francija-brosaet-windows/" target="_blank" rel="noopener" data-wpil-monitor-id="2557">Ubuntu Server 24.04 LTS</a> на железе с Intel iGPU (любой Core 8-го поколения и новее). Если у тебя Synology или Unraid — принцип тот же, только GUI поверх Docker.</p>
<h3>Подготовка системы</h3>
<pre><code class="language-bash">
sudo apt update && sudo apt upgrade -y
sudo apt install -y curl ca-certificates intel-media-va-driver-non-free vainfo
</code></pre>
<p>Проверь что VAAPI поднялся:</p>
<pre><code class="language-bash">
vainfo
# должно показать VAEntrypointVLD для H264, HEVC, VP9, AV1 в зависимости от поколения
</code></pre>
<p>Если <code>vainfo</code> ругается на permissions — добавь юзера в группу render:</p>
<pre><code class="language-bash">
sudo usermod -aG render $USER
sudo usermod -aG video $USER
newgrp render
</code></pre>
<h3>Установка Docker</h3>
<pre><code class="language-bash">
curl -fsSL https://get.docker.com | sh
sudo usermod -aG docker $USER
newgrp docker
docker compose version
</code></pre>
<h3>Структура папок</h3>
<pre><code class="language-bash">
sudo mkdir -p /opt/jellyfin/{config,cache}
sudo chown -R 1000:1000 /opt/jellyfin
# структура медиа - важно
sudo mkdir -p /mnt/media/{movies,tv,music,books}
</code></pre>
<h3>docker-compose.yml</h3>
<pre><code class="language-yaml">
services:
jellyfin:
image: jellyfin/jellyfin:10.11.8
container_name: jellyfin
user: 1000:1000
network_mode: host
volumes:
- /opt/jellyfin/config:/config
- /opt/jellyfin/cache:/cache
- /mnt/media:/media:ro
devices:
- /dev/dri:/dev/dri
group_add:
- "109"
- "44"
environment:
- JELLYFIN_PublishedServerUrl=http://192.168.1.10:8096
- TZ=Europe/Moscow
restart: unless-stopped
</code></pre>
<p>Поднимаем:</p>
<pre><code class="language-bash">
cd /opt/jellyfin
docker compose up -d
docker logs -f jellyfin
</code></pre>
<p>Логи должны пройти миграции базы и запуститься на порту 8096. Открывай <code>http://твой-ip:8096</code>.</p>
<h3>Первый запуск — визард</h3>
<ol>
<li>Язык — русский</li>
<li>Админ-логин и пароль — не jellyfin/jellyfin, серьёзно</li>
<li>Библиотеки — добавь как минимум Movies (<code>/media/movies</code>), TV Shows (<code>/media/tv</code>), Music (<code>/media/music</code>)</li>
<li>В настройках библиотеки выбери Real-time monitoring чтобы новые файлы появлялись сразу</li>
<li>Metadata language — русский, country — Russia</li>
<li>Auth via local network — да, доступ снаружи — нет (на этом этапе)</li>
</ol>
<h3>Включаем аппаратный транскодинг</h3>
<p>Dashboard — Playback. Параметры:</p>
<ul>
<li>Hardware acceleration: Intel QuickSync (QSV)</li>
<li>QSV Device: <code>/dev/dri/renderD128</code></li>
<li>Enable hardware decoding: H.264, HEVC, VP9, AV1 (если CPU поддерживает — 11th gen+)</li>
<li>Enable HEVC encoding: да</li>
<li>Enable AV1 encoding: только если у тебя Intel Arc или 11th gen+</li>
<li>Enable Tone mapping: да (для HDR)</li>
<li>Tone mapping algorithm: bt2390</li>
<li>Throttle transcodes: да</li>
</ul>
<h2>Проверка — всё работает?</h2>
<p>Базовая sanity-проверка после установки:</p>
<pre><code class="language-bash">
# контейнер живёт
docker ps | grep jellyfin
# порт слушается
ss -tlnp | grep 8096
# свежие логи без ошибок
docker logs --tail 100 jellyfin 2>&1 | grep -iE "error|fatal"
# GPU видно из контейнера
docker exec jellyfin /usr/lib/jellyfin-ffmpeg/ffmpeg -hide_banner -hwaccels
</code></pre>
<p>Запусти видео в плеере, перемотай на середину файла. Открой Dashboard — Playback — в реальном времени должна появиться сессия. Если в строке Transcoding пусто — идёт Direct Play (хорошо). Если есть «Transcoding (qsv)» — аппаратный транскодинг работает (тоже хорошо). Если «Transcoding (CPU)» — HW не подцепился, перепроверь конфиг.</p>
<p>Параллельно на сервере:</p>
<pre><code class="language-bash">
# нагрузка GPU при транскодинге
sudo intel_gpu_top
# в строке Video должны быть ненулевые проценты
</code></pre>
<h2>Осложнения — типовые грабли и как их обойти</h2>
"Ошибка
<br />
Контейнер не может писать в render-устройство. Причина — GID группы render внутри контейнера не совпадает с GID на хосте.<br />
<pre><code class="language-bash">
# узнай GID render на хосте
getent group render | cut -d: -f3
# пропиши его в group_add контейнера, перезапусти
docker compose down && docker compose up -d
</code></pre>
"Ошибка
<br />
SSDP/UPnP-broadcast не проходит между сетями. Если контейнер в bridge — DLNA не работает почти никогда. Нужен host network mode или macvlan.<br />
<pre><code class="language-bash">
# проверь broadcast
sudo tcpdump -i eth0 udp port 1900
# должны лететь M-SEARCH запросы от телевизора и NOTIFY от сервера
</code></pre>
<p>Решение — поставь <code>network_mode: host</code> в compose. Если хочешь bridge — используй <a href="https://docs.docker.com/network/drivers/macvlan/" target="_blank" rel="noopener">macvlan-сеть</a> и публикуй контейнер с собственным IP в локальной сети.</p>
"Ошибка
<br />
На 10.11 и больших библиотеках (10к+) первичный скан и обновление метаданных могут идти дольше чем на 10.10 — известная регрессия после миграции на EF Core. Точечные релизы её фиксят.<br />
<pre><code class="language-bash">
# обнови до последней
docker pull jellyfin/jellyfin:10.11.8
docker compose up -d --force-recreate
</code></pre>
<p>Дополнительно отключи в <a href="https://it-apteka.com/kakoj-vpn-server-ustanovit-na-ubuntu-dlja-nativnogo-podkljuchenija/" title="Настройка IKEv2 VPN сервера на Ubuntu 24.04: StrongSwan без лишних клиентов" target="_blank" rel="noopener" data-wpil-monitor-id="2784">настройках библиотеки лишнее</a> — Real-time monitoring если папок много, Chapter image extraction для всей библиотеки сразу.</p>
"Ошибка
<br />
Tone mapping не включён или GPU не поддерживает 10-bit decode. Капля никотина убивает лошадь, одна неправильная настройка tone mapping — весь вечер кино.<br />
<p>Для Intel Quick Sync HDR tone mapping работает с 8-го поколения и новее. Для AMD VAAPI — с RDNA2 (RX 6000+). Для NVIDIA — с Pascal+. Включи в Dashboard — Playback — Tone mapping. Алгоритм — bt2390. Если картинка тёмная — убавь Tone mapping desaturation в 0.5.</p>
"Ошибка
<br />
UMS, Gerbera, MiniDLNA по умолчанию отдают файл как есть. Старый телевизор давится. Решение — либо профиль транскодинга в UMS, либо пере-кодирование в более совместимый контейнер заранее.<br />
<pre><code class="language-bash">
# одноразовый перекод 4K HEVC в 1080p H.264 для совместимости
ffmpeg -i input.mkv -c:v libx264 -crf 20 -preset slow \
-c:a aac -b:a 192k -vf scale=1920:-2 output.mp4
</code></pre>
<h2>Сравнение по сценариям — что брать в твоём случае</h2>
<h3>Универсальный сервер (видео+музыка+книги)</h3>
<p><strong>Jellyfin</strong>. Без вариантов. Альтернатива — Emby (но он уже не полностью FOSS) или Plex (но смотри начало статьи).</p>
<h3>Только музыка</h3>
<p><strong>Navidrome</strong> для 99% случаев. <strong>LMS</strong> если у тебя hi-fi multi-room на Squeezebox/piCorePlayer. <strong>Funkwhale</strong> если хочешь федерацию.</p>
<h3>Аудиокниги и подкасты</h3>
<p><strong>Audiobookshelf</strong>. У него своя ниша, своя app, и Jellyfin тут проигрывает.</p>
<h3>Максимальная совместимость с Smart TV / приставками (DLNA)</h3>
<p><strong>Universal Media Server</strong> для агрессивного транскодинга на старых ТВ. <strong>Gerbera</strong> для современных ТВ, которые умеют HEVC и не нуждаются в перекодировке. <strong>MiniDLNA</strong> если железо слабое и нужен минимум.</p>
<h3>Минимальное потребление ресурсов</h3>
<p><strong>MiniDLNA</strong> (~15 МБ RAM) и <strong>Gerbera</strong> (~30 МБ). <strong>Navidrome</strong> для музыки (~50 МБ). На Raspberry Pi Zero 2W будет жить любая из этих троек.</p>
<h3>4K/HDR с аппаратным транскодингом</h3>
<p><strong>Jellyfin</strong> с Intel Quick Sync (11th gen+ для AV1), NVIDIA RTX 30+ или AMD RX 6000+. Из старых GPU нормально жмут только 8th-10th gen Intel iGPU.</p>
<h3>HTPC прямо в телевизор</h3>
<p><strong>Kodi</strong> или <strong>LibreELEC</strong> на NVIDIA Shield, x86 mini-PC или Raspberry Pi 5.</p>
<h2>Профилактика — не наступать на грабли</h2>
<h3>Бэкапы</h3>
<p>Что бэкапить в Jellyfin:</p>
<ul>
<li><code>/config</code> — база, настройки, метаданные, плейлисты</li>
<li><code>/cache</code> — не нужен, регенерируется</li>
<li>Сами файлы медиа — на отдельном сторадже с собственной стратегией</li>
</ul>
<p>В 10.11 встроены нативные бэкапы. Dashboard — Scheduled Tasks — Backup Database. Расписание — раз в неделю. Хранить 4 копии. Дополнительно я делаю rsync /config на NAS:</p>
<pre><code class="language-bash">
# /etc/cron.daily/jellyfin-backup
#!/bin/bash
DATE=$(date +%Y%m%d)
rsync -a --delete /opt/jellyfin/config/ /mnt/backup/jellyfin/$DATE/
find /mnt/backup/jellyfin/ -maxdepth 1 -mtime +14 -exec rm -rf {} \;
</code></pre>
<pre><code class="language-bash">
sudo chmod +x /etc/cron.daily/jellyfin-backup
</code></pre>
<h3>Мониторинг</h3>
<p>Минимум — HTTP-проверка. Если ты запустил <a href="https://uptime.kuma.pet/" target="_blank" rel="noopener">Uptime Kuma</a> — добавь <code>http://localhost:8096/health</code> в монитор, оно вернёт 200 OK когда сервер живой.</p>
<p>Для полноценного мониторинга — <strong>Prometheus + jellyfin-exporter</strong>. Снимает активные сессии, время транскодинга, статус GPU. Графана-дашборд готовый есть в коммьюнити.</p>
<h3>Безопасность</h3>
<p>Минимальный hardening если выставляешь Jellyfin в интернет:</p>
<ol>
<li>Никогда не публикуй порт 8096 наружу напрямую. Только через reverse proxy с TLS — <a href="https://caddyserver.com/" target="_blank" rel="noopener">Caddy</a> или Traefik</li>
<li>Включи HSTS, отключи слабые TLS-цифры</li>
<li>fail2ban на /Users/AuthenticateByName endpoint — блокировка по 3 неудачным попыткам</li>
<li>Лучше не публиковать в публичный интернет вообще, а ходить через <a href="https://tailscale.com/" target="_blank" rel="noopener">Tailscale</a> или <a href="https://www.wireguard.com/" target="_blank" rel="noopener">WireGuard</a> — mesh-VPN</li>
<li>Cloudflare Tunnel вместо проброса порта — не открывает 443 на маршрутизаторе</li>
<li>Отдельный пользователь с правами read-only на медиа-том</li>
<li>UFW: <code>sudo ufw allow from 192.168.0.0/16 to any port 8096</code> и больше ничего</li>
</ol>
<p>В 2025-м был кейс — LastPass поломали через outdated Plex-сервер у инженера. Урок: self-hosted — это не «поставил и забыл». Это «поставил, настроил автообновления, мониторишь CVE».</p>
<pre><code class="language-bash">
# простой watchtower для автообновления контейнеров
docker run -d --name watchtower \
-v /var/run/docker.sock:/var/run/docker.sock \
containrrr/watchtower \
--schedule "0 0 4 * * *" \
--cleanup \
jellyfin
</code></pre>
<p>Не ставь watchtower на критичные prod-сервисы без тестового окружения. Для домашнего сценария — норм.</p>
<h3>Автозапуск</h3>
<p><code>restart: unless-stopped</code> в docker-compose — этого достаточно. После ребута сервера контейнеры поднимутся сами. Дополнительно проверь что docker.service в автозагрузке:</p>
<pre><code class="language-bash">
sudo systemctl enable docker
sudo systemctl is-enabled docker
</code></pre>
<h2>Системные требования — что нужно физически</h2>
<table>
<thead>
<tr>
<th>Сценарий</th>
<th>CPU</th>
<th>RAM</th>
<th>GPU</th>
<th>Диск</th>
<th>Сеть</th>
</tr>
</thead>
<tbody>
<tr>
<td>Только музыка (Navidrome)</td>
<td>Pi 4 / любой x86</td>
<td>1 ГБ</td>
<td>не нужен</td>
<td><a class="wpil_keyword_link" title="ssd" href="https://it-apteka.com/tag/ssd/" target="_blank" rel="noopener" data-wpil-keyword-link="linked" data-wpil-monitor-id="2564">SSD</a> 32 ГБ под систему</td>
<td>1 Gbps LAN</td>
</tr>
<tr>
<td>1080p Direct Play</td>
<td>Celeron J4125 / Pi 5</td>
<td>2 ГБ</td>
<td>не нужен</td>
<td>SSD 64 ГБ + <a class="wpil_keyword_link" title="hdd" href="https://it-apteka.com/tag/hdd/" target="_blank" rel="noopener" data-wpil-keyword-link="linked" data-wpil-monitor-id="2563">HDD</a> под медиа</td>
<td>1 Gbps</td>
</tr>
<tr>
<td>1080p Transcode 1-2 потока</td>
<td>i3-8100+ / Ryzen 3 5300G</td>
<td>4 ГБ</td>
<td>iGPU UHD 630+</td>
<td>SSD 128 ГБ + HDD</td>
<td>1 Gbps</td>
</tr>
<tr>
<td>4K HEVC HDR transcode</td>
<td>i5-11400+ / Ryzen 5 7600</td>
<td>8 ГБ</td>
<td>iGPU UHD 730+ или RTX 3050+</td>
<td>NVMe + RAID HDD</td>
<td>2.5 Gbps желательно</td>
</tr>
<tr>
<td>4-6 одновременных 4K transcode</td>
<td>i5-13500+ / Xeon E-2378G</td>
<td>16 ГБ</td>
<td>Intel Arc A380+ или RTX 4060</td>
<td>NVMe + RAID HDD 8TB+</td>
<td>2.5-10 Gbps</td>
</tr>
</tbody>
</table>
<p>На момент публикации актуальна версия Jellyfin 10.11.8, Navidrome 0.61.2, Gerbera 3.2.1, UMS 15.5.0, Kodi 21.3 Omega. Перед установкой проверь свежие релизы на GitHub проекта.</p>
<h3>Таблица портов</h3>
<table>
<thead>
<tr>
<th>Сервис</th>
<th>Порт</th>
<th>Протокол</th>
<th>Назначение</th>
<th>Открывать наружу?</th>
</tr>
</thead>
<tbody>
<tr>
<td>Jellyfin HTTP</td>
<td>8096</td>
<td>TCP</td>
<td>Web UI и API</td>
<td>Только через reverse proxy</td>
</tr>
<tr>
<td>Jellyfin HTTPS</td>
<td>8920</td>
<td>TCP</td>
<td>HTTPS если без proxy</td>
<td>Нет, лучше Caddy/Traefik</td>
</tr>
<tr>
<td>Jellyfin Discovery</td>
<td>1900</td>
<td>UDP</td>
<td>SSDP/DLNA broadcast</td>
<td>Только LAN</td>
</tr>
<tr>
<td>Jellyfin Auto-discover</td>
<td>7359</td>
<td>UDP</td>
<td>Поиск сервера клиентами</td>
<td>Только LAN</td>
</tr>
<tr>
<td>Navidrome</td>
<td>4533</td>
<td>TCP</td>
<td>Web UI и Subsonic API</td>
<td>Только через reverse proxy</td>
</tr>
<tr>
<td>Gerbera</td>
<td>49152</td>
<td>TCP</td>
<td>UPnP web UI</td>
<td>Нет</td>
</tr>
<tr>
<td>Lyrion (LMS) Web</td>
<td>9000</td>
<td>TCP</td>
<td>Web UI</td>
<td>Только LAN</td>
</tr>
<tr>
<td>Lyrion Squeezebox</td>
<td>3483</td>
<td>TCP+UDP</td>
<td>Протокол плееров</td>
<td>Только LAN</td>
</tr>
<tr>
<td>UMS</td>
<td>9001</td>
<td>TCP</td>
<td>Web admin/player</td>
<td>Только LAN</td>
</tr>
<tr>
<td>Audiobookshelf</td>
<td>13378</td>
<td>TCP</td>
<td>Web UI и API</td>
<td>Только через reverse proxy</td>
</tr>
</tbody>
</table>
<h2>Альтернативы — что я в этой статье не разбирал</h2>
<p>Список не полон, но эти проекты тоже встретишь:</p>
<ul>
<li><strong>Emby</strong> — предок Jellyfin, частично проприетарный с 2018-го. Премиум-функции платные. Если не хочешь тратить — бери Jellyfin.</li>
<li><strong>Ampache</strong> — старая Subsonic-совместимая платформа. Жив, но Navidrome обогнал по UX.</li>
<li><strong>Gonic</strong> — Go-имплементация Subsonic API. Очень лёгкий, но Navidrome полнее по фичам.</li>
<li><strong>Airsonic-Advanced</strong> — форк форка Subsonic. Ещё работает, но активность ниже Navidrome.</li>
<li><strong>OwnTone (forked-daapd)</strong> — DAAP-сервер для AirPlay, лёгкий, нишевый.</li>
<li><strong>Roon</strong> — проприетарный hi-fi сервер. Платный, но не open source.</li>
<li><strong>Stash</strong> — тоже медиа-сервер, для специфичного контента, не разбираем тут.</li>
<li><strong>Komga / Kavita</strong> — для комиксов и манги. Если у тебя коллекция CBZ — смотри их, не Jellyfin.</li>
</ul>
<h2>FAQ — часто задаваемые вопросы</h2>
<h3>Чем Jellyfin отличается от Plex в 2026 году?</h3>
<p>Jellyfin полностью бесплатный и open-source. Аппаратный транскодинг, удалённый доступ, мобильные клиенты, DVR — всё включено. Plex с 2025 года требует Plex Pass ($6.99/мес или $249.99 lifetime) для удалённого стриминга и часть фичей. Качество интерфейса у Plex чуть выше, экосистема клиентов шире, но overall за нулевую цену Jellyfin закрывает 90% сценариев.</p>
<h3>Почему DLNA-сервер не виден на телевизоре после настройки?</h3>
<p>Чаще всего проблема в Docker bridge network — SSDP-broadcast по UDP 1900 не проходит между сетями. Перезапусти контейнер с <code>network_mode: host</code>. Если хост-режим не подходит — используй macvlan-сеть или поставь сервер прямо на хост, не в контейнер. Проверь UFW/iptables: <code>sudo ufw allow from 192.168.0.0/16</code>.</p>
<h3>Какой open source медиа сервер лучше для NAS?</h3>
<p>Зависит от железа NAS. Synology Plus и Unraid с x86 Intel — бери Jellyfin с Quick Sync. Synology Value/J без iGPU — Navidrome для музыки и Gerbera для DLNA, Jellyfin потянет только Direct Play без транскодинга. TrueNAS Scale — Jellyfin через App Catalog или вручную через Docker.</p>
<h3>Как проверить что аппаратный транскодинг работает в Jellyfin?</h3>
<p>Запусти видео которое требует перекодировки (например 4K в 1080p) и зайди в Dashboard — Playback. В строке активной сессии будет «Transcoding (qsv)» или «Transcoding (nvenc)» — это HW. Если «Transcoding (CPU)» — используется только процессор. На сервере параллельно запусти <code>intel_gpu_top</code> или <code>nvidia-smi</code> — увидишь нагрузку на GPU.</p>
<h3>Можно ли запустить Jellyfin на Raspberry Pi?</h3>
<p>Можно, но с оговорками. Pi 4 и Pi 5 запускают Jellyfin, но аппаратное декодирование на них ограничено — V4L2 поддерживает H.264 и частично HEVC, AV1 — нет. Direct Play 1080p MP4 работает идеально. Транскодинг 4K на Pi 5 — не вытягивает. Если коллекция в основном 1080p H.264 — Pi подходит.</p>
<h3>Что делать если Jellyfin тормозит при сканировании библиотеки?</h3>
<p>В версии 10.11 после миграции на EF Core есть регрессии на больших библиотеках. Обнови до последнего минора (10.11.8 закрывает много бажков). Отключи Real-time monitoring в настройках библиотеки если папок очень много, выключи Chapter image extraction для всей библиотеки. Если совсем плохо — откатись на 10.10.x как временная мера, но без ключевых обновлений безопасности.</p>
<h3>Чем Navidrome отличается от Funkwhale?</h3>
<p>Navidrome — чистый локальный музыкальный сервер. Лёгкий, простой, Subsonic API, отличные мобильные клиенты. Funkwhale — федеративная платформа с ActivityPub: можешь подписываться на других пользователей и их публичные плейлисты как в Mastodon. Funkwhale тяжелее (Django+PostgreSQL+Redis+Celery, 600 МБ RAM против 50 у Navidrome). Если нужен личный Spotify — Navidrome. Если хочешь fediverse для меломанов — Funkwhale.</p>
<h3>Безопасно ли выставлять Jellyfin в интернет?</h3>
<p>Прямой проброс порта — небезопасно: были CVE в Jellyfin (последние закрыты в 10.11.7), отдельные конфигурации могут быть уязвимы. Безопасный путь: reverse proxy с TLS (Caddy, Traefik), fail2ban на endpoint логина, регулярные обновления. Лучше — mesh-VPN типа Tailscale: видны только устройствам в твоей сети, никаких открытых портов на роутере. Cloudflare Tunnel — тоже годится.</p>
<h2>Прогноз — что мы получили</h2>
<p>Поставили Jellyfin 10.11.8 на Linux в Docker, прокинули Intel iGPU для аппаратного транскодинга, настроили библиотеки видео, музыки и книг, разобрались с DLNA для старых телевизоров через Gerbera или UMS, добавили Navidrome если хочется отдельный музыкальный <a title="Настройка NTP MikroTik: клиент, сервер и всё что ломается без него" href="https://it-apteka.com/nastrojka-ntp-na-mikrotik-klient-i-server-shpargalka-dlja-ros-6-i-7/" target="_blank" rel="noopener" data-wpil-monitor-id="2555">сервер с лёгкими мобильными клиентами</a>. Сделали бэкапы, накрыли reverse proxy, не выставили ничего наружу без VPN.</p>
<p>Теперь у тебя есть полный self-hosted media stack 2026 года, без подписок, без телеметрии, без сюрпризов от вендора. Plex может закручивать гайки сколько угодно — тебя это уже не касается. Если конкретный шаг не зашёл или валится с ошибкой которую я не описал — пиши в комментарии, разберёмся.</p>
"Финальный
<br />
Не пытайся развернуть все десять серверов сразу. Поставь Jellyfin, попользуйся неделю-две, добавь Navidrome для музыки если её много, добавь Audiobookshelf если слушаешь подкасты. Остальное — по реальной потребности, а не на всякий случай. Минималистичный конфиг который делает ровно то что написано — всегда побеждает зоопарк сервисов которые «вдруг пригодятся».<br />
Open source media server в 2026 году — это уже не «бесплатная замена Plex для гиков». Это нормальный домашний кинотеатр без подписок, без телеметрии и без сюрпризов вроде того что Plex провернул в 2025-м, заперев удалённый стрим за пейволлом. 25 лет в SRE и сетях, и за последний год развернул, сломал и починил все десять решений из этого списка. Расскажу что выбрать под NAS, под homelab, под Smart TV и под старый Raspberry Pi с 1 ГБ памяти.
Быстрый ответ
Если коротко — какой open source media server взять в 2026:
- Jellyfin 10.11.8 — универсальный сервер, видео+музыка+книги, аппаратный транскодинг, мобильные клиенты. Лучший общий выбор.
- Navidrome 0.61.2 — только музыка. Лёгкий, быстрый, Subsonic API, работает на Pi.
- Gerbera 3.2.1 — чистый DLNA/UPnP для Smart TV. Без веб-плеера, но ест 30 МБ RAM.
- Universal Media Server 15.5.0 — DLNA с агрессивным транскодингом для старых телевизоров.
- Kodi 21.3 Omega — HTPC на самом ТВ-боксе, не сервер в классическом смысле.
Берёшь NAS с x86 и Intel iGPU — ставь Jellyfin. Только музыка — Navidrome. Хочешь чтобы Samsung 2014 года увидел сервер по DLNA — Gerbera или UMS.
Диагноз: Plex закрылся, надо валить
Поднял Plex дома. Года три-четыре он работал. А в апреле 2025 пришло письмо: удалённый стрим теперь только по подписке. Plex Pass или Remote Watch Pass. С ноября 2025 это начали реально включать через Roku, в течение 2026 — на Apple TV, Fire TV, Android TV и сторонних клиентах. Знакомо?
Я не против платить за софт. Я против платить за доступ к собственным файлам на собственном железе. Поэтому open source media server в 2026 — не вопрос идеологии, а вопрос гигиены.
Что ты получишь к концу статьи:
- сравнительная таблица 10 платформ с реальными цифрами по RAM, транскодингу и поддержке устройств
- понимание что выбрать под твой сценарий: NAS, homelab, Smart TV, музыка
- готовые docker-compose для топ-3 решений
- разбор аппаратного ускорения — Intel Quick Sync, NVIDIA NVENC, AMD AMF
- troubleshooting типовых граблей
Времени на чтение — минут 25. Времени на разворачивание Jellyfin по этому материалу — минут 15 если у тебя уже есть Docker.
Сравнительная таблица: 10 open source медиа серверов 2026
Это таблица-отправная точка. Дальше разбираю каждое решение в деталях. Версии актуальны на момент публикации — перед установкой проверь свежие релизы на GitHub проекта.
| Платформа |
Версия |
Фокус |
HW транскодинг |
Web UI |
DLNA |
Live TV |
RAM idle |
Сложность |
Лучше всего для |
| Jellyfin |
10.11.8 |
Видео+музыка+книги |
Intel/NVIDIA/AMD/VAAPI |
Да |
Да |
Да + DVR |
~250 МБ |
Средняя |
Универсальный сервер |
| Kodi |
21.3 Omega |
HTPC + клиент |
Да (на стороне клиента) |
Нет (только TUI) |
Да (UPnP) |
Да через PVR-клиенты |
~200 МБ |
Высокая |
Подключение к ТВ напрямую |
| Universal Media Server |
15.5.0 |
DLNA + транскодинг |
FFmpeg/MEncoder |
Web Player |
Да (главное) |
Нет |
~400 МБ (Java) |
Низкая |
Старые Smart TV, PS3, Xbox |
| Gerbera |
3.2.1 |
Чистый UPnP |
Через FFmpeg |
Да (база/файлы) |
Да (ядро) |
Нет |
~30 МБ |
Средняя |
Лёгкий DLNA на Pi |
| ReadyMedia (MiniDLNA) |
1.3.3 |
Минималистичный DLNA |
Нет |
Нет |
Да |
Нет |
~15 МБ |
Низкая |
Самый лёгкий DLNA |
| Rygel |
0.42 |
UPnP/DLNA для Linux |
GStreamer |
Нет |
Да |
Нет |
~50 МБ |
Средняя |
GNOME/Linux desktop |
| Navidrome |
0.61.2 |
Только музыка |
FFmpeg (audio) |
Да |
Нет (только Subsonic) |
Нет |
~50 МБ |
Низкая |
Личный Spotify |
| Funkwhale |
1.4 |
Музыка + федерация |
FFmpeg |
Да |
Нет |
Нет |
~600 МБ |
Высокая |
Музыка + ActivityPub |
| Lyrion Music Server (LMS) |
9.1.1 |
Squeezebox экосистема |
FFmpeg/sox |
Да |
Через плагины |
Радио |
~150 МБ |
Средняя |
Multi-room hi-fi |
| Audiobookshelf |
2.x |
Аудиокниги + подкасты |
FFmpeg (audio) |
Да |
Нет |
Нет |
~80 МБ |
Низкая |
Замена Audible |
Цифры по RAM — на пустом сервере без активных стримов. Под нагрузкой Jellyfin с 4K-транскодингом съест 1-2 ГБ, плюс GPU. У Navidrome нагрузка от размера библиотеки — 30 000 треков укладываются в 50-100 МБ.
Почему open source выигрывает в 2026
Семь причин почему я перевёл всех знакомых с Plex на FOSS:
- Удалённый стрим у Plex теперь платный — Plex Pass $6.99/мес или Remote Watch Pass $1.99/мес. На своём сервере. Со своими файлами. Странно.
- Телеметрия — Plex/Emby собирают что и когда ты смотришь. Jellyfin не собирает ничего, это записано в его манифесте.
- Аппаратное ускорение бесплатно — в Jellyfin Intel Quick Sync, NVIDIA NVENC и AMD VAAPI работают из коробки. У Plex это Plex Pass-only.
- Контроль обновлений — твой Docker, твой compose, твоя версия. Никто не выкатит тебе ребрендинг приложения и не уберёт половину функций как Plex с Roku-апой.
- Безопасность аудитируема — код Jellyfin на GitHub, CVE раскрываются публично (см. 10.11.7 от октября 2025).
- Низкие требования — Navidrome крутится на Raspberry Pi Zero. Plex — нет.
- Сообщество вместо саппорта — на форуме Jellyfin тебе ответят за пару часов. В Plex Support тикете — через неделю и шаблоном.
Минус один и существенный: единого «полированного» приложения уровня Plex для семейных пользователей у open source пока нет. Жена и дети не всегда хотят разбираться с интерфейсом Jellyfin. Об этом ниже.
Архитектура типового self-hosted media stack
Чтобы было понятно куда мы суём эти серверы и как они общаются — вот как обычно выглядит домашняя установка.
%%{init: {
'theme': 'base',
'themeVariables': {
'primaryColor': '#ffffff',
'primaryTextColor': '#1e293b',
'primaryBorderColor': '#94a3b8',
'lineColor': '#64748b',
'fontSize': '15px',
'fontFamily': 'ui-sans-serif, system-ui, sans-serif'
},
'flowchart': {'curve': 'linear', 'nodeSpacing': 50, 'rankSpacing': 50}
}}%%
flowchart TD
A["Хранилище: NAS или диски"] --> B["Docker host: Linux x86_64"]
B --> C["Jellyfin контейнер"]
B --> D["Navidrome контейнер"]
B --> E["Reverse proxy: Caddy или Traefik"]
C --> F["GPU: Intel iGPU или NVIDIA"]
E --> G["LAN: Smart TV, телефоны"]
E --> H["WAN: VPN или Cloudflare Tunnel"]
style A fill:#f8fafc,stroke:#94a3b8,stroke-width:2px,color:#1e293b
style B fill:#f8fafc,stroke:#3b82f6,stroke-width:2px,color:#1e40af
style C fill:#f8fafc,stroke:#22c55e,stroke-width:2px,color:#15803d
style D fill:#f8fafc,stroke:#22c55e,stroke-width:2px,color:#15803d
style E fill:#f8fafc,stroke:#3b82f6,stroke-width:2px,color:#1e40af
style F fill:#f8fafc,stroke:#f97316,stroke-width:2px,color:#9a3412
style G fill:#f8fafc,stroke:#3b82f6,stroke-width:2px,color:#1e40af
style H fill:#f8fafc,stroke:#3b82f6,stroke-width:2px,color:#1e40af
Файлы лежат на NAS или просто на дисках. Docker крутится на отдельном Linux-боксе или на самом NAS если он x86 (Synology Plus, TrueNAS, Unraid). Jellyfin пробрасывает GPU через /dev/dri для Intel или --gpus all для NVIDIA. Снаружи — reverse proxy с TLS, доступ через VPN типа Tailscale или Cloudflare Tunnel.
1. Jellyfin — основной выбор в 2026
Jellyfin — это форк Emby 3.5.2 от 2018 года, ушедший в чистый FOSS. На апрель 2026 актуальная версия — 10.11.8. Это форк форка проекта который изначально был форком, и звучит как мем, но работает оно отлично.
Что умеет Jellyfin
- Видео: H.264, H.265/HEVC, AV1, VP9, MPEG-2, контейнеры MKV/MP4/TS
- Аудио: FLAC, ALAC, MP3, AAC, Opus, Vorbis, DSD через транскодинг
- Аппаратный транскодинг: Intel Quick Sync (QSV), NVIDIA NVENC, AMD VAAPI/AMF, Apple VideoToolbox, Raspberry Pi V4L2
- HDR: HDR10, HDR10+, Dolby Vision (с тонмаппингом)
- Subtitles: PGS, SRT, ASS/SSA, VTT
- Live TV + DVR через HDHomeRun, TVHeadend, IPTV M3U
- Книги (через плагин Bookshelf), музыка (полноценно), подкасты, фотографии
- Клиенты: web, Android, Android TV, iOS, Roku, Samsung Tizen, LG webOS, Kodi-плагин, Symfonium для музыки
Что нового в 10.11
Релиз 10.11 от октября 2025 — один из самых крупных за всю историю проекта. Перешли на EF Core для базы, добавили нативные бэкапы прямо из дашборда, переписали часть веб-UI. На больших библиотеках (10 000+ айтемов) пока есть регрессии по скорости загрузки — точечные релизы 10.11.2 и далее их закрывают, последний 10.11.8 от апреля 2026 закрывает регрессии 10.11.7 и важные CVE.
Перед обновлением
10.11.7 содержал критические исправления безопасности. Если ты на 10.11.x старее — обновись на 10.11.8. Перед апгрейдом сделай бэкап /config через встроенный планировщик (Dashboard — Scheduled Tasks —
Backup Database).
Установка через Docker — основной сценарий
Создай compose-файл. Я предполагаю что у тебя Linux с Docker и Intel iGPU — самая частая конфигурация на NAS и homelab.
services:
jellyfin:
image: jellyfin/jellyfin:10.11.8
container_name: jellyfin
user: 1000:1000
network_mode: host
volumes:
- ./config:/config
- ./cache:/cache
- /mnt/media:/media:ro
devices:
- /dev/dri:/dev/dri
group_add:
- "109" # render group в Debian/Ubuntu
restart: unless-stopped
environment:
- JELLYFIN_PublishedServerUrl=http://192.168.1.10:8096
Подними:
docker compose up -d
docker logs -f jellyfin
Открой http://твой-ip:8096. Пройди мастер: язык, админ, библиотеки. Указывай /media/movies, /media/tv и так далее как ты их смонтировал внутрь контейнера.
Аппаратный транскодинг — где обычно ломается
Главная боль при первой установке — GPU не пробрасывается. Проверь:
ls -la /dev/dri/
# должны быть card0 и renderD128
# проверь к какой группе привязан renderD128
stat -c "%G %g" /dev/dri/renderD128
# обычно render с GID 109 на Debian/Ubuntu, 989 на Fedora
# внутри контейнера
docker exec -it jellyfin /usr/lib/jellyfin-ffmpeg/ffmpeg -hwaccels
Если в выводе есть vaapi и qsv — GPU виден. Идёшь в Dashboard — Playback — Transcoding и выбираешь Intel QuickSync (QSV), указывай /dev/dri/renderD128. Включи Tone Mapping для HDR-контента.
Плюсы Jellyfin
- Полный пакет: видео, музыка, книги, ТВ — всё в одном
- Аппаратный транскодинг бесплатно для всех GPU
- Огромная экосистема клиентов — даже на старом Samsung Tizen есть Jellyfin Tizen
- Активная разработка: семь лет проекту, к декабрю 2025 отметили
Минусы Jellyfin
- Веб-UI местами не такой полированный как Plex
- На больших библиотеках 10.11 медленнее чем 10.10 (фиксят)
- Нет встроенного Discovery вне локальной сети — надо разбираться с reverse proxy/VPN
- Иногда метаданные подбираются криво, надо ручками править
2. Kodi — если фронт важнее бэка
Kodi — это HTPC-софт, не сервер в традиционном смысле. Ты ставишь его на тот же ТВ-бокс или Pi что подключён к телевизору, и он сам играет файлы из сетевой папки. Может работать как UPnP-сервер, но это побочная функция.
На май 2026 актуальная стабильная — 21.3 «Omega». 22 «Piers» в Alpha 3 с конца марта 2026, релиз скоро. Версия 22 принесла поддержку PipeWire на Linux, улучшенный AV1 hardware decode, FFmpeg 8.0.1, поддержку Wayland Color Management для HDR.
Kodi имеет смысл если:
- У тебя есть x86 mini-PC, Raspberry Pi или Android TV-бокс воткнутый прямо в телевизор
- Ты хочешь интерфейс на 10-foot UI — управление с пульта, крупный шрифт
- Тебе нужны сторонние аддоны: PVR-клиенты для IPTV, скиннинг, скрейперы
- Ты хочешь LibreELEC — минимальный дистрибутив только под Kodi, грузится за 15 секунд
Kodi не имеет смысла как «центральный сервер для всех устройств в доме». Для этого тебе всё равно нужен отдельный медиа-сервер — Jellyfin или Gerbera — а Kodi подключается к нему как клиент.
Связка Jellyfin + Kodi-плагин Jellycon/Jellyfin for Kodi — очень популярная схема: на сервере Jellyfin метаданные и стриминг, на телевизоре Kodi с красивым TV-интерфейсом.
3. Universal Media Server (UMS) — DLNA с турбонаддувом
UMS — форк PS3 Media Server, написанный на Java. Версия 15.5.0 от февраля 2026 добавила поддержку телевизоров LG и Samsung 2026 года выпуска, нативный Dolby Vision в MKV для LG TV 2022+, фолдер-серч.
Главная фишка UMS — агрессивный транскодинг под капризные старые устройства. Если у тебя Sony Bravia 2012 года которая отказывается понимать MKV с FLAC внутри — UMS на лету перекодирует это в формат который телевизор сожрёт. Под капотом FFmpeg, MEncoder, tsMuxeR, AviSynth, VLC.
Из коробки видит PS3, Xbox, Roku, Apple TV, FireTV, всё семейство Smart TV (LG, Samsung, Sony, Panasonic), DLNA-приёмники, Sonos, ресиверы Yamaha/Denon.
Установка UMS на Linux через Docker
services:
ums:
image: universalmediaserver/ums:15.5.0
container_name: ums
network_mode: host
volumes:
- ./ums-config:/root/.config/UMS
- /mnt/media:/media:ro
restart: unless-stopped
Веб-интерфейс — на порту 9001. Веб-плеер — на 9001 в /web/. DLNA-broadcast работает только в host network mode — не пытайся пихать UMS в bridge, не увидят его телевизоры.
Плюсы: ставишь и оно работает с любым устройством. Минусы: Java-процесс жрёт 400-700 МБ RAM на простое, веб-UI довольно технический, мобильного клиента нет (только сторонние UPnP-плееры).
4. Gerbera — чистый UPnP без бубна
Gerbera — наследник MediaTomb. C++, libupnp/libnpupnp под капотом. Версия 3.2.1 от 2026 года. Это не медиа-плеер с веб-плеером, это бэкенд который раздаёт твою библиотеку по UPnP/DLNA. Веб-интерфейс есть, но он для администрирования базы и просмотра файловой структуры, не для просмотра кино.
Кому Gerbera:
- Тебе нужен лёгкий DLNA-сервер на Pi или старом мини-ПК
- Воспроизведение через нативные DLNA-приложения телевизора, BubbleUPnP, VLC, Kodi
- Тебе важна тонкая настройка через config.xml — layout, кастомные JS-скрипты импорта
- Транскодинг через FFmpeg-вызовы из конфига — с тонкой настройкой профилей под устройство
Запуск Gerbera
services:
gerbera:
image: gerbera/gerbera:3.2.1
container_name: gerbera
network_mode: host
volumes:
- ./gerbera-config:/var/run/gerbera
- /mnt/media:/media:ro
restart: unless-stopped
После запуска зайди на http://ip:49152. В первом окне получи токен из логов:
docker logs gerbera 2>&1 | grep -i "token"
Токен вводишь, создаёшь админ-аккаунт, добавляешь библиотеку через File system — правый клик — Add. Через минуту телевизор увидит «Gerbera» в списке DLNA-источников.
RAM idle — 30 МБ. На Raspberry Pi 3B+ работает без вопросов. Главный минус — нет веб-плеера. Если хочется плеер — Jellyfin.
5. ReadyMedia (MiniDLNA) — самый лёгкий
ReadyMedia — переименованный MiniDLNA. C, около 15 МБ RAM, конфиг в одном файле, никакой веб-морды. Идеален когда нужно просто отдать одну папку с фильмами одному телевизору и забыть.
sudo apt install minidlna
sudo nano /etc/minidlna.conf
Минимальный конфиг:
media_dir=V,/mnt/media/movies
media_dir=A,/mnt/media/music
media_dir=P,/mnt/media/photos
db_dir=/var/cache/minidlna
log_dir=/var/log
inotify=yes
friendly_name=HomeServer
sudo systemctl enable --now minidlna
sudo systemctl status minidlna
Всё. Телевизор увидит сервер. Метаданных не подтягивает, обложек нет, транскодинга нет, но если у тебя коллекция MP4/MKV которые телевизор и так понимает — этого достаточно. Проект не очень активный, но работает годами без проблем.
6. Rygel — DLNA для GNOME
Rygel — часть проекта GNOME, DLNA/UPnP сервер на основе GStreamer. Версия 0.42. Имеет смысл если у тебя GNOME-десктоп и ты хочешь расшарить локальные папки в один клик через файл-менеджер. Как «домашний центральный сервер» — не очень, но как инструмент desktop-юзера годится.
sudo apt install rygel
rygel
Конфигурация в ~/.config/rygel.conf. По умолчанию шарит Music, Videos, Pictures из домашней папки. Транскодинг идёт через GStreamer-плагины, поэтому установи дополнительные:
sudo apt install gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-libav
7. Navidrome — твой личный Spotify
Если у тебя есть нормальная коллекция музыки — бери Navidrome. Это лучший open source медиа сервер для музыки в 2026, без вариантов. Версия 0.61.2 от апреля 2026, активная разработка, плагины на WebAssembly с 0.60.
Что я люблю:
- 30 000 треков укладываются в 50 МБ RAM
- Subsonic API — десятки клиентов: Symfonium, play:Sub, DSub, Ultrasonic, Substreamer
- Smart playlists, scrobbling в Last.fm и ListenBrainz
- Поиск на SQLite FTS5 с BM25 — реально быстрый
- Multi-user, у каждого свои плейлисты, фавориты, история
- Транскодинг на лету — FLAC за городом превращается в Opus 96k
Запуск Navidrome
services:
navidrome:
image: deluan/navidrome:0.61.2
container_name: navidrome
user: 1000:1000
ports:
- "4533:4533"
environment:
ND_LOGLEVEL: info
ND_SCANSCHEDULE: "@every 24h"
ND_TRANSCODINGCACHESIZE: "1024MiB"
ND_SESSIONTIMEOUT: 24h
volumes:
- ./data:/data
- /mnt/music:/music:ro
restart: unless-stopped
Заходишь на http://ip:4533, создаёшь админа, ждёшь первичный скан (первые 100к треков — около 10 минут на NVMe). На телефон ставишь Symfonium (платный, $7) или DSub/Substreamer (бесплатный) — вводишь URL и пароль, всё работает.
Минус один: только музыка. Не хочет быть всем сразу, и это правильно.
8. Funkwhale — музыка с федерацией
Funkwhale — это Navidrome, скрещенный с Mastodon. Federated через ActivityPub — можешь подписаться на других пользователей и слышать их публичные плейлисты. Идея красивая, инсталляция тяжёлая.
Версия 1.4. Stack: Django + PostgreSQL + Redis + Celery + nginx. RAM idle — 600+ МБ. На Pi не запустишь, нужен нормальный сервер с 2-4 ГБ.
Имеет смысл если ты хочешь музыкальный fediverse — аналог Mastodon для меломанов. Если нужен только личный Spotify без публичной активности — Navidrome лучше во всём.
9. Lyrion Music Server (LMS) — hi-fi мульти-рум
Бывший Logitech Media Server. После того как Logitech закрыл железо Squeezebox, проект ушёл в community и переименовался в Lyrion. Версия 9.1.1.
LMS живёт в нише multi-room hi-fi. Если у тебя несколько Squeezebox-плееров (или их эмуляторов — Squeezelite, piCorePlayer на Raspberry Pi с DAC) — LMS их синхронно играет. Можешь иметь одну музыку в трёх комнатах в перфектном sync. Это не умеет ни Navidrome, ни Jellyfin.
Поддерживает FLAC до 24/192, DSD, gapless playback, мощные плагины (Spotify, Tidal, Qobuz, BBC iPlayer).
services:
lms:
image: lmscommunity/lyrionmusicserver:9.1.1
container_name: lyrion
hostname: lyrion
ports:
- "9000:9000/tcp"
- "9090:9090/tcp"
- "3483:3483/tcp"
- "3483:3483/udp"
volumes:
- ./config:/config
- /mnt/music:/music:ro
- /etc/localtime:/etc/localtime:ro
environment:
- PUID=1000
- PGID=1000
restart: unless-stopped
10. Audiobookshelf — аудиокниги и подкасты
Audiobookshelf — не для фильмов и не для музыки. Это самостоятельная категория — аудиокниги, подкасты и e-books. Своя нативная Android-app, iOS в TestFlight, sync прогресса между устройствами. Скрейпит метаданные с Audible, Google Books, Open Library.
Если ты тонешь в подписках на Audible и хочешь ужарить весь свой архив MP3-аудиокниг в одно место — это оно. Jellyfin технически тоже умеет аудиокниги, но криво. Audiobookshelf делает это правильно.
services:
audiobookshelf:
image: ghcr.io/advplyr/audiobookshelf:latest
container_name: audiobookshelf
ports:
- "13378:80"
volumes:
- ./config:/config
- ./metadata:/metadata
- /mnt/audiobooks:/audiobooks
- /mnt/podcasts:/podcasts
restart: unless-stopped
Рецепт: разворачиваем Jellyfin от нуля до рабочего сервера
Считаю что у тебя свежий Ubuntu Server 24.04 LTS на железе с Intel iGPU (любой Core 8-го поколения и новее). Если у тебя Synology или Unraid — принцип тот же, только GUI поверх Docker.
Подготовка системы
sudo apt update && sudo apt upgrade -y
sudo apt install -y curl ca-certificates intel-media-va-driver-non-free vainfo
Проверь что VAAPI поднялся:
vainfo
# должно показать VAEntrypointVLD для H264, HEVC, VP9, AV1 в зависимости от поколения
Если vainfo ругается на permissions — добавь юзера в группу render:
sudo usermod -aG render $USER
sudo usermod -aG video $USER
newgrp render
Установка Docker
curl -fsSL https://get.docker.com | sh
sudo usermod -aG docker $USER
newgrp docker
docker compose version
Структура папок
sudo mkdir -p /opt/jellyfin/{config,cache}
sudo chown -R 1000:1000 /opt/jellyfin
# структура медиа - важно
sudo mkdir -p /mnt/media/{movies,tv,music,books}
docker-compose.yml
services:
jellyfin:
image: jellyfin/jellyfin:10.11.8
container_name: jellyfin
user: 1000:1000
network_mode: host
volumes:
- /opt/jellyfin/config:/config
- /opt/jellyfin/cache:/cache
- /mnt/media:/media:ro
devices:
- /dev/dri:/dev/dri
group_add:
- "109"
- "44"
environment:
- JELLYFIN_PublishedServerUrl=http://192.168.1.10:8096
- TZ=Europe/Moscow
restart: unless-stopped
Поднимаем:
cd /opt/jellyfin
docker compose up -d
docker logs -f jellyfin
Логи должны пройти миграции базы и запуститься на порту 8096. Открывай http://твой-ip:8096.
Первый запуск — визард
- Язык — русский
- Админ-логин и пароль — не jellyfin/jellyfin, серьёзно
- Библиотеки — добавь как минимум Movies (
/media/movies), TV Shows (/media/tv), Music (/media/music)
- В настройках библиотеки выбери Real-time monitoring чтобы новые файлы появлялись сразу
- Metadata language — русский, country — Russia
- Auth via local network — да, доступ снаружи — нет (на этом этапе)
Включаем аппаратный транскодинг
Dashboard — Playback. Параметры:
- Hardware acceleration: Intel QuickSync (QSV)
- QSV Device:
/dev/dri/renderD128
- Enable hardware decoding: H.264, HEVC, VP9, AV1 (если CPU поддерживает — 11th gen+)
- Enable HEVC encoding: да
- Enable AV1 encoding: только если у тебя Intel Arc или 11th gen+
- Enable Tone mapping: да (для HDR)
- Tone mapping algorithm: bt2390
- Throttle transcodes: да
Проверка — всё работает?
Базовая sanity-проверка после установки:
# контейнер живёт
docker ps | grep jellyfin
# порт слушается
ss -tlnp | grep 8096
# свежие логи без ошибок
docker logs --tail 100 jellyfin 2>&1 | grep -iE "error|fatal"
# GPU видно из контейнера
docker exec jellyfin /usr/lib/jellyfin-ffmpeg/ffmpeg -hide_banner -hwaccels
Запусти видео в плеере, перемотай на середину файла. Открой Dashboard — Playback — в реальном времени должна появиться сессия. Если в строке Transcoding пусто — идёт Direct Play (хорошо). Если есть «Transcoding (qsv)» — аппаратный транскодинг работает (тоже хорошо). Если «Transcoding (CPU)» — HW не подцепился, перепроверь конфиг.
Параллельно на сервере:
# нагрузка GPU при транскодинге
sudo intel_gpu_top
# в строке Video должны быть ненулевые проценты
Осложнения — типовые грабли и как их обойти
Ошибка - Permission denied на /dev/dri/renderD128
Контейнер не может писать в render-устройство. Причина — GID группы render внутри контейнера не совпадает с GID на хосте.
# узнай GID render на хосте
getent group render | cut -d: -f3
# пропиши его в group_add контейнера, перезапусти
docker compose down && docker compose up -d
Ошибка - Smart TV не видит DLNA-сервер
SSDP/UPnP-broadcast не проходит между сетями. Если контейнер в bridge — DLNA не работает почти никогда. Нужен host network mode или macvlan.
# проверь broadcast
sudo tcpdump -i eth0 udp port 1900
# должны лететь M-SEARCH запросы от телевизора и NOTIFY от сервера
Решение — поставь network_mode: host в compose. Если хочешь bridge — используй macvlan-сеть и публикуй контейнер с собственным IP в локальной сети.
Ошибка - Jellyfin тормозит при сканировании библиотеки
На 10.11 и больших библиотеках (10к+) первичный скан и обновление метаданных могут идти дольше чем на 10.10 — известная регрессия после миграции на EF Core. Точечные релизы её фиксят.
# обнови до последней
docker pull jellyfin/jellyfin:10.11.8
docker compose up -d --force-recreate
Дополнительно отключи в настройках библиотеки лишнее — Real-time monitoring если папок много, Chapter image extraction для всей библиотеки сразу.
Ошибка - HDR-видео в SDR превращается в кашу
Tone mapping не включён или GPU не поддерживает 10-bit decode. Капля никотина убивает лошадь, одна неправильная настройка tone mapping — весь вечер кино.
Для Intel Quick Sync HDR tone mapping работает с 8-го поколения и новее. Для AMD VAAPI — с RDNA2 (RX 6000+). Для NVIDIA — с Pascal+. Включи в Dashboard — Playback — Tone mapping. Алгоритм — bt2390. Если картинка тёмная — убавь Tone mapping desaturation в 0.5.
Ошибка - DLNA сервер ломается на 4K HEVC
UMS, Gerbera, MiniDLNA по умолчанию отдают файл как есть. Старый телевизор давится. Решение — либо профиль транскодинга в UMS, либо пере-кодирование в более совместимый контейнер заранее.
# одноразовый перекод 4K HEVC в 1080p H.264 для совместимости
ffmpeg -i input.mkv -c:v libx264 -crf 20 -preset slow \
-c:a aac -b:a 192k -vf scale=1920:-2 output.mp4
Сравнение по сценариям — что брать в твоём случае
Универсальный сервер (видео+музыка+книги)
Jellyfin. Без вариантов. Альтернатива — Emby (но он уже не полностью FOSS) или Plex (но смотри начало статьи).
Только музыка
Navidrome для 99% случаев. LMS если у тебя hi-fi multi-room на Squeezebox/piCorePlayer. Funkwhale если хочешь федерацию.
Аудиокниги и подкасты
Audiobookshelf. У него своя ниша, своя app, и Jellyfin тут проигрывает.
Максимальная совместимость с Smart TV / приставками (DLNA)
Universal Media Server для агрессивного транскодинга на старых ТВ. Gerbera для современных ТВ, которые умеют HEVC и не нуждаются в перекодировке. MiniDLNA если железо слабое и нужен минимум.
Минимальное потребление ресурсов
MiniDLNA (~15 МБ RAM) и Gerbera (~30 МБ). Navidrome для музыки (~50 МБ). На Raspberry Pi Zero 2W будет жить любая из этих троек.
4K/HDR с аппаратным транскодингом
Jellyfin с Intel Quick Sync (11th gen+ для AV1), NVIDIA RTX 30+ или AMD RX 6000+. Из старых GPU нормально жмут только 8th-10th gen Intel iGPU.
HTPC прямо в телевизор
Kodi или LibreELEC на NVIDIA Shield, x86 mini-PC или Raspberry Pi 5.
Профилактика — не наступать на грабли
Бэкапы
Что бэкапить в Jellyfin:
/config — база, настройки, метаданные, плейлисты
/cache — не нужен, регенерируется
- Сами файлы медиа — на отдельном сторадже с собственной стратегией
В 10.11 встроены нативные бэкапы. Dashboard — Scheduled Tasks — Backup Database. Расписание — раз в неделю. Хранить 4 копии. Дополнительно я делаю rsync /config на NAS:
# /etc/cron.daily/jellyfin-backup
#!/bin/bash
DATE=$(date +%Y%m%d)
rsync -a --delete /opt/jellyfin/config/ /mnt/backup/jellyfin/$DATE/
find /mnt/backup/jellyfin/ -maxdepth 1 -mtime +14 -exec rm -rf {} \;
sudo chmod +x /etc/cron.daily/jellyfin-backup
Мониторинг
Минимум — HTTP-проверка. Если ты запустил Uptime Kuma — добавь http://localhost:8096/health в монитор, оно вернёт 200 OK когда сервер живой.
Для полноценного мониторинга — Prometheus + jellyfin-exporter. Снимает активные сессии, время транскодинга, статус GPU. Графана-дашборд готовый есть в коммьюнити.
Безопасность
Минимальный hardening если выставляешь Jellyfin в интернет:
- Никогда не публикуй порт 8096 наружу напрямую. Только через reverse proxy с TLS — Caddy или Traefik
- Включи HSTS, отключи слабые TLS-цифры
- fail2ban на /Users/AuthenticateByName endpoint — блокировка по 3 неудачным попыткам
- Лучше не публиковать в публичный интернет вообще, а ходить через Tailscale или WireGuard — mesh-VPN
- Cloudflare Tunnel вместо проброса порта — не открывает 443 на маршрутизаторе
- Отдельный пользователь с правами read-only на медиа-том
- UFW:
sudo ufw allow from 192.168.0.0/16 to any port 8096 и больше ничего
В 2025-м был кейс — LastPass поломали через outdated Plex-сервер у инженера. Урок: self-hosted — это не «поставил и забыл». Это «поставил, настроил автообновления, мониторишь CVE».
# простой watchtower для автообновления контейнеров
docker run -d --name watchtower \
-v /var/run/docker.sock:/var/run/docker.sock \
containrrr/watchtower \
--schedule "0 0 4 * * *" \
--cleanup \
jellyfin
Не ставь watchtower на критичные prod-сервисы без тестового окружения. Для домашнего сценария — норм.
Автозапуск
restart: unless-stopped в docker-compose — этого достаточно. После ребута сервера контейнеры поднимутся сами. Дополнительно проверь что docker.service в автозагрузке:
sudo systemctl enable docker
sudo systemctl is-enabled docker
Системные требования — что нужно физически
| Сценарий |
CPU |
RAM |
GPU |
Диск |
Сеть |
| Только музыка (Navidrome) |
Pi 4 / любой x86 |
1 ГБ |
не нужен |
SSD 32 ГБ под систему |
1 Gbps LAN |
| 1080p Direct Play |
Celeron J4125 / Pi 5 |
2 ГБ |
не нужен |
SSD 64 ГБ + HDD под медиа |
1 Gbps |
| 1080p Transcode 1-2 потока |
i3-8100+ / Ryzen 3 5300G |
4 ГБ |
iGPU UHD 630+ |
SSD 128 ГБ + HDD |
1 Gbps |
| 4K HEVC HDR transcode |
i5-11400+ / Ryzen 5 7600 |
8 ГБ |
iGPU UHD 730+ или RTX 3050+ |
NVMe + RAID HDD |
2.5 Gbps желательно |
| 4-6 одновременных 4K transcode |
i5-13500+ / Xeon E-2378G |
16 ГБ |
Intel Arc A380+ или RTX 4060 |
NVMe + RAID HDD 8TB+ |
2.5-10 Gbps |
На момент публикации актуальна версия Jellyfin 10.11.8, Navidrome 0.61.2, Gerbera 3.2.1, UMS 15.5.0, Kodi 21.3 Omega. Перед установкой проверь свежие релизы на GitHub проекта.
Таблица портов
| Сервис |
Порт |
Протокол |
Назначение |
Открывать наружу? |
| Jellyfin HTTP |
8096 |
TCP |
Web UI и API |
Только через reverse proxy |
| Jellyfin HTTPS |
8920 |
TCP |
HTTPS если без proxy |
Нет, лучше Caddy/Traefik |
| Jellyfin Discovery |
1900 |
UDP |
SSDP/DLNA broadcast |
Только LAN |
| Jellyfin Auto-discover |
7359 |
UDP |
Поиск сервера клиентами |
Только LAN |
| Navidrome |
4533 |
TCP |
Web UI и Subsonic API |
Только через reverse proxy |
| Gerbera |
49152 |
TCP |
UPnP web UI |
Нет |
| Lyrion (LMS) Web |
9000 |
TCP |
Web UI |
Только LAN |
| Lyrion Squeezebox |
3483 |
TCP+UDP |
Протокол плееров |
Только LAN |
| UMS |
9001 |
TCP |
Web admin/player |
Только LAN |
| Audiobookshelf |
13378 |
TCP |
Web UI и API |
Только через reverse proxy |
Альтернативы — что я в этой статье не разбирал
Список не полон, но эти проекты тоже встретишь:
- Emby — предок Jellyfin, частично проприетарный с 2018-го. Премиум-функции платные. Если не хочешь тратить — бери Jellyfin.
- Ampache — старая Subsonic-совместимая платформа. Жив, но Navidrome обогнал по UX.
- Gonic — Go-имплементация Subsonic API. Очень лёгкий, но Navidrome полнее по фичам.
- Airsonic-Advanced — форк форка Subsonic. Ещё работает, но активность ниже Navidrome.
- OwnTone (forked-daapd) — DAAP-сервер для AirPlay, лёгкий, нишевый.
- Roon — проприетарный hi-fi сервер. Платный, но не open source.
- Stash — тоже медиа-сервер, для специфичного контента, не разбираем тут.
- Komga / Kavita — для комиксов и манги. Если у тебя коллекция CBZ — смотри их, не Jellyfin.
FAQ — часто задаваемые вопросы
Чем Jellyfin отличается от Plex в 2026 году?
Jellyfin полностью бесплатный и open-source. Аппаратный транскодинг, удалённый доступ, мобильные клиенты, DVR — всё включено. Plex с 2025 года требует Plex Pass ($6.99/мес или $249.99 lifetime) для удалённого стриминга и часть фичей. Качество интерфейса у Plex чуть выше, экосистема клиентов шире, но overall за нулевую цену Jellyfin закрывает 90% сценариев.
Почему DLNA-сервер не виден на телевизоре после настройки?
Чаще всего проблема в Docker bridge network — SSDP-broadcast по UDP 1900 не проходит между сетями. Перезапусти контейнер с network_mode: host. Если хост-режим не подходит — используй macvlan-сеть или поставь сервер прямо на хост, не в контейнер. Проверь UFW/iptables: sudo ufw allow from 192.168.0.0/16.
Какой open source медиа сервер лучше для NAS?
Зависит от железа NAS. Synology Plus и Unraid с x86 Intel — бери Jellyfin с Quick Sync. Synology Value/J без iGPU — Navidrome для музыки и Gerbera для DLNA, Jellyfin потянет только Direct Play без транскодинга. TrueNAS Scale — Jellyfin через App Catalog или вручную через Docker.
Как проверить что аппаратный транскодинг работает в Jellyfin?
Запусти видео которое требует перекодировки (например 4K в 1080p) и зайди в Dashboard — Playback. В строке активной сессии будет «Transcoding (qsv)» или «Transcoding (nvenc)» — это HW. Если «Transcoding (CPU)» — используется только процессор. На сервере параллельно запусти intel_gpu_top или nvidia-smi — увидишь нагрузку на GPU.
Можно ли запустить Jellyfin на Raspberry Pi?
Можно, но с оговорками. Pi 4 и Pi 5 запускают Jellyfin, но аппаратное декодирование на них ограничено — V4L2 поддерживает H.264 и частично HEVC, AV1 — нет. Direct Play 1080p MP4 работает идеально. Транскодинг 4K на Pi 5 — не вытягивает. Если коллекция в основном 1080p H.264 — Pi подходит.
Что делать если Jellyfin тормозит при сканировании библиотеки?
В версии 10.11 после миграции на EF Core есть регрессии на больших библиотеках. Обнови до последнего минора (10.11.8 закрывает много бажков). Отключи Real-time monitoring в настройках библиотеки если папок очень много, выключи Chapter image extraction для всей библиотеки. Если совсем плохо — откатись на 10.10.x как временная мера, но без ключевых обновлений безопасности.
Чем Navidrome отличается от Funkwhale?
Navidrome — чистый локальный музыкальный сервер. Лёгкий, простой, Subsonic API, отличные мобильные клиенты. Funkwhale — федеративная платформа с ActivityPub: можешь подписываться на других пользователей и их публичные плейлисты как в Mastodon. Funkwhale тяжелее (Django+PostgreSQL+Redis+Celery, 600 МБ RAM против 50 у Navidrome). Если нужен личный Spotify — Navidrome. Если хочешь fediverse для меломанов — Funkwhale.
Безопасно ли выставлять Jellyfin в интернет?
Прямой проброс порта — небезопасно: были CVE в Jellyfin (последние закрыты в 10.11.7), отдельные конфигурации могут быть уязвимы. Безопасный путь: reverse proxy с TLS (Caddy, Traefik), fail2ban на endpoint логина, регулярные обновления. Лучше — mesh-VPN типа Tailscale: видны только устройствам в твоей сети, никаких открытых портов на роутере. Cloudflare Tunnel — тоже годится.
Прогноз — что мы получили
Поставили Jellyfin 10.11.8 на Linux в Docker, прокинули Intel iGPU для аппаратного транскодинга, настроили библиотеки видео, музыки и книг, разобрались с DLNA для старых телевизоров через Gerbera или UMS, добавили Navidrome если хочется отдельный музыкальный сервер с лёгкими мобильными клиентами. Сделали бэкапы, накрыли reverse proxy, не выставили ничего наружу без VPN.
Теперь у тебя есть полный self-hosted media stack 2026 года, без подписок, без телеметрии, без сюрпризов от вендора. Plex может закручивать гайки сколько угодно — тебя это уже не касается. Если конкретный шаг не зашёл или валится с ошибкой которую я не описал — пиши в комментарии, разберёмся.
Финальный совет
Не пытайся развернуть все десять серверов сразу. Поставь Jellyfin, попользуйся неделю-две, добавь Navidrome для музыки если её много, добавь Audiobookshelf если слушаешь подкасты. Остальное — по реальной потребности, а не на всякий случай. Минималистичный конфиг который делает ровно то что написано — всегда побеждает зоопарк сервисов которые «вдруг пригодятся».