Автоматизируем домашний медиацентр на Synolgy NAS

9c32d542265c7a87942378c65006cba9.png

Приветствую читатели, в этой статье я бы хотел поделиться своим опытом организации домашнего медиацентра на Synology: Sonarr + Radarr + Jackett + qBittorrent

Долгое время мой путь к просмотру фильмов/сериалов выглядел следующим образом:

  1. Отслеживаем наличие контента

  2. Скачиваем на ПК

  3. Копируем на внешний hdd

  4. Подключаем внешний hdd к телевизору

  5. Смотрим

Процесс довольно утомительный, хотелось его упростить и автоматизировать.

С появлением дома Synology DS220+ пришло время таки закрыть этот гештальт.

59ea2d88ebb4e756f164f652bde37919.png

После изучения информации в сети, как люди решают подобные проблемы, стал вырисовываться следующий стек:

  • Plex — клиент-серверный медиаплеер

  • Sonarr — сервис для автоматической загрузки сериалов

  • Radarr — сервис для автоматической загрузки фильмов

  • Jackett — индексер/интегратор торрентов для Sonarr и Radarr

  • qBittorrent — торрент клиент

Благо Synology NAS поддерживает docker и все это добро разворачивается с пол-пинка.
К слову, некоторые сервисы в Synology можно поднять через ui docker приложения, но в моем случае такого функционала будет недостаточно, поэтому будем подключаться по ssh и использовать docker-compose.

Настройка медиацентра

Переходим в Package Center и устанавливаем docker.

Создаем папку docker, внутри которой будем хранить конфигурацию, данные контейнеров, а также папку torMedia, в которую будут скачиваться все медиа файлы.

docker
|__media-center //папка для конфигов
|__containers
  |__sonarr
  |__radarr
  |__jackett
  |__qbittorrent
  |__openvpn
torMedia

В панели управления Synology создаем пользователя mediaUser и присваиваем права на чтение+запись директориям sonarr, radarr, jackett, qbittorrent, openvpn и torMedia.

Конфигурируем Docker Compose

В папке docker/media-center создаем файл docker-compose.yml, как основу можно взять мой конфиг. Содержимое нужно будет подправить в соответствии с вашим окружением.

В сервисе qBittorrent задайте mem_limit по вашему усмотрению.
У меня расширена память на ds220+ до 18gb, в сети есть список плашек оперативной памяти, которые беспроблемно встают.

Настройка пользователя

Подключаемся к Synology по ssh и командой id mediaUser узнаем uid, gid пользователя, заменяем в файле docker-compose.yml значения переменных PUID и PGID на полученные значения.

VPN

Для нормального функционирования сервисов требуется доступ к трекерам, но весь трафик NAS`а не хотелось загонять под VPN.
Поэтому нужно было настроить сеть так, чтобы только определенные контейнеры использовали VPN. Для решения данной задачи у необходимых контейнеров указано network_mode: "service:openvpn", что позволяет использовать сеть контейнера openvpn для доступа к сети интернет.

Так как контейнеры используют сеть openvpn, проброс портов осуществляется в настройке сервиса openvpn.

6002:9117 - Jackett
6003:7878 - Radarr
6004:6004 - qBittorrent web ui
6005:8989 - Sonarr
6882 - qBittorrent torrent port

В папку docker/containers/openvpn нужно подложить файлы конфигурации подключения к openvpn.

Запуск контейнеров

Теперь мы можем запустить все контейнеры командой docker-compose up -d
Стартуем сервисы и убеждаемся, что они запустились без ошибок.

Для просмотра логов контейнеров можно использовать docker-compose logs -f

Настройка Sonnar, Radarr, Jackett, qBittorrent

Доступ к приложениям

Здесь вам решать, как вы будете использовать сервисы, нужен ли внешний доступ или будете обращаться к ним только из локальной сети.

Synology NAS в control panel позволяет организовать внешний доступ через web station или reverse proxy. Можно привязать свой домен и автоматически обновлять сертификаты через letsencrypt.

Главное, не забудьте в настройках сервисов включить аутентификацию.

qBittorrent

Tools -> Options -> Connections
Выставляем Port used for incoming connections — 6882 и открываем его для возможности скачивания / раздачи.

Tools -> Options -> Downloads -> Saving Management и указываем:
Default save path — /media/downloads/loaded

По желанию можно указать:
Keep incomplete torrents in — /media/downloads/incomplete
Copy .torrent files to — /media/torrents
Copy .torrent files for finished downloads to — /media/torrent_finish

e23e58aa5b36ed568f5ff02e1907dc21.png

Jackett

Добавляем нужные торрент трекеры в индексеры, при этом для нормального поиска контента на русских трекерах необходимо проставить галочку Strip Russian Letters.

Здесь же можно проверить правильность подключение к трекерам через Test.

de0c12d5e0c244ae7bfb8b7dfe979de8.png

Radar и Sonarr

По настройке они очень схожи, поэтому рассмотрим их вместе.

Указываем root folder (Settings -> Media Management -> Root Folder), это папка куда будут сохраняться скаченные файлы.

Далее нужно настроить профили качества / языка. При добавлении фильмов можно будет выбрать желаемый профиль.
Переходим в Settings -> Profiles и настраиваем на свой вкус.

d0e842a0db5b6be95594734bc3cfc5f3.png

Для добавления индексеров в Sonarr и Radarr переходим в Settings -> Indexers -> Add Indexer -> Torznab и указываем:

  • Name — название конкретного трекера

  • URL — копируем из Jackett «Copy Torznad Feed»

  • API Key — копируем из Jackett Api Key

Sonnar и Radarr необходимо связать с торрент качалкой, для этого переходим Settings -> Download Client -> Add Download Client -> qBittorrent и указываем локальный адрес и порт qBittorrent

Host: localhost
Port: 6004

Заполняем имя пользователя, пароль от qBittorrent, и указываем разные Category для Sonarr и Radarr, чтобы не смешивать контент.

942cbf94e27ed3b717c66bc475280b97.png

Дополнительные интеграции

Settings -> Connect

В этом разделе можно подключить интеграцию с другими сервисами. У меня подключен telegram bot, который уведомляет о различных событиях — появление нового фильма, статус скачивания и т. д.

Если вы используете Plex, то можно настроить автоматическое обновление библиотеки при добавлении нового контента.

Обновление версий сервисов

Для обновления сервисов останавливаем контейнеры командой docker-compose stop, затем обновляем версии в docker-compose.yml и запускаем командой docker-compose up -d

Резюме

енот счастливенот счастлив

В итоге получилось достаточно удобное решение для просмотра контента. Управлять всем этим добром можно через веб-интерфейс или приложение для смартфона — nzb360.

Отпадает необходимость в ручном скачивании и мониторинге, теперь всего лишь нужно добавить фильм или сериал в список желаемого, и при доступности он скачается, добавится в библиотеку Plex, а вам придет уведомление в telegram.

Для связки так же рекомендую Plex + Nvidia Shield TV.

Все ли так гладко?

Есть небольшие нюансы, которые пока не удалось решить:

  1. Sonarr не умеет докачивать новые эпизоды сериалов, если они добавляются в существующий торрент. На наших трекерах так принято оформлять раздачи, а вот Sonarr ожидает, что под каждую новую серию торрент будет отдельным.

  2. Иногда автоматический поиск не находит нужный контент, хотя он есть на трекере. Не все раздачи могут быть правильно оформлены и соответствовать критериям поиска. В таких случаях приходится искать вручную, но на самом деле такое попадается не часто.

Спасибо всем, кто дочитал, надеюсь мой опыт будет кому-то полезен.

© Habrahabr.ru