# 02-radarr.md

kstack:
  book: Centerpoint Home Lab
  chapter: Media Management
  page: Radarr
  tags: [radarr, movies, arr, media-management]
---

## Overview

Radarr is the movie counterpart to Sonarr. It monitors for new and existing movie
releases, searches indexers via Prowlarr, downloads via NZBGet, and moves completed
movies into the media library on UnRAID.

## Access

| Type      | URL                                    | Notes                                           |
|-----------|----------------------------------------|-------------------------------------------------|
| Internal  | `https://radarr.home.local`            | LAN access via Step-CA TLS                      |
| External  | `https://radarr.jeeves5454.ddns.net`   | Authentik SSO + GeoBlock + CrowdSec             |

## Configuration

**Image:** `lscr.io/linuxserver/radarr:latest`
**Compose project:** `arr` stack

### Traefik Labels

```yaml
# External route
traefik.http.routers.radarr-external.rule: Host(`radarr.jeeves5454.ddns.net`)
traefik.http.routers.radarr-external.entrypoints: websecure
traefik.http.routers.radarr-external.tls.certresolver: letsencrypt
traefik.http.routers.radarr-external.middlewares: authentik-auth@docker,plex-geoblock@file,crowdsec-bouncer@file
traefik.http.routers.radarr-external.service: radarr-svc

# Internal route
traefik.http.routers.radarr-internal.rule: Host(`radarr.home.local`)
traefik.http.routers.radarr-internal.entrypoints: websecure
traefik.http.routers.radarr-internal.tls.certresolver: step-ca
traefik.http.routers.radarr-internal.service: radarr-svc

traefik.http.services.radarr-svc.loadbalancer.server.port: 7878
```

## Volumes / Bind Mounts

| Host Path                              | Container Path  | Purpose                                |
|----------------------------------------|-----------------|----------------------------------------|
| `/home/jeeves/docker/arr/Radarr/config`| `/config`       | Radarr database and settings           |
| `/media/jeeves/1TB_Vol2/downloads`     | `/downloads`    | NZBGet download staging (Ceph OSD)     |
| `/mnt/Multimedia`                      | `/media`        | Final media library (NFS from UnRAID)  |

## Integration Points

| Service  | Connection Method                              | Purpose                  |
|----------|------------------------------------------------|--------------------------|
| Prowlarr | API (`http://prowlarr:9696`) via `media-network` | Indexer search         |
| NZBGet   | API (`http://nzbget:6789`) via `media-network`   | Download client        |
| Bazarr   | API (Bazarr polls Radarr)                      | Subtitle fetching        |
| Pulsarr  | Radarr webhook / API                           | Watchlist sync           |
| Seerr    | API                                            | Receives movie requests  |

## Notes / Gotchas

- Radarr root folder must be set to the path inside the container that maps to
  `/mnt/Multimedia/Movies` on the host.
- Hardlinking between `/downloads` and `/media` requires both paths to be on the
  same filesystem. The current setup has downloads on Ceph OSD and the final library
  on NFS — hardlinking is **not** possible across these. Radarr performs a copy+delete
  instead. This is slower but correct.
- Quality profiles are managed via Profilarr — avoid manual edits in Radarr UI.

---
*Last Updated: 2026-06-16*