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 подписчиков

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

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