Skip to content

Sonarr

compose/nas/sonarr.yml
# Portainer stack: sonarr
services:
  sonarr:
    image: lscr.io/linuxserver/sonarr:latest
    container_name: sonarr
    environment:
      - PUID=${PUID}
      - PGID=${PGID}
      - UMASK=002
      - TZ=${TZ}
    volumes:
      - /volume1/docker/sonarr:/config
      - /volume1/data:/data            # whole data tree = hardlinks + atomic moves
    ports:
      - 8989:8989
    restart: unless-stopped

Key settings

Area Setting
Media Management Root folder /data/media/tv. Use Hardlinks: ON. Rename episodes ON (TRaSH naming). No remote path mappings.
Download Clients qBittorrent at <NAS_IP>:8080, category tv, priority 1. Remove Completed/Failed ON.
Indexers Synced from Prowlarr (do not add them by hand)
Profiles Main: WEBDL (about 98% of series). WEB + Bluray 1080p for classic shows. Delay profile: prefer torrent, 90 min delay, bypass if highest quality.
Quality definitions Bluray-1080p min 15 MB/min
General → Security Allowed Hosts: localhost,127.0.0.1,<NAS_IP>,<container-name>. The value is read at startup, so restart after changing it. Any host not on the list gets 400 Invalid Hostname.
Connect Plex (library refresh on import)

Streaming-friendly profile (applied)

In the WEBDL profile, WEB 1080p is ranked above 2160p and Upgrade Until = WEB 1080p. 2160p is a fallback only, with the same size caps as Radarr. TRaSH's AV1 custom format is at −10000. Together these keep the library Direct-Playable. See Plex.