310

Как настроить домашний медиасервер

Хочу сделать оговорку: я не считаю это единственно верным способом сделать домашний медиасервер. Наверное похожее сделать проще через DLNA (но я не разбирался как это сделать), можно поставить Kodi и пользоваться своей медиатекой без танцев с бубном. Я попробую рассказать как я делаю личный медиасервер у себя.

Это не гайд, это рисунок ключа скорее краткое описание функционала. Гайдов на Youtube полно, хотя на русском языке по этой теме контента кратно меньше чем на английском. Тех кому захочется поднять у себя что-то аналогичное, английский язык не должен остановить :)

Какие сервисы используются и их назначение:

  • OS любая, я отдаю предпочтение Debian. Без GUI, только консоль и SSH. Сделайте IP-адрес статическим (либо в процессе установки, либо после в файле /etc/network/interfaces, либо на своём роутере). После установки из-под root добавляем утилиты sudo, curl, cifs-utils (если файловое хранилище у вас на SMB), остальное по потребностям. Добавляем созданного при установке пользователя в группу sudo (а после установки докера и в группу docker): "usermod -aG sudo username", после чего рекомендую работать из-под этого пользователя.

  • Docker. Можно ставить руками: "sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin", а можно скриптом: https://docs.docker.com/engine/install/debian/#install-using....

  • Portainer. Удобный веб-интерфейс для управления контейнерами и compose-конфигами. Совершенно необязательная, но удобная вещь. Простая инструкция по установке: https://docs.portainer.io/start/install-ce/server/docker/lin...

Теперь важная ремарка: в текущих условиях, когда РКН блокирует одни ресурсы с одной стороны, а западные санкции и разработчики блокируют ресурсы с другой стороны -- практически никакой из нижеперечисленных сервисов не будет работать "из коробки", либо будет но криво-косо. Поэтому важной и необходимой частью системы будет VPN. Реализовывать маршрут нужных сервисов через VPN можно разными способами, я выбрал через клиента в контейнере.

  • Gluetun. https://github.com/qdm12/gluetun Умеет работать со многими провайдерами VPN, умеет работать с разными протоколами VPN и пр. Всё что требуется - прописать в конфигурации клиентские данные с вашего VPN-сервера, а затем пустить сетевой трафик другого контейнера через контейнер с gluetun. Делается это с помощью параметра network_mode: "service:gluetun". Обратите внимание, что проброс портов в контейнеры использующих этот режим, прописывается в разделе сервиса gluetun. А для внутренних коммуникаций между этими сервисами адрес указывайте как localhost (или 127.0.0.1, как удобнее).

Пример моего конфига: https://hastebin.com/share/cidejifuta.yaml

Важно: не пускайте трафик вашего торрент-клиента через VPN (см. мой предыдущий пост: Домашний сервер и неожиданная проблема) :)

Самое интересное:

  • Radarr. "Сердце" системы :) Это приложение, получая запросы пользователя на новый фильм, обращается к индексатору трекеров (Prowlarr или Jackett), откуда получает список раздач данного фильма по заданным вами критериям: качество и разрешение, минимальный-средний-максимальный размер файла, минимальное количество сидеров на раздаче и пр. Может автоматически отдать ссылку на .torrent-файл вашему торрент-клиенту, может ожидать вашего решения по самостоятельному ручному выбору раздачи из списка. Мониторит запрошенные скачивания в торрент-клиенте и увидев завершённую скачку, копирует этот файл к себе в организованную библиотеку, создавая папки и переименовывая по вашему шаблону.

  • Sonarr. Практически то же самое, но для сериалов. Да, для фильмов и сериалов два отдельных приложения :)

  • Prowlarr. Индексатор торрент-трекеров, обширный список известных и популярных. Получая с Radarr'a поисковый запрос с названием фильма, обращается к выбранным вами трекерам и возвращает список доступных раздач с описанием имени раздачи, количеством сидеров, размером файла и качеством раздаваемого фильма.

  • qBittorrent/Deluge. Торрент-клиент. После автоматического или ручного выбора требуемой раздачи, сюда прилетает .torrent-файл и клиент начинает скачивать требуемое.

  • Jellyfin. Медиасервер, которому мы скармливаем библиотеки фильмов и сериалов и который воспроизводит этот контент на любом устройстве. Есть клиенты подо все распространённые платформы, умеет транслировать видео в веб-браузер, т.е. можно обойтись без клиентского ПО. Может аппаратно, на лету, перекодировать фильм в требуемом клиенту разрешении. Кому-то эта функция может показаться сомнительной, но мне было удобно, уехав от дома за 200км на дачу к родственникам (где нет оптики и 20-30Мбит скорость это ещё шикарно), запустить 2к фильм запросив его пережать в 720р. Альтернатива - Plex, но он вроде бы платный.

  • Jellyseerr. Опционально. Мне не очень понравился. Задуман как простой сервис запросов пользователей на фильмы. Выбираешь кино из списка в тренде, либо через поиск, либо рекомендованным (предварительно скормив в настройках библиотеку своего Radarr) и выбранный фильм улетает запросом в Radarr и дальше по цепочке.

Как в итоге это всё работает? Я с любого места и с любого устройства (способного хотя бы 360р воспроизвести) могу подключиться и посмотреть любимый фильм/сериал без рекламы и тормозов. Если фильма нет в библиотеке, так же захожу на Radarr/Jellyseer, нахожу нужное кино и велю скачать его. Можно поставить галку и тогда закачка начнётся автоматически, по окончанию закачки мне в телеграм прилетит уведомление об этом.

Лига Сисадминов

2.3K постов18.8K подписчиков

Правила сообщества

Мы здесь рады любым постам связанным с рабочими буднями специалистов нашей сферы деятельности.

4
Автор поста оценил этот комментарий

Не проще купить готовое решение? Любое современное сетевое хранилище, даже самое бюджетное все это умеет, и еще сверх этого много чего.

раскрыть ветку (1)
1
Автор поста оценил этот комментарий

Конечно проще. Имея деньги, а лучше - большие деньги, а еще лучше - неограниченные деньги, всё вокруг становится проще :)

показать ответы
0
Автор поста оценил этот комментарий

Пример моего конфига: https://hastebin.com/share/cidejifuta.yaml

файл удален. ???

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Оказалось что хастбин хранит только 30 дней. Новая ссылка:
https://controlc.com/e86b560f

показать ответы
0
Автор поста оценил этот комментарий

@EnumaElis,  спасибо.

Смена звуковой дорожки и включение /выключение субтитров (в том числе внешне подгружаемых файликом) возможна на всем этом?(в части просмотра разумеется)

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Внешние сабы и аудиодорожки не тестировал. Встроенные и сабы и аудио отлично видит.

показать ответы
0
Автор поста оценил этот комментарий
А по энергопотреблению как?
раскрыть ветку (1)
Автор поста оценил этот комментарий

Замерил :)
Среднее - 80W, в пике максимум было 135W.

За трое суток накапало 5.1KWh

Где-то 250 рублей за месяц 24/7 работы сервера.

показать ответы
0
Автор поста оценил этот комментарий

"Наверное похожее сделать проще через DLNA (но я не разбирался как это сделать)". После этих слов нет смысла читать пост, а что ещё вернее - не писать его вообще.

раскрыть ветку (1)
Автор поста оценил этот комментарий

"Не разобрался". "Не разбирался".
Наверное есть смысловая разница в этих словах, но она неуловимая, да? :)

0
Автор поста оценил этот комментарий
Я сначала на дебиан проксмокс поставил, и там уже куча виртуалок наставил. И медиа сервер получился и тестовая площадка всего чего хочешь
раскрыть ветку (1)
Автор поста оценил этот комментарий

Прокс и стоит. В контексте статьи не видел смысла упоминать об этом )

Иллюстрация к комментарию
показать ответы
1
DELETED
Автор поста оценил этот комментарий

Зашёл почитать коменты😂


ТС, обзор хабра здесь давно не работает)) Не трать время на говноресурс

Иллюстрация к комментарию
раскрыть ветку (1)
Автор поста оценил этот комментарий

Сам в шоке =)

0
Автор поста оценил этот комментарий

Сколько трафика сожрёт перекодированный из 4K/bluray кинчик?

раскрыть ветку (1)
Автор поста оценил этот комментарий

Сами считайте. Исходник 3840х2160, медиаданные его внизу скриншота

Иллюстрация к комментарию
показать ответы
5
Автор поста оценил этот комментарий

NUM+torserve на смарт и хоть усмотрись что хочешь. Трафик в любом случае сжирается,ттолько есть выбор качества.

Смысл поднятия сервака на файлопомойке есть только в одном случае - посмотреть фотки с шашлындосов двадцатилетней давности и как твой масик в садик пошёл. ВСЁ.

Всё остальное есть в сети и не блочится.

UPD. Да, нет никакого смысла смотреть 4к кинцо на телефоне. Даже на планшете нет никакой разницы между качеством чуть выше экранки и 4к. Только если звук получше и то не сильно.

раскрыть ветку (1)
Автор поста оценил этот комментарий

Разумеется нет смысла, поэтому искал медиасервер с транскодированием. Дома не телевизор или в комп в 2к идёт, на планшет или телефон можно попроще поток послать, на устройство в ебенях (дача, командировка и пр.) можно еще поужать.

На этой файлопомойке не только медиасервер работает, это не основная его задача.

показать ответы
0
Автор поста оценил этот комментарий

Собрал похожий ассортимент на Orange Pi Zero 3. Транскодинг мне не нужен т.к. смотрю дома с fire stickов или телефонов.


Но тем не менее вопрос именно про просмотр извне. У вас "белый"/внешний IP дома? Или в тот-же jellyfin входите со стороны VPN?


Может кто подскажет изящные решения как достучаться до дома извне без "белого" IP. Я когда-то начал ковырятсья с tailscale и ещё фигнёй какой-то от cloudflare, но так до конца и не довёл.

раскрыть ветку (1)
Автор поста оценил этот комментарий

Да, белый IP у меня. Пробовал танцевать с tailscale и zerotier, не срослось что-то у меня.

1
Автор поста оценил этот комментарий
Ситуативно. Мне лично стало не хватать по той причине, что dlna начал уверенно тупить) с чем это было связано - хз. В итоге бахнул сервак и могу смотреть кино и сериальчики где угодно )
Если интересно, то могу расписать, ибо мой колхоз городиться гораздо проще, чем у ТСа)
раскрыть ветку (1)
Автор поста оценил этот комментарий

И мне не хватало. Поэтому заглянул в будущее и перекрыл таким вариантом все свои будущие потребности :)

Этот медиасервер - часть домашнего сервера на проксмокс, там пяток виртуалок и 20+ контейнеров.

показать ответы