refactor to correct folder

This commit is contained in:
2025-11-20 20:59:40 +05:30
parent fb65cc8a57
commit e4041cefa5
17 changed files with 0 additions and 0 deletions

View File

@@ -0,0 +1,172 @@
# Installing Docker — What It Is, How It Works, and Why We Use It
Before installing Docker, its important to understand **what Docker actually 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**.
This page will walk you through all of that in simple, practical terms.
---
# 🐳 What Is Docker?
Docker is a **containerization platform**.
That means:
### Docker lets you run applications in small, isolated environments called **containers**.
A container:
- has its own filesystem
- has its own dependencies
- has its own libraries
- cannot interfere with your main system
- can be destroyed and recreated easily
Think of it like:
> **A lightweight, specialized mini-computer for one application.**
This makes apps more predictable, easier to upgrade, and easier to manage.
---
# 🔧 Why Use Docker?
### ✔ Avoid dependency conflicts
Containers ship the libraries the app needs, so you dont pollute your main OS.
### ✔ Easy to update
Updating Radarr/Sonarr/Prowlarr becomes:
```
docker compose pull
docker compose up -d
```
### ✔ Easy to back up
ARR services store their config in a small folder you can snapshot.
### ✔ Perfect for things that change often
Indexers break, Prowlarr updates, Radarr adds features — Docker makes it painless.
---
# 🚫 Why Not Put Everything in Docker?
You *can* put everything in Docker, but in a real-world Raspberry Pi / home-server environment, some apps **behave badly** or **have limitations** inside containers.
Below is the reasoning for each major component.
---
# ❌ Why qBittorrent Is NOT in Docker
### qBittorrent needs:
- fine-grained permission control
- direct disk access
- stable file paths
- high-speed I/O for torrent hashing
- ability to handle sudden restarts and disk states
Inside Docker, qBit often has problems:
| Problem | Why It Happens |
|--------|----------------|
| Slow hashing | Dockers overlay filesystem adds overhead |
| Permission issues | Containers struggle with mixed UID/GID + bind mounts |
| Inconsistent paths | qBit expects real Linux paths for completed downloads |
| Harder integration | Radarr/Sonarr sometimes misread container-mapped paths |
### 🧠 Therefore:
**qBittorrent on the host is cleaner, faster, and more stable.**
---
# ❌ Why Plex Is NOT in Docker
This is even more important.
### Plex inside Docker struggles with:
| Feature | Issue in Docker |
|--------|-----------------|
| **Hardware transcoding (VAAPI/V4L2/QuickSync)** | Often broken or requires special setup |
| **Direct I/O from large libraries** | Docker overlay adds slowdowns |
| **Automatic network discovery** | Plex uses multicast/IGMP which Docker isolates |
| **Large metadata directories** | Docker containers dont like millions of tiny files |
Plex has a massive, constantly evolving I/O profile and **performs best on bare metal** (host).
### 🧠 Therefore:
**Install Plex directly on the host for speed, compatibility, and transcoding support.**
---
# 🟩 Why the ARR Stack *Is* in Docker
Radarr, Sonarr, and Prowlarr:
- are lightweight
- use clean, simple paths
- store configuration in manageable folders
- benefit from frequent updates
- rarely need hardware access
- behave very predictably in containers
Theyre practically **designed to live inside Docker**.
### ✔ Consistent paths
As long as `/mnt/omnissiah-vault` is mounted, containers have zero issues.
### ✔ Easy migrations
Moving to a new server is as simple as:
```
copy configs → run docker-compose → done
```
### ✔ Better isolation
If Radarr breaks from an update, it wont affect Plex or qBit.
---
# 🧱 Summary — The Architecture Philosophy
| Component | Host or Docker? | Reason |
|----------|------------------|---------|
| **Docker Engine** | Host | Foundation layer |
| **ARR Stack (Radarr / Sonarr / Prowlarr / Bazarr)** | Docker | Best candidates for containers |
| **qBittorrent** | Host | Needs stable I/O + real filesystem access |
| **Plex** | Host | Needs hardware transcoding + network discovery |
This hybrid approach gives us the **best combination of performance, stability, and maintainability**.
---
# 🧰 Installing Docker (Raspberry Pi / Linux)
Here is the installation script referenced in the flow:
### 📥 Download Script
👉 **[install-docker.sh](../scripts/shell/install-docker.sh)**
### 🖥️ What the script does
- updates the system
- removes conflicting old packages
- installs Docker using the official convenience script
- installs Docker Compose
- adds your user to the docker group
- enables and starts the Docker service
- verifies installation
After running it:
```bash
sudo reboot
```
Your system will be ready to run containerized ARR services.
# 🚀 Next Step: Configure Plex (Host Installation)
Once Docker is installed, we move forward with:
👉 Install Plex (steps/install-plex.md)
This ensures the server is ready to serve media once the ARR stack begins populating it.