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:
2026-07-02 21:33:17 -07:00
parent d2b67fcc76
commit bd1fa2ab25
4 changed files with 98 additions and 18 deletions
+77 -4
View File
@@ -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.
+20
View File
@@ -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
-13
View File
@@ -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 -1
View File
@@ -1,4 +1,4 @@
# Sonarr
VOL_PATH=./data/sonarr/config
VOL_PATH=/data
SONARR_IMAGE=ghcr.io/hotio/sonarr:release
TZ="America/Vancouver"