- Migrate all 127 non-reserved docs to OKF v0.1 frontmatter (type/description/tags/timestamp); fix 13 YAML issues, 2 duplicate-FM blocks, strip reserved-page FM - Restructure log.md to OKF (## YYYY-MM-DD, newest-first) - Fact-check against scripts/AGENTS.md ground truth: fix 6 false 'Active' banners on retired runbooks, 96->114 GiB GTT, deployment.md vs deploy-plan.py/deploy-remote.sh, Deployment Flow frank-medium=Quadlet, Calibre 9.9.0->9.15.0 + CVE-2025-7404 conflation, Copyparty v1.20.24, RomM 5.3.0 breaking change - Move *arr docs to new FrankBook-Pro/ section (git mv, link-safe) - Write active runbook bodies from ground truth (frank-large, frank-small) - Add 3 research briefs + HTML report: Local TTS and Voice Cloning, AI Job Search and Resume Tools, Most Popular Self-Hosted AI Apps (Jun-Sep 2026) - Add upstream-version rows to ComfyUI/OpenWebUI/Hermes app docs - All 336 tests pass; 136 pages, 0 unresolved wikilinks
77 lines
2.7 KiB
Markdown
77 lines
2.7 KiB
Markdown
---
|
|
type: reference
|
|
title: Sonarr
|
|
description: Sonarr TV manager in the *arr stack on FrankBook-Pro — live quadlet deployment, ports, volumes, and wiring facts.
|
|
tags: [sonarr, arr-stack, frankbook-pro]
|
|
timestamp: 2026-09-04T00:00:00Z
|
|
---
|
|
|
|
# Sonarr
|
|
|
|
Sonarr manages TV shows in the *arr stack. The stack runs on **FrankBook-Pro**
|
|
(the Mac mini) as quadlet units inside its podman machine — not on Dankserver.
|
|
It searches, downloads, and organizes episodes from indexers into the Jellyfin
|
|
TV library.
|
|
|
|
**Host:** FrankBook-Pro (podman machine) — **Access:** LAN-direct only at
|
|
`http://192.168.0.112:8989` — no vhost and no public DNS record by construction
|
|
(the brief unguarded `sonarr.franksdank.cloud` vhost was retired 2026-09-04;
|
|
users request TV via [[Seerr]], admins use this UI from the LAN) —
|
|
**Docs:** https://wiki.servarr.com/sonarr
|
|
|
|
## Facts
|
|
|
|
| Item | Value |
|
|
|------|-------|
|
|
| Image | `lscr.io/linuxserver/sonarr:latest` (v4 line) |
|
|
| Port | 8989 (host) → 8989 (container) |
|
|
| Env | `PUID=0`, `PGID=0`, `TZ=America/Los_Angeles`, `UMASK_SET=022` |
|
|
| Config root | `/Volumes/COMPLETE/sonarr-data:/config` |
|
|
| Min RAM | 512 MB |
|
|
| Metadata | TMDB / TVDB |
|
|
|
|
## Deployment (current)
|
|
|
|
Quadlet unit `sonarr.container` from this repo (`frankbook-pro/sonarr/quadlet/`)
|
|
is installed inside the podman machine at
|
|
`/home/core/.config/containers/systemd/sonarr.service` by the frankbook-pro
|
|
handler in `scripts/deploy-remote.sh`. Unit shape:
|
|
|
|
```ini
|
|
[Container]
|
|
ContainerName=sonarr
|
|
Image=lscr.io/linuxserver/sonarr:latest
|
|
Environment=PUID=0
|
|
Environment=PGID=0
|
|
Environment=TZ=America/Los_Angeles
|
|
Environment=UMASK_SET=022
|
|
Volume=/Volumes/COMPLETE/sonarr-data:/config
|
|
PublishPort=8989:8989
|
|
|
|
[Service]
|
|
TimeoutStartSec=900
|
|
Restart=always
|
|
```
|
|
|
|
## Configuration
|
|
|
|
1. Add Prowlarr as the indexer source (see [[Prowlarr]] — the feed route is `/{indexerId}/api`).
|
|
2. Add qBittorrent as the download client with the `tv` category ([[qBittorrent]]).
|
|
3. Set quality profile, cutoff, and minimum/maximum episode sizes.
|
|
4. Set the root folder to the TV root under the COMPLETE volume (Sonarr imports
|
|
from where [[qBittorrent]] drops completed downloads).
|
|
5. Add a test series and verify the grab → download → import chain end-to-end.
|
|
|
|
## Gotchas
|
|
|
|
- Sonarr v4 is the current stable. The v3 branch uses the `:v3` tag.
|
|
- Anime has different quality profiles and naming conventions than Standard series.
|
|
- Missing episodes: set "Unmonitor Missing Episodes" to auto-unmonitor old episodes.
|
|
- Timezone-sensitive scheduler: every unit in the stack runs
|
|
`TZ=America/Los_Angeles`; keep them uniform.
|
|
|
|
## See Also
|
|
|
|
- [[ARR-Stack]] — full *arr stack documentation
|
|
- [[Jellyfin]] — media server that consumes Sonarr downloads
|