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

131 lines
5.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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`.