1 line
46 KiB
JSON
1 line
46 KiB
JSON
{"config":{"lang":["en"],"separator":"[\\s\\-]+","pipeline":["stopWordFilter"]},"docs":[{"location":"","title":"Media Manager Setup Guide","text":"<p>Welcome to the Media Manager Tutorial! This comprehensive guide will help you set up an automated home media system, perfect for managing movies and TV shows\u2014from downloading to organizing and streaming.</p>"},{"location":"#whats-inside","title":"What\u2019s Inside","text":"<p>You\u2019ll learn how to use:</p> <ul> <li>Docker to run and manage your media applications.</li> <li>Plex Media Server for streaming your media library at home or remotely.</li> <li>qBittorrent to automate downloads.</li> <li>The ARR Stack (Radarr, Sonarr, Prowlarr, Bazarr), brought together in Docker containers using <code>docker-compose</code>, to streamline everything from searching for new releases to handling subtitles and metadata.</li> </ul>"},{"location":"#what-you-will-build","title":"\ud83d\udcda What You Will Build","text":"<p>By following this guide, you\u2019ll create a powerful and hands-off media setup that can:</p> <ul> <li>Automatically find and download movies and TV episodes.</li> <li>Keep your media library tidy and organized.</li> <li>Stream your collection anywhere using Plex.</li> <li>Link Radarr/Sonarr with qBittorrent for true automation.</li> <li>Grab new releases as soon as they\u2019re available.</li> <li>Fix metadata and fetch subtitles without hassle.</li> <li>Stay largely self-maintaining, so you don\u2019t have to babysit it each day.</li> </ul>"},{"location":"#components-overview","title":"\ud83d\udcc1 Components Overview","text":"Component Where It Runs What It Does Docker Your server or computer Hosts and runs the ARR stack containers. Plex Your server or computer Streams your sorted media collection. qBittorrent Your server or computer Handles torrent downloads automatically. ARR Stack (Radarr, Sonarr, Prowlarr, Bazarr) Docker, via docker-compose Manages searching, downloading, organizing, and handling metadata/subtitles."},{"location":"#quick-navigation","title":"\ud83d\ude80 Quick Navigation","text":"<p>Jump directly to any part of the guide:</p> Section What\u2019s Covered Getting Started Prerequisites, operating system, and network overview Overview A bird\u2019s-eye view of the whole process Setup Mount Points How to create folders for your media Install Docker Instructions for Docker and docker-compose Install Plex Plex setup and configuration Install qBittorrent qBittorrent installation and tips Setup Media Manager Deploying the ARR stack with docker-compose"},{"location":"#how-to-use-this-guide","title":"\ud83e\udded How to Use This Guide","text":"<p>This guide is designed to be followed step by step. If you already have some tools installed, you can skip those sections\u2014otherwise, work through each part in order for a smooth setup.</p>"},{"location":"#need-help","title":"\ud83d\udcac Need Help?","text":"<p>Every step offers clear commands, explanations, and tips. If you hit a roadblock, check out the troubleshooting section or double-check the instructions provided.</p> <p>Ready to get started? Head to \u2192 Getting Started</p>"},{"location":"getting-started/","title":"Getting Started","text":"<p>Setting up a Raspberry Pi for media management is generally straightforward, and many users have their own preferred setup methods. This guide provides basic guidelines to help you prepare your Raspberry Pi or any Linux-based system for the Media Manager setup without going into exhaustive detail.</p>"},{"location":"getting-started/#recommended-system-requirements","title":"Recommended System Requirements","text":"<ul> <li>Raspberry Pi 4 or 5 (4GB or 8GB RAM recommended) or any Linux server/VM</li> <li>64-bit operating system</li> <li>At least 32GB of storage</li> <li>External HDD or SSD for media storage</li> <li>Stable network connection (Ethernet preferred)</li> </ul>"},{"location":"getting-started/#what-you-should-have-done-already","title":"What You Should Have Done Already","text":"<p>While this document won\u2019t cover detailed Raspberry Pi installation steps, your system should be ready with the following:</p>"},{"location":"getting-started/#1-raspberry-pi-flashed-and-booted","title":"1. Raspberry Pi flashed and booted","text":"<ul> <li>Raspberry Pi OS or Ubuntu Server installed</li> <li>Completed the first boot</li> <li>System fully updated: Bash<pre><code>sudo apt update && sudo apt upgrade -y\n</code></pre></li> </ul>"},{"location":"getting-started/#2-network-setup-configured","title":"2. Network setup configured","text":"<ul> <li>Working network with either static IP or DHCP reservation</li> <li>SSH enabled for remote access (recommended): Bash<pre><code>sudo systemctl enable ssh --now\n</code></pre></li> </ul>"},{"location":"getting-started/#3-storage-attached-and-mounted","title":"3. Storage attached and mounted","text":"<ul> <li>External drives physically connected</li> <li>Drives recognized and formatted</li> <li>Mounted persistently via <code>/etc/fstab</code>, or ready to be configured in the mount points step</li> </ul>"},{"location":"getting-started/#4-timezone-and-system-time-set","title":"4. Timezone and system time set","text":"<ul> <li>Set the correct timezone for your location: Bash<pre><code>sudo timedatectl set-timezone Asia/Kolkata\n</code></pre></li> </ul>"},{"location":"getting-started/#5-basic-linux-knowledge","title":"5. Basic Linux knowledge","text":"<ul> <li>Comfortable navigating directories, editing files (nano or vim), and running commands remotely via SSH</li> </ul>"},{"location":"getting-started/#optional-but-helpful","title":"Optional but Helpful","text":"<ul> <li> <p>Enable UFW firewall for added security: Bash<pre><code>sudo ufw enable\nsudo ufw allow ssh\nsudo ufw allow <port>/tcp\n</code></pre></p> </li> <li> <p>Set a custom hostname for your device: Bash<pre><code>sudo hostnamectl set-hostname media-manager\n</code></pre></p> </li> <li> <p>For Raspberry Pi users, hardware acceleration for Plex (VAAPI/V4L2) can improve media transcoding performance.</p> </li> </ul>"},{"location":"getting-started/#next-step","title":"Next Step","text":"<p>Once your Raspberry Pi or Linux host is prepared, continue to the Overview for the installation workflow.</p> <p>Note: Setting up a Raspberry Pi is quite accessible with many guides available online. Since everyone tends to have personal preferences for flashing and configuring their Pi, this guide keeps the instructions focused on what\u2019s essential for the Media Manager setup without rehashing basic Raspberry Pi tutorials.</p>"},{"location":"steps/install-docker/","title":"Installing Docker \u2014 What It Is, How It Works, and Why We Use It","text":"<p>Before installing Docker, it\u2019s helpful to understand what Docker does, how it fits into our media management setup , and why we run only the ARR stack inside Docker while keeping qBittorrent and Plex on the host system.</p> <p>This page breaks it down simply and practically.</p>"},{"location":"steps/install-docker/#what-is-docker","title":"\ud83d\udc33 What Is Docker?","text":"<p>Docker is a containerization platform.</p> <p>It allows you to run applications in isolated environments called containers. Each container:</p> <ul> <li>Has its own filesystem</li> <li>Includes its own dependencies and libraries</li> <li>Runs separately from your main system</li> <li>Can be recreated or removed easily</li> </ul> <p>Think of a container as:</p> <p>A lightweight, specialized mini-computer dedicated to one app.</p> <p>This approach makes apps more predictable, easier to manage, and simpler to update.</p>"},{"location":"steps/install-docker/#why-use-docker","title":"\ud83d\udd27 Why Use Docker?","text":"<ul> <li>Avoid dependency conflicts: Containers bundle the app\u2019s needed libraries, leaving your base OS clean.</li> <li>Easy updates: Updating Radarr/Sonarr/Prowlarr is as simple as running:</li> </ul> Text Only<pre><code>docker compose pull\ndocker compose up -d\n</code></pre> <ul> <li>Easy backups: Configuration files are stored in small, manageable folders.</li> <li>Great for frequently changing apps: Apps like Prowlarr and Radarr update often, and Docker simplifies rollout.</li> </ul>"},{"location":"steps/install-docker/#why-not-put-everything-in-docker","title":"\ud83d\udeab Why Not Put Everything in Docker?","text":"<p>While you could put all components into Docker, some behave poorly or have limitations when containerized, especially on Raspberry Pi or home servers.</p>"},{"location":"steps/install-docker/#why-qbittorrent-is-not-in-docker","title":"\u274c Why qBittorrent Is NOT in Docker","text":"<p>qBittorrent requires:</p> <ul> <li>Precise file permission control</li> <li>Direct disk access</li> <li>Stable, predictable file paths</li> <li>High-speed I/O for torrent hashing</li> <li>Ability to handle sudden restarts and disk changes</li> </ul> <p>Within Docker, qBittorrent faces problems like:</p> Problem Cause Slow hashing Docker overlay filesystem overhead Permission issues UID/GID mismatch with bind mounts Inconsistent paths Container paths differ from host paths Poor integration Radarr/Sonarr struggles with Docker paths <p>Conclusion:</p> <ul> <li>Running qBittorrent directly on the host is faster, more reliable, and simpler.</li> </ul>"},{"location":"steps/install-docker/#why-plex-is-not-in-docker","title":"\u274c Why Plex Is NOT in Docker","text":"<p>Plex relies on:</p> Feature Issue in Docker Hardware transcoding (VAAPI/V4L2/QuickSync) Often broken or complicated to configure Direct I/O from huge libraries Overlay filesystem slows down I/O Network discovery (multicast/IGMP) Blocked or isolated inside containers Handling millions of metadata files Poor container filesystem performance <p>Conclusion:</p> <ul> <li>Plex runs best on the host machine for speed, compatibility, and stable transcoding.</li> </ul>"},{"location":"steps/install-docker/#why-the-arr-stack-is-in-docker","title":"\ud83d\udfe9 Why the ARR Stack Is in Docker","text":"<p>Radarr, Sonarr, Prowlarr, and Bazarr are:</p> <ul> <li>Lightweight and simple</li> <li>Use stable, clean directory structures</li> <li>Store config in small folders</li> <li>Benefit from frequent updates</li> <li>Don\u2019t require hardware passes</li> <li>Designed to run smoothly in containers</li> </ul>"},{"location":"steps/install-docker/#benefits","title":"Benefits:","text":"<ul> <li>Consistent file paths as long as <code>/mnt/omnissiah-vault</code> is mounted</li> <li>Easy migration with just config copy and docker-compose run</li> <li>Isolation protects other apps if something breaks</li> </ul>"},{"location":"steps/install-docker/#summary-the-architecture-philosophy","title":"\ud83e\uddf1 Summary \u2014 The Architecture Philosophy","text":"Component Location Reason Docker Engine Host Foundation layer ARR Stack (Radarr, Sonarr, Prowlarr, Bazarr) Docker Perfect container candidates qBittorrent Host Needs real filesystem and speed Plex Host Needs hardware transcoding and network integration <p>This hybrid setup balances performance, reliability, and ease of maintenance.</p>"},{"location":"steps/install-docker/#installing-docker-raspberry-pi-linux","title":"\ud83e\uddf0 Installing Docker (Raspberry Pi / Linux)","text":"<p>This tutorial uses an installation script that:</p> <ul> <li>Updates your system</li> <li>Removes any old conflicting packages</li> <li>Installs Docker using the official convenience script</li> <li>Installs Docker Compose</li> <li>Adds your user to the docker group</li> <li>Enables and starts Docker service</li> <li>Verifies successful install</li> </ul>"},{"location":"steps/install-docker/#download-script","title":"\ud83d\udce5 Download Script","text":"<p>\ud83d\udc49 install-docker.sh</p>"},{"location":"steps/install-docker/#after-installation","title":"\ud83d\ude80 After Installation","text":"<ul> <li>reboot your system:</li> </ul> Bash<pre><code>sudo reboot\n</code></pre> <p>Once rebooted, your system will be ready to run containerized ARR services.</p>"},{"location":"steps/install-docker/#next-step-install-plex-on-the-host","title":"\u27a1\ufe0f Next Step: Install Plex on the Host","text":"<p>Once Docker is installed, move on to installing Plex directly on the host to ensure your server is ready to stream media as the ARR stack populates your libraries.</p> <p>Go to \ud83d\udc49 Install Plex</p>"},{"location":"steps/install-plex/","title":"Installing Plex Media Server","text":"<p>Plex is the core of your media ecosystem. It scans your libraries, fetches metadata, organizes your content, and lets you stream movies and shows from anywhere. While installing Plex is straightforward, where you store its configuration and metadata is crucial for performance and longevity.</p> <p>This guide covers:</p> <ul> <li>What Plex is and how it works</li> <li>Why Plex should not run inside Docker in this setup</li> <li>Why its configuration directory belongs on your external HDD</li> <li>What Plex stores and how large it can get</li> <li>The installation script used to set it all up</li> </ul>"},{"location":"steps/install-plex/#what-is-plex","title":"\ud83c\udfac What Is Plex?","text":"<p>Plex Media Server is an application that:</p> <ul> <li>Indexes your media collection</li> <li>Fetches rich metadata like posters, backgrounds, cast info, and themes</li> <li>Streams content to TVs, phones, tablets, and browsers</li> <li>Transcodes media when needed for smooth playback</li> <li>Manages users, watch history, and personalized recommendations</li> </ul> <p>With great power comes heavy disk usage.</p>"},{"location":"steps/install-plex/#why-plex-runs-outside-docker","title":"\ud83e\uddf1 Why Plex Runs Outside Docker","text":"<p>Though Docker is excellent for the ARR stack, Plex demands more and runs better directly on the host system.</p> <p>Common problems running Plex inside Docker:</p> Issue Cause in Docker Hardware transcoding failures Containerization blocks VAAPI/V4L2/QuickSync access Slow scanning of large libraries Overlay filesystem slows metadata read/write Network discovery issues Plex multicast/IGMP blocked by Docker network isolation Large metadata directories Containers struggle with millions of tiny files <p>Practical experience shows Plex performs best installed natively on the OS.</p>"},{"location":"steps/install-plex/#why-move-plex-metadata-to-an-external-hdd","title":"\ud83d\uddc3\ufe0f Why Move Plex Metadata to an External HDD?","text":"<p>Plex stores a huge amount of metadata\u2014often tens to hundreds of gigabytes, depending on your library size.</p> <p>Stored in its config directory are:</p> <ul> <li>Posters and artwork</li> <li>Backdrops</li> <li>Theme music</li> <li>Subtitles</li> <li>Optimization and transcoding caches</li> <li>Databases for libraries, watch history, video analysis, and intro detection</li> </ul>"},{"location":"steps/install-plex/#typical-metadata-sizes","title":"\ud83d\udccc Typical Metadata Sizes","text":"<ul> <li>Small library (500 files): 5\u201310 GB</li> <li>Medium library (2,000 files): 20\u201350 GB</li> <li>Large library (10,000+ files): 100 GB+</li> </ul> <p>If this data stays on your system SD card or root SSD (e.g., <code>/var/lib/plexmediaserver</code>):</p> <ul> <li>The OS disk can fill up fast</li> <li>SD cards may wear out prematurely</li> <li>Plex performance will degrade</li> </ul>"},{"location":"steps/install-plex/#store-metadata-on-your-external-hdd","title":"\u2714 Store metadata on your external HDD","text":"<ul> <li>Access large, fast storage</li> <li>Protect your OS drive from filling</li> <li>Extend SD card lifespan</li> <li>Boost Plex scanning and caching speeds</li> </ul> <p>This is why Plex config is relocated to:</p> Text Only<pre><code>/mnt/omnissiah-vault/configs/plex\n</code></pre>"},{"location":"steps/install-plex/#installation-script","title":"\u2699\ufe0f Installation Script","text":"<p>This tutorial uses an installation script that:</p> <ul> <li>Installs Plex Media Server from the official repository</li> <li>Stops the Plex service temporarily</li> <li>Moves the entire Plex metadata and config folder to your external HDD</li> <li>Creates a symbolic link so Plex finds its config in the expected place</li> <li>Fixes file ownerships for the <code>plex</code> user</li> <li>Restarts and enables Plex to run on boot</li> </ul>"},{"location":"steps/install-plex/#download-script","title":"\ud83d\udce5 Download Script","text":"<p>\ud83d\udc49 install-plex.sh</p>"},{"location":"steps/install-plex/#after-installation","title":"\ud83d\ude80 After Installation","text":"<p>Once Plex is installed and its metadata moved:</p> <ul> <li>Open the Plex Web UI in your browser</li> <li>Sign in with your Plex account</li> <li>Add your media libraries pointing to <code>/mnt/omnissiah-vault/media</code></li> <li>Run a full library scan</li> </ul> <p>All ongoing metadata, caching, posters, and intro markers will safely reside on your external HDD.</p>"},{"location":"steps/install-plex/#next-step-install-qbittorrent-on-the-host","title":"\u27a1\ufe0f Next Step: Install qBittorrent on the Host","text":"<p>After successfully installing Plex and configuring its metadata on your external HDD, it\u2019s time to set up qBittorrent , the torrent client responsible for downloading your media files automatically.</p> <p>Proceed to the detailed installation and configuration instructions here: Go to \ud83d\udc49 Install qBittorrent</p>"},{"location":"steps/install-qbittorrent/","title":"Installing qBittorrent (Host Installation)","text":"<p>qBittorrent is the download engine of your media automation setup. It handles all torrent activity triggered by Radarr, Sonarr, and Prowlarr. Installing it on the host system (not Docker) ensures optimal speed, stable paths, and maximum compatibility.</p> <p>This guide explains:</p> <ul> <li>What qBittorrent does in the media pipeline</li> <li>Why it should not run inside Docker in a real-world Pi/home server setup</li> <li>Why its configuration does not need to be moved to your external drive</li> <li>The installation script used to install and run qBittorrent as a systemd service</li> </ul>"},{"location":"steps/install-qbittorrent/#what-is-qbittorrent","title":"\ud83c\udf00 What Is qBittorrent?","text":"<p>qBittorrent is an open\u2011source torrent client featuring:</p> <ul> <li>Lightweight Web UI</li> <li>Fast download engine</li> <li>Built-in category and tagging support</li> <li>Excellent integration with Radarr & Sonarr</li> <li>Very low resource usage</li> </ul> <p>It acts as the download worker for the entire Media Manager.</p> <p>When Radarr or Sonarr find new media, they send the torrent to qBittorrent. Upon completion, ARR processes renaming and file management.</p>"},{"location":"steps/install-qbittorrent/#why-qbittorrent-should-not-run-in-docker","title":"\u274c Why qBittorrent Should NOT Run in Docker","text":"<p>Though technically possible, running qBittorrent in Docker on low-power hardware like Raspberry Pi causes significant issues:</p>"},{"location":"steps/install-qbittorrent/#1-docker-slows-torrent-hashing","title":"1. Docker slows torrent hashing","text":"<ul> <li>Torrenting requires intensive hashing and verifying large files</li> <li>Docker\u2019s overlay filesystem adds overhead, causing slower hashing and higher CPU usage</li> </ul>"},{"location":"steps/install-qbittorrent/#2-permissions-become-complicated","title":"2. Permissions become complicated","text":"<ul> <li>Bind-mounted volumes in Docker cause UID/GID mismatches</li> <li>Sonarr/Radarr struggle to access or import completed downloads correctly</li> <li>On the host, file permissions behave predictably and natively</li> </ul>"},{"location":"steps/install-qbittorrent/#3-stable-real-file-paths-are-necessary","title":"3. Stable real file paths are necessary","text":"<ul> <li>qBittorrent expects actual Linux paths (e.g., <code>/mnt/omnissiah-vault/downloads</code>)</li> <li>Containers often abstract paths, confusing ARR\u2019s automation</li> </ul>"},{"location":"steps/install-qbittorrent/#4-performance-is-better-on-the-host","title":"4. Performance is better on the host","text":"<ul> <li>Download speeds, disk writes, and hashing all run faster without Docker\u2019s overhead</li> </ul> <p>Conclusion:</p> <ul> <li>qBittorrent performs best installed directly on the host system.</li> </ul>"},{"location":"steps/install-qbittorrent/#why-qbittorrent-configuration-does-not-need-external-hdd","title":"\ud83d\udce6 Why qBittorrent Configuration Does NOT Need External HDD","text":"<p>Unlike Plex\u2019s large metadata, qBittorrent stores only minor config files such as:</p> <ul> <li>Configuration settings</li> <li>Small torrent resume files</li> <li>A lightweight database</li> </ul> <p>Typical config size: 2\u201320 MB \u2014 negligible and stable.</p> <p>Keeping qBittorrent config on your system\u2019s internal OS disk is safe and recommended.</p>"},{"location":"steps/install-qbittorrent/#installation-script-systemd-service","title":"\u2699\ufe0f Installation Script (Systemd Service)","text":""},{"location":"steps/install-qbittorrent/#installation-script","title":"\u2699\ufe0f Installation Script","text":"<p>This tutorial uses an installation script that:</p> <ul> <li>Updates and upgrades system packages</li> <li>Installs qBittorrent-nox (the headless version)</li> <li>Creates a dedicated system user for qBittorrent</li> <li>Adds your normal user to the qBittorrent group for file access</li> <li>Creates a systemd service file to run qBittorrent as a background service</li> <li>Enables and starts the qBittorrent service to run at boot</li> </ul> <p>After running the script, you can access qBittorrent\u2019s Web UI and begin configuring your download settings.</p>"},{"location":"steps/install-qbittorrent/#download-script","title":"\ud83d\udce5 Download Script","text":"<p>\ud83d\udc49 install-qbittorrent.sh</p>"},{"location":"steps/install-qbittorrent/#after-installation","title":"\ud83d\ude80 After Installation","text":"<p>Access the Web UI at:</p> Text Only<pre><code>http://<your_pi_ip>:8080\n</code></pre> <p>Default credentials:</p> Text Only<pre><code>username: admin\npassword: adminadmin\n</code></pre> <p>Change your password on first login!</p> <ul> <li>Configure download directories</li> <li>Add categories such as <code>movies</code> and <code>tv</code></li> <li>Disable any unwanted torrenting features</li> </ul> <p>ARR integration will be configured after the Docker-based ARR stack is deployed.</p>"},{"location":"steps/install-qbittorrent/#next-step-setup-arr-stack-docker-compose","title":"\u27a1\ufe0f Next Step: Setup ARR Stack (Docker Compose)","text":"<p>Now that host-based components (Plex and qBittorrent) are ready, proceed to deploy the ARR stack via Docker Compose to automate searching, downloading, and organizing your media.</p> <p>Go to \ud83d\udc49 Setup Media Manager</p>"},{"location":"steps/install-samba/","title":"Optional: Installing Samba for Windows Network Access","text":"<p>While Samba setup is not mandatory for this Media Manager system, it\u2019s highly recommended if you want easier access to your media files from Windows machines or other devices on your network.</p> <p>Here\u2019s why you might want to consider Samba:</p> <ul> <li>You use Windows and want to browse your media files through File Explorer effortlessly. </li> <li>You prefer to manage downloaded files manually\u2014like dragging subtitles into folders, renaming movies, or cleaning up files directly. </li> <li>You want to have the media storage appear as a network drive for quick access anytime. </li> </ul> <p>If you mainly interact with your media through Plex, Radarr, Sonarr, or the Linux terminal, Samba is not essential.</p>"},{"location":"steps/install-samba/#why-samba-can-be-useful","title":"Why Samba Can Be Useful","text":"<p>Despite the automation provided by Radarr, Sonarr, and Bazarr, there are times when manual access is needed:</p> <ul> <li>Fixing files that didn\u2019t tag correctly </li> <li>Adjusting subtitles </li> <li>Removing or replacing problematic media </li> <li>Organizing your library beyond automation </li> <li>Taking backups of your media collection </li> </ul> <p>On Linux or macOS, SSH provides a way to do this. But Windows users benefit most from Samba shares, which map your server\u2019s drive like a regular Windows network folder.</p>"},{"location":"steps/install-samba/#what-samba-does","title":"What Samba Does","text":"<p>Samba turns your Raspberry Pi or Linux server\u2019s storage into Windows-friendly network shares.</p> <p>For example, the folder:</p> Text Only<pre><code>/mnt/omnissiah-vault\n</code></pre> <p>Can be used from Windows like:</p> Text Only<pre><code>Z:\\ \u2192 Omnissiah-Vault\n</code></pre> <p>This means in Windows:</p> <ul> <li>You can open and play files </li> <li>Copy and move folders as usual </li> <li>Rename and delete files directly </li> <li>Manage your media easily without logging into the server</li> </ul>"},{"location":"steps/install-samba/#installation-script","title":"\u2699\ufe0f Installation Script","text":"<p>This script will:</p> <ul> <li>Install the Samba server software </li> <li>Share your mounted media directories securely </li> <li>Set up user authentication (no open guest access) </li> <li>Enable Samba system services (<code>smbd</code> and <code>nmbd</code>) for automatic startup </li> </ul>"},{"location":"steps/install-samba/#download-script","title":"\ud83d\udce5 Download Script","text":"<p>\ud83d\udc49 install-samba.sh</p>"},{"location":"steps/install-samba/#after-installation","title":"\ud83d\ude80 After Installation","text":"<p>Once Samba is set up and running on your server, you can connect from your Windows computer:</p> <ol> <li>Press <code>Win + E</code> to open File Explorer. </li> <li>Click on This PC on the left pane. </li> <li>Click Map network drive from the ribbon menu (or use the three-dot menu if it\u2019s hidden). </li> <li>Choose a drive letter, such as <code>Z:</code>. </li> <li> <p>Enter the network folder path in this format: Text Only<pre><code>\\\\<server-ip>\\Omnissiah-Vault\n</code></pre></p> <p>Example:</p> <p>Text Only<pre><code>\\\\192.168.1.50\\Omnissiah-Vault\n</code></pre> 6. Check Reconnect at sign-in to automatically mount the drive each time you log in. 7. Check Connect using different credentials and enter the Samba username/password created during setup. For example: Text Only<pre><code>Username: aetos\nPassword: <your-samba-password>\n</code></pre> 8. Click Finish. Your media drive will appear in File Explorer like any normal disk. </p> </li> </ol> <p>You can also map it via PowerShell: Text Only<pre><code>net use Z: \\\\<server-ip>\\Omnissiah-Vault /user:aetos\n</code></pre></p>"},{"location":"steps/install-samba/#security-tips","title":"Security Tips","text":"<ul> <li>Samba shares your files over the network. Use strong passwords and never enable guest (anonymous) access unless you want an open share. </li> <li>Use firewall tools (UFW, firewall-cmd) to restrict access to trusted devices only. </li> </ul>"},{"location":"steps/install-samba/#summary","title":"Summary","text":"<p>Samba is a handy optional addition that makes your media drive easily accessible on Windows and other devices, allowing drag-and-drop ease and manual file management.</p> <p>Choose Samba if you: - Want direct, seamless Windows access to media files - Regularly manage or adjust files manually - Prefer using network shares over command-line or Plex only </p> <p>Skip installing Samba if you: - Do everything through Plex or media automation apps - Manage the server via Linux or macOS only - Don\u2019t need manual file access on other devices </p>"},{"location":"steps/overview/","title":"Overview","text":"<p>This page lays out the clear plan for your Media Manager setup\u2014what actions you\u2019ll take, why each step matters, and what success looks like along the way. Think of it as your roadmap that guides you from start to finish.</p>"},{"location":"steps/overview/#the-goal","title":"The Goal","text":"<p>We\u2019re turning a single Linux machine (like a Raspberry Pi) into a reliable, mostly hands-off media server that:</p> <ul> <li>Automatically downloads TV shows and movies using qBittorrent</li> <li>Uses the powerful ARR stack (Radarr, Sonarr, Prowlarr, Bazarr) to find and manage your media</li> <li>Organizes and moves finished downloads into a tidy media library</li> <li>Streams your media with Plex Media Server</li> <li>Runs ARR apps inside Docker for easy updates and portability</li> </ul>"},{"location":"steps/overview/#high-level-setup-architecture","title":"High-Level Setup Architecture","text":"<ul> <li>Host operating system: Linux (e.g., Raspberry Pi OS or Ubuntu Server)</li> <li>Host services: Docker engine, Plex Media Server, and qBittorrent installed directly on the host</li> <li>Containerized apps: Radarr, Sonarr, Prowlarr, Bazarr, and any additional helpers via Docker Compose</li> <li>Storage layout:<ul> <li>Downloaded files go to <code>/mnt/omnissiah-vault/data/media-manager/downloads</code></li> <li>Finished media files live in <code>/mnt/omnissiah-vault/data/media-manager/media</code></li> <li>App configuration files live under <code>/mnt/omnissiah-vault/configs/<service-name></code></li> </ul> </li> </ul>"},{"location":"steps/overview/#1-validate-your-system","title":"\ud83d\udd0d 1) Validate Your System","text":"<p>What we do: Verify your operating system, update all critical packages, and set essential system settings like hostname, timezone, and network configuration.</p> <p>What you achieve: A stable and predictable environment with SSH access and a consistent system identity, laying the foundation for everything else.</p>"},{"location":"steps/overview/#2-prepare-storage-and-mount-points","title":"\ud83d\udcbe 2) Prepare Storage and Mount Points","text":"<p>What we do: Connect and mount your external drives permanently, create organized folders for media, downloads, and configurations.</p> <p>What you achieve: Reliable, durable storage locations cleanly separated from your system disk, making management, backups, and expansions easier.</p>"},{"location":"steps/overview/#3-install-docker","title":"\ud83d\udc33 3) Install Docker","text":"<p>What we do: Install Docker Engine and Docker Compose on your host system.</p> <p>What you achieve: A containerized environment ready to host ARR services, optimizing portability, isolation, and simplified updates.</p>"},{"location":"steps/overview/#4-install-plex-on-the-host","title":"\ud83c\udfac 4) Install Plex on the Host","text":"<p>What we do: Install Plex Media Server natively, set up initial libraries pointing to your media folders, and configure remote access as needed.</p> <p>What you achieve: A powerful media streaming service that efficiently accesses and serves your organized media.</p>"},{"location":"steps/overview/#5-install-qbittorrent-on-the-host","title":"\ud83e\uddf2 5) Install qBittorrent on the Host","text":"<p>What we do: Install the headless qBittorrent torrent client, configure it with stable download paths, and set up its web UI for easy control.</p> <p>What you achieve: A fast, stable, and reliable download engine integrated with the rest of your media automation pipeline.</p>"},{"location":"steps/overview/#6-deploy-the-arr-stack-via-docker-compose","title":"\ud83e\uddf1 6) Deploy the ARR Stack via Docker Compose","text":"<p>What we do: Start Radarr, Sonarr, Prowlarr, Bazarr, and any optional services in Docker containers, mounting media and config volumes properly.</p> <p>What you achieve: All core media automation services running in isolated but connected containers, ready to manage your media intelligently.</p>"},{"location":"steps/overview/#7-integrate-arr-with-qbittorrent-and-plex","title":"\ud83d\udd17 7) Integrate ARR with qBittorrent and Plex","text":"<p>What we do: Configure Radarr and Sonarr to use qBittorrent as their downloader and Plex as the media library refresher. Link Prowlarr as the indexer for search results.</p> <p>What you achieve: A seamless automated loop where new media gets found, downloaded, organized, and made available with minimal effort.</p>"},{"location":"steps/overview/#8-configure-media-libraries-and-quality-profiles","title":"\ud83d\uddc2\ufe0f 8) Configure Media Libraries and Quality Profiles","text":"<p>What we do: Set up consistent folder structures, naming schemes, and quality preferences in Radarr and Sonarr for Movies and TV shows.</p> <p>What you achieve: Neatly named and organized media that Plex can easily scan and serve, improving overall media management quality.</p>"},{"location":"steps/overview/#9-test-your-full-setup","title":"\ud83d\ude80 9) Test Your Full Setup","text":"<p>What we do: Manually add a test movie or episode, verify it downloads through qBittorrent, is organized by Radarr/Sonarr, and appears in Plex.</p> <p>What you achieve: Confidence that every part of your automation workflow works smoothly without permission or path issues.</p>"},{"location":"steps/overview/#10-backup-and-maintain","title":"\ud83d\udee1\ufe0f 10) Backup and Maintain","text":"<p>What we do: Implement regular backups of configuration data, keep the system and Docker updated, and optionally add monitoring tools to keep watch on your media server.</p> <p>What you achieve: A reliable and maintainable Media Manager system that withstands unforeseen issues and keeps running smoothly.</p> <p>Feel free to follow the linked steps for detailed, easy-to-understand guides. Each part builds on the previous to get you from a fresh Linux install to a fully automated media powerhouse.</p>"},{"location":"steps/overview/#ready-to-begin","title":"\ud83d\udeaaReady to begin?","text":"<p>Move on to the Setup Mount Points step to prepare your storage structure and permissions Go to \ud83d\udc49 Setup Mount Points</p>"},{"location":"steps/setup-media-manager/","title":"ARR Stack Overview and Service Architecture","text":"<p>This section walks you through all the key applications in your Media Manager stack, explaining what each one does, how they work together, and how they share storage space.</p> <p>Your entire media automation system is deployed with Docker Compose, a tool that manages multiple containers at once. Instead of pasting the configuration here, just know it's referenced in the main <code>docker-compose.yml</code> file.</p>"},{"location":"steps/setup-media-manager/#the-arr-ecosystem-what-each-app-does","title":"\ud83c\udf10 The ARR Ecosystem \u2014 What Each App Does","text":"<p>Think of your media setup as a team of specialists, each with a clear role. Together, they automate finding, downloading, organizing, and streaming your media smoothly.</p>"},{"location":"steps/setup-media-manager/#prowlarr-the-indexer-aggregator","title":"\ud83e\udded Prowlarr \u2014 The Indexer Aggregator","text":"<p>Prowlarr is the brain behind finding new media. It connects to many torrent and NZB indexers (sites listing available movies and shows) and collects results from them.</p> <ul> <li>It sends these results to Radarr and Sonarr so they know about new movies or episodes.</li> <li>It keeps all your indexers synced in one place, saving you from having to set them up repeatedly.</li> </ul>"},{"location":"steps/setup-media-manager/#radarr-automated-movie-management","title":"\ud83c\udfac Radarr \u2014 Automated Movie Management","text":"<p>Radarr handles your movie collection.</p> <ul> <li>It tracks movie releases and tells qBittorrent what to download.</li> <li>After the download finishes, Radarr renames, organizes, and moves the movie files to your library folder.</li> <li>It also notifies Plex so your library stays updated.</li> </ul>"},{"location":"steps/setup-media-manager/#sonarr-automated-tv-show-management","title":"\ud83d\udcfa Sonarr \u2014 Automated TV Show Management","text":"<p>Sonarr does essentially the same job as Radarr, but for TV shows.</p> <ul> <li>Monitors episodes (current and upcoming) and fetches via qBittorrent.</li> <li>Handles organizing episodes and renaming files consistently.</li> <li>Updates Plex similar to Radarr.</li> </ul>"},{"location":"steps/setup-media-manager/#bazarr-subtitle-management-service","title":"\ud83d\udcac Bazarr \u2014 Subtitle Management Service","text":"<p>Bazarr works alongside Radarr and Sonarr to handle subtitles.</p> <ul> <li>Automatically searches for subtitles in the languages you want.</li> <li>Saves these subtitle files right next to your media, so Plex and your devices can use them seamlessly.</li> </ul>"},{"location":"steps/setup-media-manager/#jellyseerr-user-request-portal","title":"\ud83c\udf9f\ufe0f Jellyseerr \u2014 User Request Portal","text":"<p>Jellyseerr provides a friendly interface where users can request movies or TV shows.</p> <ul> <li>Requests get automatically passed to Radarr or Sonarr.</li> <li>Useful if multiple people want to manage requests easily.</li> <li>Integrates with Plex to show what\u2019s available.</li> </ul>"},{"location":"steps/setup-media-manager/#ombi-alternative-request-management","title":"\ud83d\udce8 Ombi \u2014 Alternative Request Management","text":"<p>Ombi offers similar features to Jellyseerr but with a different look and some unique options.</p> <ul> <li>You can choose either or even run both if you want.</li> </ul>"},{"location":"steps/setup-media-manager/#how-these-services-connect","title":"\ud83e\uddf1 How These Services Connect","text":"<p>Here\u2019s a simple flow to understand their interaction:</p> <p>User Requests (via Jellyseerr/Ombi) \u2193 Radarr & Sonarr \u2193 Prowlarr provides index results \u2193 qBittorrent (host) downloads files \u2193 Organized media library (on shared storage) \u2193 Plex streams content \u2193 Clients (your devices)</p> <ul> <li>Prowlarr feeds torrent information to Radarr and Sonarr.</li> <li>Radarr and Sonarr initiate downloads in qBittorrent running on your host.</li> <li>qBittorrent saves the media to storage mounted by all services.</li> <li>Radarr and Sonarr rename and organize media as it completes.</li> <li>Plex scans the media folders to show up-to-date content.</li> <li>Bazarr adds subtitles automatically to the media files.</li> </ul>"},{"location":"steps/setup-media-manager/#shared-storage-and-docker-volumes","title":"\ud83d\uddc4\ufe0f Shared Storage and Docker Volumes","text":"<p>To keep things tidy and avoid confusion, all Docker services use the same folder structure inside their containers under <code>/data</code>. This path points to your real media folders on the host, typically <code>/mnt/omnissiah-vault/data/media-manager</code>.</p> <p>Each service also stores its settings (config files) in their own dedicated folders on the external drive, persisting beyond container restarts:</p> Service Config Path on Host Mounted To in Container Radarr <code>/mnt/omnissiah-vault/configs/radarr</code> <code>/config</code> Sonarr <code>/mnt/omnissiah-vault/configs/sonarr</code> <code>/config</code> Prowlarr <code>/mnt/omnissiah-vault/configs/prowlarr</code> <code>/config</code> Bazarr <code>/mnt/omnissiah-vault/configs/bazarr</code> <code>/config</code> Jellyseerr <code>/mnt/omnissiah-vault/configs/jellyseerr</code> <code>/app/config</code> Ombi <code>/mnt/omnissiah-vault/configs/ombi</code> <code>/config</code> <p>This organization keeps your media and service configurations cleanly separated and easy to backup or migrate.</p>"},{"location":"steps/setup-media-manager/#docker-networking","title":"\ud83d\udd27 Docker Networking","text":"<p>All ARR stack containers are connected on a private Docker network called <code>media-net</code>. This network allows them to talk to each other internally, without exposing all services to your regular home network. For host-based services like qBittorrent and Plex, container apps reach them via special host addresses.</p>"},{"location":"steps/setup-media-manager/#summary","title":"\ud83d\ude80 Summary","text":"<p>Your Media Manager ARR stack is a carefully connected set of services:</p> <ul> <li>Prowlarr centralizes media indexers.</li> <li>Radarr and Sonarr manage movies and TV shows, respectively.</li> <li>qBittorrent on your host downloads the media files.</li> <li>Bazarr provides subtitles automatically.</li> <li>Jellyseerr or Ombi lets users request new content.</li> <li>Plex streams your organized media to your devices.</li> </ul> <p>They share data neatly through a standardized storage path and communicate over a private Docker network for smooth operation.</p>"},{"location":"steps/setup-media-manager/#optional-accessing-your-media-via-samba-network-share","title":"Optional: Accessing Your Media via Samba Network Share","text":"<p>If you want to access your external HDD directly from other devices on your network\u2014like Windows PCs, Macs, or mobile devices\u2014you can set up Samba. Samba allows you to share your media folders as network drives, making it easy to browse, add, or manage files without logging into your server.</p> <p>This is especially useful if you prefer managing files directly or want seamless integration with devices that don\u2019t support network streaming apps.</p> <p>You can find the step-by-step Samba installation and configuration instructions here: Go to\ud83d\udc49 Install Samba</p>"},{"location":"steps/setup-mount-points/","title":"Understanding Mounting, File Systems, and Choosing Between EXT4 vs NTFS","text":"<p>Before we connect our drives and get everything ready, it\u2019s important to understand what mounting is, what a file system is, and why we choose either EXT4 or NTFS depending on how you'll use your storage.</p> <p>This page explains these concepts in simple terms so beginners can follow with confidence.</p>"},{"location":"steps/setup-mount-points/#what-does-mounting-mean","title":"\ud83e\udde9 What Does \u201cMounting\u201d Mean?","text":"<p>On Linux, storage devices like HDDs, SSDs, or USB drives don\u2019t automatically appear as folders when plugged in. Instead, the operating system attaches or mounts them to a folder\u2014meaning:</p> <p>Mounting = attaching a drive to a folder in the filesystem</p> <p>For example:</p> Text Only<pre><code>Device: /dev/sda1\nMounted at: /mnt/omnissiah-vault\n</code></pre> <p>Once mounted:</p> <ul> <li>The drive is accessible through that folder path</li> <li>Applications can read/write files there</li> <li>You can organize your media, downloads, and settings</li> </ul> <p>If the drive isn\u2019t mounted, Linux can see the hardware but won\u2019t be able to access the data stored on it.</p>"},{"location":"steps/setup-mount-points/#why-we-use-mnt","title":"\ud83d\udcd8 Why We Use <code>/mnt/\u2026</code>","text":"<p>Linux organizes storage under specific folders:</p> Path Purpose <code>/home</code> User\u2019s personal files <code>/root</code> Root user\u2019s files <code>/etc</code> System configuration files <code>/mnt</code> External drives mounted by the user <p>We typically mount drives in <code>/mnt</code> to keep things organized, for example:</p> Text Only<pre><code>/mnt/omnissiah-vault\n</code></pre> <p>This makes it clear that the drive is external storage, not part of the system root.</p>"},{"location":"steps/setup-mount-points/#what-is-a-file-system","title":"\ud83d\udd27 What Is a File System?","text":"<p>A file system determines how data is organized on a drive.</p> <p>It controls:</p> <ul> <li>How files are stored</li> <li>How permissions work</li> <li>How large files can be</li> <li>How reliable and fast the storage is</li> </ul> <p>Two major file systems matter for media management:</p>"},{"location":"steps/setup-mount-points/#ext4-vs-ntfs-which-should-you-use","title":"\ud83c\udd9a EXT4 vs NTFS \u2014 Which Should You Use?","text":"<p>Below is a simple, clear comparison.</p> Feature EXT4 (Linux Native) NTFS (Windows Native) Best OS support Linux Windows Performance on Linux \u2b50\u2b50\u2b50\u2b50 Fast \u2b50 Slow (requires NTFS-3G driver) Supports Linux permissions (chmod, chown) \u2714 Yes \u274c No (emulated) Good for Plex & ARR stack \u2714 Best choice \u2714 Works but slower Reliability \u2b50\u2b50\u2b50\u2b50\u2b50 Excellent \u2b50\u2b50\u2b50 Good 4K/large drive support \u2714 Yes \u2714 Yes Automatic mounting Easy Slightly more complex Ideal use case Permanent Linux storage External drive shared with Windows"},{"location":"steps/setup-mount-points/#choose-ext4-if-the-drive-stays-connected-to-your-raspberry-pilinux-system","title":"\u2714 Choose EXT4 if the drive stays connected to your Raspberry Pi/Linux system.","text":"<p>This is the recommended choice for media servers, Plex, and qBittorrent because:</p> <ul> <li>It\u2019s faster</li> <li>Uses native permissions</li> <li>More stable</li> <li>Less CPU overhead</li> <li>Easier integration with Docker</li> </ul>"},{"location":"steps/setup-mount-points/#choose-ntfs-only-if-the-drive-must-also-be-used-on-windows","title":"\u2714 Choose NTFS only if the drive must also be used on Windows.","text":"<p>For example:</p> <ul> <li>You physically unplug the drive and connect it to a Windows PC</li> <li>You want to browse the media on Windows without a network share</li> </ul>"},{"location":"steps/setup-mount-points/#accessing-an-ext4-drive-on-windows","title":"\ud83e\ude9f Accessing an EXT4 Drive on Windows?","text":"<p>EXT4 cannot be read by Windows natively.</p> <p>However, this is not a problem, because:</p>"},{"location":"steps/setup-mount-points/#you-will-access-your-media-over-the-network-using-samba-smb","title":"You will access your media over the network using Samba (SMB).","text":"<p>This means:</p> <ul> <li>You keep the performance, safety, and permissions of EXT4</li> <li>Windows PCs can still browse the media like a shared network drive</li> </ul> <p>We will configure Samba later in an optional section:</p> <p>\ud83d\udc49 \u201cAccessing Your Media from Windows (Samba Setup)\u201d</p>"},{"location":"steps/setup-mount-points/#choose-your-mounting-ritual","title":"\ud83d\udce5 Choose Your Mounting Ritual","text":"<p>Below are two scripts \u2014 pick one based on your file system choice.</p>"},{"location":"steps/setup-mount-points/#ext4-mounting-ritual-recommended","title":"\ud83d\udfe6 EXT4 Mounting Ritual (Recommended)","text":"<p>Download: \ud83d\udc49 bind-machine-spirits-ext4.sh</p> <p>(Use this if your drive is formatted as EXT4 and stays connected permanently.)</p>"},{"location":"steps/setup-mount-points/#ntfs-mounting-ritual-legacyoptional","title":"\ud83d\udfe8 NTFS Mounting Ritual (Legacy/Optional)","text":"<p>Download: \ud83d\udc49 bind-machine-spirits-ntfs.sh</p> <p>(Use this only if your drive must work on both Linux and Windows without Samba.)</p>"},{"location":"steps/setup-mount-points/#what-happens-next","title":"\ud83e\udded What Happens Next?","text":"<p>Once you choose your file system and run the ritual script:</p> <ol> <li>Your mount point will be created</li> <li><code>/etc/fstab</code> will be updated for automatic mounting</li> <li>The drive will appear under <code>/mnt/omnissiah-vault</code></li> <li>Subdirectories (movies, tv-shows, downloads, etc.) will be generated</li> </ol>"},{"location":"steps/setup-mount-points/#next-step-install-docker","title":"\u27a1\ufe0f Next Step: Install Docker","text":"<p>Proceed to the Install Docker step to prepare docker for media management. Go to \ud83d\udc49 Install Docker</p>"}]} |