С любовью, Данияр
Как организовать медиасервер дома
С Международным женским днём!
Книги 2025
Фильмы и сериалы 2025
Приложение Verdict
In the Mood for Love
Never miss a tuesday dinner
Как корпоративный язык убивает связь с людьми
Мы покупаем не товары, а мечты о лучшей версии себя
Делать то, что хочется, а не то, что нужно
Бунт. Как разрешить себе быть плохим: Про достигаторство
8 Rules of Love: Правило 1
8 Rules of love: 4 ашрама
Как добиться долгосрочных перемен. Ранган Чаттерджи × Рич Ролл
Готовность > планирование
Что нельзя купить за деньги (и что можно)
Больше, чем «плохо-хорошо»
Копинг-механизмы
Многослойность развлечений
Пять языков любви
Esther Perel × Matthew Hussey: Любовь как путешествие
James Corden × Jay Shetty: Важность любви и баланса в жизни
Atomic Habits: Как привычки формируют нашу личность
Прежде чем мы привяжемся: Избегающий тип привязанности
Прежде чем мы привяжемся: Тревожный тип привязанности
Успех
Inside Out 2
Низкоинформационная диета
Абсолютный и относительный доход
Perfect Days
The Boy and the Heron
Счастье и смысл жизни
Love Life: Достаточное счастье
Я просто начну и что-то будет получаться
Trevor Noah × Jay Shetty
Love Life: Как уйти, если не можешь
Matthew Hussey × Lewis Howes
Matthew Hussey × Rich Roll
Love Life: Холодно-горячо
Love Life: Внимание ≠ намерение
Love Life: Трудные разговоры
Love Life: Почему люди отдаляются?
Love Life: 4 уровня важности
Love Life
Iceman
Finding Ultra
Доктор Габор Матэ о том, как травма подпитывает болезни
The Boy, the Mole, the Fox and the Horse
One Day (2024)
Птушкин | вДудь
Think Again — Adam Grant
Lord Huron — The Night We Met
Свободного времени не будет
«Катюша» и дофамин. Как музыка делает нас людьми
Jay Shetty. How to Find, Cultivate and Keep Real Love
Появление микротекстов
Яндекс. Нормально — не знать
Осознание себя
Выбор каждый день
Костя Горский: Как руководить дизайнерами
Rework: Бизнес без предрассудков
Сюхари
Зачем идти в Школу редакторов
Икигай: Техники вхождения в поток

Как организовать медиасервер дома

Несколько лет назад я купил себе сетевое хранилище Synology чтобы не скачивать фильмы и сериалы на компьютер, а чтобы было устройство, которое работает круглосуточно и всё скачивает в фоне. Стало очень удобно.

Но процесс все равно был ручной: я искал торрент на разных сайтах, скачивал через Download Station на Synology NAS, потом открывал Infuse на Apple TV и смотрел. Работало, но каждый раз нужно было лезть на трекеры, разбираться с качеством релизов, ждать пока скачается, переименовывать файлы.

В какой-то момент увидел пост человека, который настроил себе полную автоматизацию: заходишь в приложение, ищешь фильм, жмёшь одну кнопку — и через несколько минут смотришь. Захотел так же.

Расскажу как это работает и как повторить у себя.

Что понадобится

Можно собрать это и на компьютере, но мне удобнее с NAS.

  • Synology DS224+, докупил модуль памяти на 4ГБ.
  • Apple TV 4K
  • Приложение Infuse на Apple TV (на Windows можно использовать Plex или Jellyfin)
  • Подписка Real-Debrid — 16 евро каждые полгода
  • Комплект сервисов, которые надо поднимать через Docker

Архитектура решения

Вот как это всё работает вместе:

Jellyseerr — интерфейс для поиска фильмов и сериалов, похож на экран Netflix.

Radarr — менеджер фильмов. Получает запрос из Jellyseerr, находит релиз, отправляет на скачивание, переименовывает файл, кладёт куда нужно.

Sonarr — то же самое, но для сериалов. Дополнительно следит за выходом новых серий.

Prowlarr — централизованный каталог индексаторов (источников откуда брать торренты). Настраивается один раз, он пробрасывает настройки в Radarr и Sonarr.

RDT-Client — мост между *arr-сервисами и Real-Debrid. Прикидывается обычным торрент-клиентом qBittorrent для Radarr/Sonarr, но на самом деле отдаёт задания в Real-Debrid.

Real-Debrid — сервис, которые кэширует торренты и отдаёт их по прямым HTTPS-ссылкам. С ним загрузка идёт быстрее, торренты качаются не с пиров, а с серверов RD.

Infuse на Apple TV — собственно плеер. Сканирует папки на Synology по SMB, показывает красивую библиотеку, воспроизводит с нативным качеством и HDR.

Подготовка Synology

Структура папок

Всё хранится на одном из томов сетевого хранилища. Через File Station создал структуру:

/volume2/6TB/media/
├── movies/       # сюда будут попадать фильмы
├── tv/           # сериалы
├── downloads/    # транзитная зона для скачивания
└── docker/       # конфиги всех сервисов

Важно: все эти папки должны быть на одном томе — иначе не будут работать hardlink'и, и файлы будут копироваться вместо мгновенного переноса.

Container Manager

В Package Center установил Container Manager — это официальная оболочка Synology для Docker. Через неё и будем поднимать все сервисы.

Infuse

В Infuse на Apple TV добавил два источника по SMB, указав на папки movies и tv. Infuse сразу начал их сканировать.

Поднимаем стек через docker-compose

Подключился к Synology по SSH и в папке /volume2/6TB/media/docker создал файл docker-compose.yml:

version: "3.8"

services:
  prowlarr:
    image: lscr.io/linuxserver/prowlarr:latest
    container_name: prowlarr
    environment:
      - PUID=1026      # узнать свои можно командой `id`
      - PGID=100
      - TZ=Asia/Almaty
    volumes:
      - /volume2/6TB/media/docker/prowlarr:/config
    ports:
      - 9696:9696
    restart: unless-stopped

  radarr:
    image: lscr.io/linuxserver/radarr:latest
    container_name: radarr
    environment:
      - PUID=1026
      - PGID=100
      - TZ=Asia/Almaty
    volumes:
      - /volume2/6TB/media/docker/radarr:/config
      - /volume2/6TB/media/movies:/movies
      - /volume2/6TB/media/downloads:/downloads
    ports:
      - 7878:7878
    restart: unless-stopped

  sonarr:
    image: lscr.io/linuxserver/sonarr:latest
    container_name: sonarr
    environment:
      - PUID=1026
      - PGID=100
      - TZ=Asia/Almaty
    volumes:
      - /volume2/6TB/media/docker/sonarr:/config
      - /volume2/6TB/media/tv:/tv
      - /volume2/6TB/media/downloads:/downloads
    ports:
      - 8989:8989
    restart: unless-stopped

  bazarr:
    image: lscr.io/linuxserver/bazarr:latest
    container_name: bazarr
    environment:
      - PUID=1026
      - PGID=100
      - TZ=Asia/Almaty
    volumes:
      - /volume2/6TB/media/docker/bazarr:/config
      - /volume2/6TB/media/movies:/movies
      - /volume2/6TB/media/tv:/tv
    ports:
      - 6767:6767
    restart: unless-stopped

  rdtclient:
    image: rogerfar/rdtclient:latest
    container_name: rdtclient
    environment:
      - PUID=1026
      - PGID=100
      - TZ=Asia/Almaty
    volumes:
      - /volume2/6TB/media/docker/rdtclient:/data/db
      - /volume2/6TB/media/downloads:/data/downloads
    ports:
      - 6500:6500
    restart: unless-stopped

  jellyseerr:
    image: fallenbagel/jellyseerr:latest
    container_name: jellyseerr
    environment:
      - LOG_LEVEL=info
      - TZ=Asia/Almaty
    volumes:
      - /volume2/6TB/media/docker/jellyseerr:/app/config
    ports:
      - 5055:5055
    restart: unless-stopped

PUID и PGID — это id твоего пользователя на Synology. Узнать можно командой id в SSH. У меня было 1026 и 100.

Поставил правильные права на папки:

sudo chown -R 1026:100 /volume2/6TB/media

И запустил всё одной командой:

sudo docker compose up -d

Docker скачал все образы (минут 10 на хорошем интернете) и запустил контейнеры. Проверил что всё живое:

sudo docker ps

Шесть контейнеров со статусом Up. Двигаемся дальше.

Настройка по порядку

Порядок важен, потому что сервисы зависят друг от друга. Начинаем от фундамента и идём наверх.

RDT-Client (мост к Real-Debrid)

Открыл http://192.168.31.123:6500 (мой IP Synology).

Придумал логин/пароль для RDT-Client при первом входе. Потом в Settings:

  • Provider: RealDebrid, вставил API-токен (взял на https://real-debrid.com/apitoken)
  • Download Client: Bezzad Downloader (это встроенный загрузчик, самый простой)
  • Download path: /data/downloads
  • Mapped path: /downloads (это важно — именно этот путь увидит Radarr)

Проверил работу: добавил тестовый магнет-линк → через минуту файл появился в /volume2/6TB/media/downloads/complete/. Значит связка Synology → RD работает.

Prowlarr (индексаторы)

Открыл http://192.168.31.123:9696.

Настроил аутентификацию (Forms, придумал логин/пароль).

Важно: Torrentio и другие RD-совместимые индексаторы не встроены в Prowlarr — их нужно добавить как кастомные определения. Через SSH скачал YAML-файлы:

cd /volume2/6TB/media/docker/prowlarr
sudo mkdir -p Definitions/Custom
cd Definitions/Custom
sudo wget https://raw.githubusercontent.com/dreulavelle/Prowlarr-Indexers/main/Custom/torrentio.yml
sudo chown 1026:100 torrentio.yml
sudo docker restart prowlarr

После перезапуска в Prowlarr → Indexers → Add Indexer появился Torrentio. Добавил его:

  • Base URL: https://torrentio.strem.fun/
  • Debrid provider: Real-Debrid
  • Debrid provider API Key: тот же токен RD
  • Test → Save

Потом скопировал API-ключ Prowlarr (Settings → General → Security → API Key) — он понадобится дальше.

Radarr (фильмы)

http://192.168.31.123:7878

Настроил аутентификацию.

Подключил RDT-Client (Settings → Download Clients → Add → qBittorrent):

  • Host: rdtclient
  • Port: 6500
  • Username/Password: от RDT-Client
  • Category: radarr

Настроил медиа-папку (Settings → Media Management):

  • Root Folder: /movies
  • Use Hardlinks instead of Copy: включил
  • Rename Movies: включил

Создал профиль качества (Settings → Profiles → Add) под именем 1080p + 4K:

Отметил: WEB 1080p, Bluray-1080p, Remux-1080p, WEB 2160p, Bluray-2160p, Remux-2160p.

Важный нюанс: в Radarr чем выше качество в списке, тем оно приоритетнее. Перетащил 2160p наверх, 1080p вниз — теперь 4K предпочитается всегда если доступен.

Upgrade Until поставил на Remux-2160p — максимум.

Скопировал API-ключ Radarr.

Связал с Prowlarr: вернулся в Prowlarr → Settings → Apps → Add → Radarr:

  • Server: http://radarr:7878
  • API Key: Radarr API Key

Test → Save. Prowlarr автоматически пробросил индексаторы в Radarr.

Sonarr (сериалы)

http://192.168.31.123:8989

Настроил всё один в один как в Radarr:

  • Download Client: RDT-Client, категория sonarr
  • Root Folder: /tv
  • Профиль качества с тем же приоритетом 4K над 1080p
  • Связал с Prowlarr

Дополнительно включил (Settings → Media Management):

  • Unmonitor Deleted Episodes — если я удалю серию, Sonarr не будет пытаться её перекачать

Jellyseerr (интерфейс запросов)

http://192.168.31.123:5055

Тут есть нюанс: Jellyseerr в новых версиях требует подключения к медиасерверу (Jellyfin или Plex) для первоначальной настройки. У меня ни того, ни другого нет — я использую Infuse.

Поэтому временно поднял Jellyfin отдельной командой, прошёл мастер настройки, создал локальный аккаунт в Jellyseerr, потом Jellyfin удалил.

# Временный Jellyfin
sudo docker run -d --name jellyfin -p 8096:8096 lscr.io/linuxserver/jellyfin:latest

# ...проходишь мастер Jellyseerr, подключая локальный Jellyfin (admin/admin123)...

# Удаляешь Jellyfin когда закончил
sudo docker stop jellyfin && sudo docker rm jellyfin

В самом Jellyseerr:

  • Подключил Radarr (hostname radarr, port 7878, API Key)
  • Подключил Sonarr (hostname sonarr, port 8989, API Key)
  • Для обоих указал Quality Profile 1080p + 4K и корневые папки

Создал локального пользователя в Settings → Users → Add Local User.

В Settings → Users выключил Enable Jellyfin Sign-In и Enable New Jellyfin Sign-In, оставил только Enable Local Sign-In.

При входе через локальный аккаунт нужно использовать email, а не username.

Как это работает

Открываю Jellyseer с телефона, выбираю фильм или сериал, нажимаю Request — всё автоматически скачивается и появляется в Infuse на Apple TV. Новые эпизоды сериалов ещё и автоматически загружаются по мере выхода.

А если хочу посмотреть не дома, то отправляю магнитную ссылку напрямую в Real-Debrid, в Infuse у меня есть отдельная папка для этого, которая через WebDAV тянет контент, ничего не скачивая на устройство.