mirror of
https://github.com/nickyeoman/docker-compose-cookbooks.git
synced 2026-09-03 18:36:22 +00:00
refactor: rewrite sonarr_dev to match template conventions
- Rename docker-compose.yml to compose.yaml - Add defaults, restart policy, and proxy network - Fix VOL_PATH to use base /data pattern - Rewrite README with new section order and Getting Started guide - Assume qBittorrent download client, Prowlarr indexer sync
This commit is contained in:
+77
-4
@@ -1,7 +1,80 @@
|
||||
# Sonarr
|
||||
|
||||
Official site: https://sonarr.tv/
|
||||
Proxy port: 8989
|
||||
composer example: https://hotio.dev/containers/sonarr/#__tabbed_1_2
|
||||
## Overview
|
||||
|
||||
Sonarr is a PVR (Personal Video Recorder) designed to automatically find, download, and manage your TV series collection. It monitors your favorite shows for new episodes and, once they are posted to your indexers, grabs them and sends them to your download client. After the download completes, Sonarr automatically renames the episode files to a clean and consistent format, sorts them into the appropriate series and season folders within your media library, and updates your media server (like Plex, Jellyfin, or Emby). It's also capable of searching for missing past episodes and automatically upgrading existing files to a higher quality when they become available, ensuring your collection is always complete and up-to-date.
|
||||
Sonarr is an automated TV series collection manager for Usenet and BitTorrent users. It monitors your shows for new episodes, scans configured indexers for releases, and sends matches to your download client. After download, it renames and organizes episodes into series/season folders and notifies your media server.
|
||||
|
||||
## Project Details
|
||||
|
||||
- **Project Repository:** [https://sonarr.tv/](https://sonarr.tv/)
|
||||
- **Container Image:** [ghcr.io/hotio/sonarr](https://hotio.dev/containers/sonarr/)
|
||||
- **Reverse Proxy Port:** `8989`
|
||||
|
||||
## Getting Started
|
||||
|
||||
Open http://localhost:8989 in your browser and complete the initial setup wizard:
|
||||
|
||||
1. **Choose your UI language**
|
||||
2. **Add a download client** — select qBittorrent, enter its host/port/credentials
|
||||
3. **Add an indexer** — or connect to Prowlarr for automatic indexer sync
|
||||
|
||||
Once the wizard finishes, you'll see an empty library. To populate it:
|
||||
|
||||
- Go to **Settings → Media Management** and add a **Root Folder** (e.g., `/tv`) — this is where your organized TV library will live
|
||||
- Click **Add Series** and search by title — Sonarr fetches metadata, posters, and available releases
|
||||
- Optionally connect a **List** (Trakt, IMDb, etc.) to auto-import series from your watchlists
|
||||
|
||||
### Download flow
|
||||
|
||||
qBittorrent downloads to its own directory → Sonarr picks it up, renames the file, and moves it into `<Root Folder>/Series Name/Season XX/`
|
||||
|
||||
## Environment Variable Notes
|
||||
|
||||
| Variable | Description |
|
||||
|---|---|
|
||||
| `SONARR_IMAGE` | Container image (default: `ghcr.io/hotio/sonarr:release`) |
|
||||
| `SONARR_RESTART` | Restart policy (default: `unless-stopped`) |
|
||||
| `SONARR_PORT` | Published port for the web UI (default: `8989`) |
|
||||
| `VOL_PATH` | Base path for persistent data volumes (default: `/data`) |
|
||||
| `TZ` | Container timezone (default: `America/Vancouver`) |
|
||||
|
||||
## Volume Notes
|
||||
|
||||
| Volume | Purpose |
|
||||
|---|---|
|
||||
| `${VOL_PATH:-/data}/sonarr/config` | Application configuration and database |
|
||||
| `${VOL_PATH:-/data}/sonarr/data` | Download client data and working directory |
|
||||
|
||||
## Network Notes
|
||||
|
||||
Requires an external `proxy` network. Create it once with:
|
||||
|
||||
```bash
|
||||
docker network create proxy
|
||||
```
|
||||
|
||||
## Docker Run
|
||||
|
||||
```bash
|
||||
docker run -d \
|
||||
--name=sonarr \
|
||||
-e PUID=1000 \
|
||||
-e PGID=1000 \
|
||||
-e UMASK=002 \
|
||||
-e TZ=America/Vancouver \
|
||||
-p 8989:8989 \
|
||||
-v ${VOL_PATH:-/data}/sonarr/config:/config \
|
||||
-v ${VOL_PATH:-/data}/sonarr/data:/data \
|
||||
--network proxy \
|
||||
--restart unless-stopped \
|
||||
ghcr.io/hotio/sonarr:release
|
||||
```
|
||||
|
||||
## Dockhand Stack, Deploy from Git
|
||||
|
||||
- **Cookbooks Repository**
|
||||
- **stackname:** sonarr_dev
|
||||
- **Compose file path:** sonarr_dev/compose.yaml
|
||||
- **Additional env file (optional):** sonarr_dev/sample.env
|
||||
|
||||
Load `sonarr_dev/sample.env` into the Environment variables in Dockhand, then create the Stack.
|
||||
|
||||
@@ -0,0 +1,20 @@
|
||||
services:
|
||||
sonarr:
|
||||
image: ${SONARR_IMAGE:-ghcr.io/hotio/sonarr:release}
|
||||
restart: ${SONARR_RESTART:-unless-stopped}
|
||||
volumes:
|
||||
- ${VOL_PATH:-/data}/sonarr/config:/config
|
||||
- ${VOL_PATH:-/data}/sonarr/data:/data
|
||||
environment:
|
||||
- PUID=1000
|
||||
- PGID=1000
|
||||
- UMASK=002
|
||||
- TZ=${TZ:-America/Vancouver}
|
||||
ports:
|
||||
- "${SONARR_PORT:-8989}:8989"
|
||||
networks:
|
||||
- proxy
|
||||
|
||||
networks:
|
||||
proxy:
|
||||
external: true
|
||||
@@ -1,13 +0,0 @@
|
||||
services:
|
||||
sonarr:
|
||||
image: ${SONARR_IMAGE}
|
||||
ports:
|
||||
- "8989:8989"
|
||||
environment:
|
||||
- PUID=1000
|
||||
- PGID=1000
|
||||
- UMASK=002
|
||||
- TZ=${TZ}
|
||||
volumes:
|
||||
- ${VOL_PATH}/sonarr/config:/config
|
||||
- ${VOL_PATH}/sonarr/data:/data
|
||||
@@ -1,4 +1,4 @@
|
||||
# Sonarr
|
||||
VOL_PATH=./data/sonarr/config
|
||||
VOL_PATH=/data
|
||||
SONARR_IMAGE=ghcr.io/hotio/sonarr:release
|
||||
TZ="America/Vancouver"
|
||||
|
||||
Reference in New Issue
Block a user