Files
docs/tutorials/media-manager/steps/overview.md

5.5 KiB
Raw Blame History

Overview

This page tells the story of what will happen during the Media Manager setup: a clear, step-by-step timeline of actions, goals, and outcomes. Think of it as the "mission plan" — what we do, why we do it, and what success looks like at each stage.


The goal

We'll transform a single Linux host (example: a Raspberry Pi) into a dependable, mostly-automated media management server that:

  • Downloads TV shows and movies automatically via qBittorrent
  • Uses the ARR stack (Radarr, Sonarr, Prowlarr, Bazarr) to find and manage media
  • Organizes and moves completed downloads into a structured media library
  • Serves your media using Plex Media Server
  • Runs ARR services in Docker for portability and ease of upgrades

High-level architecture

  • Host OS: Linux (Raspberry Pi OS / Ubuntu Server)
  • Host services: Docker (engine) + Plex + qBittorrent (native host installs)
  • Containerized services (docker-compose): Radarr, Sonarr, Prowlarr, Bazarr, and any auxiliary containers (e.g., file indexers, notifications)
  • Storage layout: downloaded files land in /mnt/downloads; completed and organized media live in /mnt/media; service configurations in /mnt/config

Step-by-step timeline (what will happen)

Each step below explains the action, the reason, and the expected result.

1) Validate base system

Action: Confirm OS, update packages, set hostname, timezone, and networking. Why: Ensures reproducible behavior, correct timestamps, and easier network access. Result: A stable host with SSH enabled and a predictable IP/hostname.


2) Prepare and mount storage

Action: Attach external drives (HDD/SSD or network share), create filesystems if needed, and mount them persistently (e.g., /etc/fstab). Create top-level folders:

/mnt/media
/mnt/downloads
/mnt/config

Why: Separates volatile system disk from large media storage and config data; makes backups and maintenance easier. Result: Durable storage locations that all services will reference.


3) Install Docker on the host

Action: Install Docker Engine and docker-compose (or use docker compose plugin). Why: ARR services are containerized for isolation, portability, and simplified updates. Result: Host ready to run docker-compose stacks.


4) Install Plex on the host

Action: Install Plex Media Server as a host service (native install or package). Configure initial library paths and remote access as needed. Why: Plex performs heavy I/O and benefits from being on the host where hardware acceleration and direct disk access are easier to configure. Result: Plex server visible on the network and ready to index /mnt/media.


5) Install qBittorrent on the host

Action: Install and configure qBittorrent (preferably qbittorrent-nox for headless use). Set download paths to /mnt/downloads. Configure a web UI and credentials. Why: Torrent client handles downloads; being on the host simplifies mounting and permissions. Result: qBittorrent runs as a service, accepting search/download requests from ARR services.


6) Deploy ARR Stack via docker-compose

Action: Create a docker-compose.yml to run Radarr, Sonarr, Prowlarr, Bazarr (and optional services like bazarr, jackett if needed). Mount config and media/downloads into containers. Why: Containers give predictable runtime environments and make upgrades simple. Result: ARR services running and reachable on defined ports (e.g., :7878 for Radarr, :8989 for Sonarr).


7) Integrate ARR with qBittorrent and Plex

Action: In Radarr/Sonarr, add qBittorrent as the download client and Plex for library updates. Configure Prowlarr as the indexer aggregator and link it to Sonarr/Radarr. Why: This creates an automated chain: indexers → ARR → torrent client → completed move → Plex scan. Result: A working automation pipeline where new media requests result in downloaded, organized, and indexed media.


8) Configure media organization and quality profiles

Action: Create library structures (Movies, TV), set naming formats, define quality profiles and root folders in Radarr and Sonarr. Why: Ensures consistent file naming, reduces duplicates, and keeps libraries tidy for Plex. Result: Downloads are renamed and moved automatically into /mnt/media/Movies and /mnt/media/TV.


9) Verify and test end-to-end flow

Action: Manually request a test show or movie in Sonarr/Radarr, verify it appears in qBittorrent, completes, is moved, and shows up in Plex. Why: Confirms the full automation loop works and surfaces permission or path issues. Result: Confirmed working pipeline.


10) Backup, maintenance, and monitoring

Action: Implement config backups (snapshot /mnt/config), schedule regular system updates, and optionally add monitoring (Prometheus/Grafana or simple scripts). Why: Protects against data loss and keeps services healthy. Result: Resilient installation with a recovery plan.


Success Criteria — How youll know its working

  • You can add a movie/show to Radarr/Sonarr and see it downloaded automatically.
  • Downloaded files are renamed and relocated to /mnt/media.
  • Plex detects new content and makes it available for streaming.
  • Services restart correctly after a reboot and maintain configuration.

Next steps

Proceed to the Setup Mount Points step to prepare storage paths and permissions: steps/setup-mount-points.md.