Sonarr¶
| Description / name | Input element |
|---|---|
| Your domain name |
Overview¶
Sonarr is a smart Personal Video Recorder (PVR) designed for Usenet and BitTorrent users, automating the process of finding, downloading, and managing TV show episodes.
Deployment¶
sb install sonarr
Usage¶
Visit https://sonarr.iYOUR_DOMAIN_NAMEi.
Basics¶
Settings¶
Click on "Settings" in the sidebar. Click "Show Advanced" at the top of the Settings pane.
Make changes in the following sections:
Settings
These settings control management of media files.
-
"Rename Episodes":
Yes -
"Replace Illegal Characters":
Yes -
Set your preferred naming format; here are some examples:
TRaSH' naming guide [Recommended]
Go to the TRaSH Guides Sonarr naming scheme for the latest updates. These examples may be out of date.
Example:
Single Episode: The Series Title! (2010) - S01E01 - Episode Title 1 [AMZN WEBDL-1080p Proper][HDR][10bit][x264][DTS 5.1]-RlsGrp Multi Episode: The Series Title! (2010) - S01E01-E02-E03 - Episode Title [AMZN WEBDL-1080p Proper][HDR][10bit][x264][DTS 5.1]-RlsGrpStandard Episode Format:
{Series TitleYear} - S{season:00}E{episode:00} - {Episode CleanTitle} [{Preferred Words }{Quality Full}]{[MediaInfo VideoDynamicRange]}[{MediaInfo VideoBitDepth}bit]{[MediaInfo VideoCodec]}{[Mediainfo AudioCodec}{ Mediainfo AudioChannels]}{MediaInfo AudioLanguages}{-Release Group}for more examples and discussion see the reference: https://trash-guides.info/Sonarr/Sonarr-recommended-naming-scheme/
The TRaSH naming guide is recommended since some other tools, notably Kometa, expect it in their default setup.
Plex's Naming Preference
Example:
/Gotham/Season 01/Gotham - s01e01 - Pilot.mkvStandard Episode Format:
{Series Title} - s{season:00}e{episode:00} - {Episode Title}Anime Episode Format:
{Series Title} - s{season:00}e{episode:00} - {Episode Title}Daily Episode Format:
{Series Title} - {Air-Date} - {Episode Title}Season Folder Format:
Season {season:00}Multi-Episode Style:
Prefixed RangeReference: https://support.plex.tv/articles/200220687-naming-series-season-based-tv-shows/
-
"Create empty series folders":
No -
"Delete empty folders":
No
-
"Skip Free Space Check":
No -
"Use Hardlinks instead of Copy":
Yes -
"Import Extra Files":
Yes(can be your preference) -
"Extra File Extensions":
srt, sub, idx
-
"Ignore Deleted Episodes":
No(can be your preference) -
"Download Propers":
No(can be your preference) -
"Analyse video files":
No -
"Change File Date":
None -
"Recycle Bin": blank (Rclone deletes are sent to Gdrive trash folder, anyway)
- Set Permissions:
No
- Click "Save".
These settings control indexers and related behavior.
-
Click Add Indexer (
+). -
Select "Newznab".
-
Add the following:
Name: NZBHydra2
Enable RSS Sync: Your Preference
Enable Search: Your Preference
URL:
http://nzbhydra2:5076API Key: Your NZBHydra2 API Key
Additional Parameters: Leave Blank
-
Your settings will look like this:
-
Click "Save" to add NZBHydra2.
Note: The "Test" will keep failing until you add an indexer in NZBHydra2.
Note: Each Indexer you have defined in Jackett will need to be added separately.
-
Click Add Indexer (
+) -
Select "Torznab".
-
Add the following:
Name: Indexer Name
Enable RSS Sync: Your Preference
Enable Search: Your Preference
API Key: Your Jackett API Key
Additional Parameters: Leave Blank
-
Your settings will look like this:
-
Click "Save" to add the indexer.
These settings control downloading behavior and clients.
-
"Enable":
Yes -
"Remove":
Yes(can be your preference)
-
"Redownload":
Yes -
"Remove":
Yes
-
Click Add (
+) -
Add a new "NZBGet" download client.
-
Add the following:
Name: NZBGet
Enable:
YesHost:
nzbgetPort:
6789Username: Your NZBGet Username
Password: Your NZBGet Password
Category:
sonarrUse SSL:
NoAdd Paused:
No -
Your settings will look like this:
-
Click "Save" to add NZBGet.
-
Click Add (
+) -
Add a new "SABNzbd" download client.
-
Add the following:
Name: SABNzbd
Enable:
YesHost:
sabnzbdPort:
8080For authentication, you can use either an API key or a username/password.
API Key: Your SABNzbd API Key
Username: Your SABNzbd Username
Password: Your SABNzbd Password
Category:
sonarrUse SSL:
NoAdd Paused:
No -
Your settings will look like this:
Either API Key OR Username/Password should be filled in, not both
-
Click "Save" to add SABNzbd.
-
Click Add (
+) -
Add a new "rTorrent" download client.
-
Add the following:
Name: ruTorrent
Enable:
YesHost:
rutorrentPort:
80URL Path:
RPC2Use SSL:
NoUsername: Your ruTorrent Username
Password: Your ruTorrent Password
Category:
sonarrDirectory: Leave Blank
-
Your settings will now look like this:
-
Click "Save" to add ruTorrent.
-
Click Add ('+')
-
Add a new "qBittorrent" download client.
-
Add the following:
Name: qBittorrent
Enable: 'Yes'
Host: 'qBittorrent'
Port: '8080'
Username: Your qBittorrent Username
Password: Your qBittorrent Password
Category: 'sonarr'
-
Your settings will now look like this:
-
Click "Save" to add qBittorrent
These settings control connections to other applications or systems.
Torrent Cleanup Script is a custom script that will cleanup torrents from ruTorrent that were auto-extracted, but still being seeded. So if the script detects that .rar files are in the folder that Sonarr just imported from, it will delete the imported video file(s), leaving just the .rar files for seeding.
IMPORTANT: The Sonarr UI may differ from what is shown here; there may be additional events listed in the UI.
GENERALLY SPEAKING, if you have events listed that are not explicitly listed below, LEAVE THEM UNCHECKED. Such events will generate errors in the autoscan logs; those errors can be ignored, but they are errors and can cause panic and confusion.
MORE SPECIFICALLY, Autoscan is expecting a request that points to an individual file that is ready for Plex. so any event you may have that refers to a show being added, manual intervention, or anything else that is not "this specific video file ON DISK was imported/upgraded/deleted/etc", LEAVE IT UNCHECKED.
-
Click "Settings" -> "Connect".
-
Add a new "Webhook".
-
Add the following:
Name: Autoscan
On Grab:
NoOn Import:
YesOn Upgrade:
YesOn Rename:
YesOn Series Delete:
YesOn Episode File Delete:
YesOn Episode File Delete For Upgrade:
YesTags: Leave Blank
URL:
http://autoscan:3030/triggers/sonarrMethod:
POSTUsername: AS SET IN AUTOSCAN CONFIG [defaults to Saltbox Username]
Password: AS SET IN AUTOSCAN CONFIG [defaults to Saltbox Password]
-
The settings will look like this:
-
Click "Save" to add Autoscan.
These settings control general aspects of Sonarr.
-
"Bind Address:
* -
"Port Number":
8989 -
"URL Base": blank
-
"Enable SSL":
No(SSL is handled by Traefik)
- "Use Proxy":
No
- "Log Level":
Debug
- "Enable":
No(your preference)
These settings may be grayed out or unavailable; skip this if that's the case.
-
"Branch":
main -
"Automatic":
Off
- Click "Save".
TV Path¶
-
When you are ready to add your first show to Sonarr, click the "Root Path" drop-down and select "Add a different path".
-
Click the blue "Browse" button, navigate to
/mnt/unionfs/Media/TV, scroll to the bottom, and select "OK". -
Click the green "check" button to add the path.
-
All TV shows added now will have that path set.
API Key¶
This is used during the setup of Overseer and Organizr.
- Go to "Settings" -> "General" -> "Security" -> "API Key".
Guides¶
Next¶
Are you setting Saltbox up for the first time?
Role Defaults¶
Use the Inventory to customize variables. (1)
-
This role supports multiple instances via
sonarr_instances.Example override
sonarr_role_web_subdomain: "custom"Applies to all instances of sonarr
sonarr2_web_subdomain: "custom2"Applies to the instance named sonarr2
Avoid overriding variables ending in
_defaultWhen overriding variables that end in
_default(likesonarr_docker_envs_default), you replace the entire default configuration. Future updates that add new default values will not be applied to your setup, potentially breaking functionality.Instead, use the corresponding
_customvariable (likesonarr_docker_envs_custom) to add your changes. Custom values are merged with defaults, ensuring you receive updates.
sonarr_instances
# Type: list
sonarr_instances: ["sonarr"]
Example Override
# Type: list
sonarr_instances: ["sonarr", "sonarr2"]
sonarr_role_external_authsonarr2_external_auth
# Type: bool (true/false)
sonarr_role_external_auth: true
# Type: bool (true/false)
sonarr2_external_auth: true
sonarr_role_web_subdomainsonarr2_web_subdomain
# Type: string
sonarr_role_web_subdomain: "{{ sonarr_name }}"
# Type: string
sonarr2_web_subdomain: "{{ sonarr_name }}"
sonarr_role_web_domainsonarr2_web_domain
# Type: string
sonarr_role_web_domain: "{{ user.domain }}"
# Type: string
sonarr2_web_domain: "{{ user.domain }}"
sonarr_role_web_portsonarr2_web_port
# Type: string
sonarr_role_web_port: "8989"
# Type: string
sonarr2_web_port: "8989"
sonarr_role_web_urlsonarr2_web_url
# Type: string
sonarr_role_web_url: "{{ 'https://' + (lookup('role_var', '_web_subdomain', role='sonarr') + '.' + lookup('role_var', '_web_domain', role='sonarr')
if (lookup('role_var', '_web_subdomain', role='sonarr') | length > 0)
else lookup('role_var', '_web_domain', role='sonarr')) }}"
# Type: string
sonarr2_web_url: "{{ 'https://' + (lookup('role_var', '_web_subdomain', role='sonarr') + '.' + lookup('role_var', '_web_domain', role='sonarr')
if (lookup('role_var', '_web_subdomain', role='sonarr') | length > 0)
else lookup('role_var', '_web_domain', role='sonarr')) }}"
sonarr_role_dns_recordsonarr2_dns_record
# Type: string
sonarr_role_dns_record: "{{ lookup('role_var', '_web_subdomain', role='sonarr') }}"
# Type: string
sonarr2_dns_record: "{{ lookup('role_var', '_web_subdomain', role='sonarr') }}"
sonarr_role_dns_zonesonarr2_dns_zone
# Type: string
sonarr_role_dns_zone: "{{ lookup('role_var', '_web_domain', role='sonarr') }}"
# Type: string
sonarr2_dns_zone: "{{ lookup('role_var', '_web_domain', role='sonarr') }}"
sonarr_role_dns_proxysonarr2_dns_proxy
# Type: bool (true/false)
sonarr_role_dns_proxy: "{{ dns_proxied }}"
# Type: bool (true/false)
sonarr2_dns_proxy: "{{ dns_proxied }}"
sonarr_role_traefik_sso_middlewaresonarr2_traefik_sso_middleware
# Type: string
sonarr_role_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"
# Type: string
sonarr2_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"
sonarr_role_traefik_middleware_defaultsonarr2_traefik_middleware_default
# Type: string
sonarr_role_traefik_middleware_default: "{{ traefik_default_middleware
+ (',themepark-' + sonarr_name
if (lookup('role_var', '_themepark_enabled', role='sonarr') and global_themepark_plugin_enabled)
else '') }}"
# Type: string
sonarr2_traefik_middleware_default: "{{ traefik_default_middleware
+ (',themepark-' + sonarr_name
if (lookup('role_var', '_themepark_enabled', role='sonarr') and global_themepark_plugin_enabled)
else '') }}"
sonarr_role_traefik_middleware_customsonarr2_traefik_middleware_custom
# Type: string
sonarr_role_traefik_middleware_custom: ""
# Type: string
sonarr2_traefik_middleware_custom: ""
sonarr_role_traefik_certresolversonarr2_traefik_certresolver
# Type: string
sonarr_role_traefik_certresolver: "{{ traefik_default_certresolver }}"
# Type: string
sonarr2_traefik_certresolver: "{{ traefik_default_certresolver }}"
sonarr_role_traefik_enabledsonarr2_traefik_enabled
# Type: bool (true/false)
sonarr_role_traefik_enabled: true
# Type: bool (true/false)
sonarr2_traefik_enabled: true
sonarr_role_traefik_api_enabledsonarr2_traefik_api_enabled
# Type: bool (true/false)
sonarr_role_traefik_api_enabled: true
# Type: bool (true/false)
sonarr2_traefik_api_enabled: true
sonarr_role_traefik_api_endpointsonarr2_traefik_api_endpoint
# Type: string
sonarr_role_traefik_api_endpoint: "PathPrefix(`/api`) || PathPrefix(`/feed`) || PathPrefix(`/ping`)"
# Type: string
sonarr2_traefik_api_endpoint: "PathPrefix(`/api`) || PathPrefix(`/feed`) || PathPrefix(`/ping`)"
sonarr_role_themepark_enabledsonarr2_themepark_enabled
# Options can be found at https://github.com/themepark-dev/theme.park
# Type: bool (true/false)
sonarr_role_themepark_enabled: false
# Options can be found at https://github.com/themepark-dev/theme.park
# Type: bool (true/false)
sonarr2_themepark_enabled: false
sonarr_role_themepark_appsonarr2_themepark_app
# Type: string
sonarr_role_themepark_app: "sonarr"
# Type: string
sonarr2_themepark_app: "sonarr"
sonarr_role_themepark_themesonarr2_themepark_theme
# Type: string
sonarr_role_themepark_theme: "{{ global_themepark_theme }}"
# Type: string
sonarr2_themepark_theme: "{{ global_themepark_theme }}"
sonarr_role_themepark_domainsonarr2_themepark_domain
# Type: string
sonarr_role_themepark_domain: "{{ global_themepark_domain }}"
# Type: string
sonarr2_themepark_domain: "{{ global_themepark_domain }}"
sonarr_role_themepark_addonssonarr2_themepark_addons
# Type: list
sonarr_role_themepark_addons: []
# Type: list
sonarr2_themepark_addons: []
Container
sonarr_role_docker_containersonarr2_docker_container
# Type: string
sonarr_role_docker_container: "{{ sonarr_name }}"
# Type: string
sonarr2_docker_container: "{{ sonarr_name }}"
Image
sonarr_role_docker_image_pullsonarr2_docker_image_pull
# Type: bool (true/false)
sonarr_role_docker_image_pull: true
# Type: bool (true/false)
sonarr2_docker_image_pull: true
sonarr_role_docker_image_reposonarr2_docker_image_repo
# Type: string
sonarr_role_docker_image_repo: "ghcr.io/hotio/sonarr"
# Type: string
sonarr2_docker_image_repo: "ghcr.io/hotio/sonarr"
sonarr_role_docker_image_tagsonarr2_docker_image_tag
# Type: string
sonarr_role_docker_image_tag: "release"
# Type: string
sonarr2_docker_image_tag: "release"
sonarr_role_docker_imagesonarr2_docker_image
# Type: string
sonarr_role_docker_image: "{{ lookup('role_var', '_docker_image_repo', role='sonarr') }}:{{ lookup('role_var', '_docker_image_tag', role='sonarr') }}"
# Type: string
sonarr2_docker_image: "{{ lookup('role_var', '_docker_image_repo', role='sonarr') }}:{{ lookup('role_var', '_docker_image_tag', role='sonarr') }}"
Envs
sonarr_role_docker_envs_defaultsonarr2_docker_envs_default
# Type: dict
sonarr_role_docker_envs_default:
PUID: "{{ uid }}"
PGID: "{{ gid }}"
UMASK: "002"
TZ: "{{ tz }}"
# Type: dict
sonarr2_docker_envs_default:
PUID: "{{ uid }}"
PGID: "{{ gid }}"
UMASK: "002"
TZ: "{{ tz }}"
sonarr_role_docker_envs_customsonarr2_docker_envs_custom
# Type: dict
sonarr_role_docker_envs_custom: {}
# Type: dict
sonarr2_docker_envs_custom: {}
Volumes
sonarr_role_docker_volumes_defaultsonarr2_docker_volumes_default
# Type: list
sonarr_role_docker_volumes_default:
- "{{ sonarr_role_paths_location }}:/config"
- "{{ server_appdata_path }}/scripts:/scripts"
# Type: list
sonarr2_docker_volumes_default:
- "{{ sonarr_role_paths_location }}:/config"
- "{{ server_appdata_path }}/scripts:/scripts"
sonarr_role_docker_volumes_legacysonarr2_docker_volumes_legacy
# Type: list
sonarr_role_docker_volumes_legacy:
- "/mnt/unionfs/Media/TV:/tv"
# Type: list
sonarr2_docker_volumes_legacy:
- "/mnt/unionfs/Media/TV:/tv"
sonarr_role_docker_volumes_customsonarr2_docker_volumes_custom
# Type: list
sonarr_role_docker_volumes_custom: []
# Type: list
sonarr2_docker_volumes_custom: []
Labels
sonarr_role_docker_labels_defaultsonarr2_docker_labels_default
# Type: dict
sonarr_role_docker_labels_default: {}
# Type: dict
sonarr2_docker_labels_default: {}
sonarr_role_docker_labels_customsonarr2_docker_labels_custom
# Type: dict
sonarr_role_docker_labels_custom: {}
# Type: dict
sonarr2_docker_labels_custom: {}
Hostname
sonarr_role_docker_hostnamesonarr2_docker_hostname
# Type: string
sonarr_role_docker_hostname: "{{ sonarr_name }}"
# Type: string
sonarr2_docker_hostname: "{{ sonarr_name }}"
Networks
sonarr_role_docker_networks_aliassonarr2_docker_networks_alias
# Type: string
sonarr_role_docker_networks_alias: "{{ sonarr_name }}"
# Type: string
sonarr2_docker_networks_alias: "{{ sonarr_name }}"
sonarr_role_docker_networks_defaultsonarr2_docker_networks_default
# Type: list
sonarr_role_docker_networks_default: []
# Type: list
sonarr2_docker_networks_default: []
sonarr_role_docker_networks_customsonarr2_docker_networks_custom
# Type: list
sonarr_role_docker_networks_custom: []
# Type: list
sonarr2_docker_networks_custom: []
Restart Policy
sonarr_role_docker_restart_policysonarr2_docker_restart_policy
# Type: string
sonarr_role_docker_restart_policy: unless-stopped
# Type: string
sonarr2_docker_restart_policy: unless-stopped
State
sonarr_role_docker_statesonarr2_docker_state
# Type: string
sonarr_role_docker_state: started
# Type: string
sonarr2_docker_state: started
The following advanced options are available via create_docker_container but are not defined in the role. See: docker_container module
Resource Limits
sonarr_role_docker_blkio_weightsonarr2_docker_blkio_weight
# Type: int
sonarr_role_docker_blkio_weight:
# Type: int
sonarr2_docker_blkio_weight:
sonarr_role_docker_cpu_periodsonarr2_docker_cpu_period
# Type: int
sonarr_role_docker_cpu_period:
# Type: int
sonarr2_docker_cpu_period:
sonarr_role_docker_cpu_quotasonarr2_docker_cpu_quota
# Type: int
sonarr_role_docker_cpu_quota:
# Type: int
sonarr2_docker_cpu_quota:
sonarr_role_docker_cpu_sharessonarr2_docker_cpu_shares
# Type: int
sonarr_role_docker_cpu_shares:
# Type: int
sonarr2_docker_cpu_shares:
sonarr_role_docker_cpussonarr2_docker_cpus
# Type: string
sonarr_role_docker_cpus:
# Type: string
sonarr2_docker_cpus:
sonarr_role_docker_cpuset_cpussonarr2_docker_cpuset_cpus
# Type: string
sonarr_role_docker_cpuset_cpus:
# Type: string
sonarr2_docker_cpuset_cpus:
sonarr_role_docker_cpuset_memssonarr2_docker_cpuset_mems
# Type: string
sonarr_role_docker_cpuset_mems:
# Type: string
sonarr2_docker_cpuset_mems:
sonarr_role_docker_kernel_memorysonarr2_docker_kernel_memory
# Type: string
sonarr_role_docker_kernel_memory:
# Type: string
sonarr2_docker_kernel_memory:
sonarr_role_docker_memorysonarr2_docker_memory
# Type: string
sonarr_role_docker_memory:
# Type: string
sonarr2_docker_memory:
sonarr_role_docker_memory_reservationsonarr2_docker_memory_reservation
# Type: string
sonarr_role_docker_memory_reservation:
# Type: string
sonarr2_docker_memory_reservation:
sonarr_role_docker_memory_swapsonarr2_docker_memory_swap
# Type: string
sonarr_role_docker_memory_swap:
# Type: string
sonarr2_docker_memory_swap:
sonarr_role_docker_memory_swappinesssonarr2_docker_memory_swappiness
# Type: int
sonarr_role_docker_memory_swappiness:
# Type: int
sonarr2_docker_memory_swappiness:
sonarr_role_docker_shm_sizesonarr2_docker_shm_size
# Type: string
sonarr_role_docker_shm_size:
# Type: string
sonarr2_docker_shm_size:
Security & Devices
sonarr_role_docker_cap_dropsonarr2_docker_cap_drop
# Type: list
sonarr_role_docker_cap_drop:
# Type: list
sonarr2_docker_cap_drop:
sonarr_role_docker_cgroupns_modesonarr2_docker_cgroupns_mode
# Type: string
sonarr_role_docker_cgroupns_mode:
# Type: string
sonarr2_docker_cgroupns_mode:
sonarr_role_docker_device_cgroup_rulessonarr2_docker_device_cgroup_rules
# Type: list
sonarr_role_docker_device_cgroup_rules:
# Type: list
sonarr2_docker_device_cgroup_rules:
sonarr_role_docker_device_read_bpssonarr2_docker_device_read_bps
# Type: list
sonarr_role_docker_device_read_bps:
# Type: list
sonarr2_docker_device_read_bps:
sonarr_role_docker_device_read_iopssonarr2_docker_device_read_iops
# Type: list
sonarr_role_docker_device_read_iops:
# Type: list
sonarr2_docker_device_read_iops:
sonarr_role_docker_device_requestssonarr2_docker_device_requests
# Type: list
sonarr_role_docker_device_requests:
# Type: list
sonarr2_docker_device_requests:
sonarr_role_docker_device_write_bpssonarr2_docker_device_write_bps
# Type: list
sonarr_role_docker_device_write_bps:
# Type: list
sonarr2_docker_device_write_bps:
sonarr_role_docker_device_write_iopssonarr2_docker_device_write_iops
# Type: list
sonarr_role_docker_device_write_iops:
# Type: list
sonarr2_docker_device_write_iops:
sonarr_role_docker_devicessonarr2_docker_devices
# Type: list
sonarr_role_docker_devices:
# Type: list
sonarr2_docker_devices:
sonarr_role_docker_devices_defaultsonarr2_docker_devices_default
# Type: string
sonarr_role_docker_devices_default:
# Type: string
sonarr2_docker_devices_default:
sonarr_role_docker_groupssonarr2_docker_groups
# Type: list
sonarr_role_docker_groups:
# Type: list
sonarr2_docker_groups:
sonarr_role_docker_privilegedsonarr2_docker_privileged
# Type: bool (true/false)
sonarr_role_docker_privileged:
# Type: bool (true/false)
sonarr2_docker_privileged:
sonarr_role_docker_security_optssonarr2_docker_security_opts
# Type: list
sonarr_role_docker_security_opts:
# Type: list
sonarr2_docker_security_opts:
sonarr_role_docker_usersonarr2_docker_user
# Type: string
sonarr_role_docker_user:
# Type: string
sonarr2_docker_user:
sonarr_role_docker_userns_modesonarr2_docker_userns_mode
# Type: string
sonarr_role_docker_userns_mode:
# Type: string
sonarr2_docker_userns_mode:
Networking
sonarr_role_docker_dns_optssonarr2_docker_dns_opts
# Type: list
sonarr_role_docker_dns_opts:
# Type: list
sonarr2_docker_dns_opts:
sonarr_role_docker_dns_search_domainssonarr2_docker_dns_search_domains
# Type: list
sonarr_role_docker_dns_search_domains:
# Type: list
sonarr2_docker_dns_search_domains:
sonarr_role_docker_dns_serverssonarr2_docker_dns_servers
# Type: list
sonarr_role_docker_dns_servers:
# Type: list
sonarr2_docker_dns_servers:
sonarr_role_docker_domainnamesonarr2_docker_domainname
# Type: string
sonarr_role_docker_domainname:
# Type: string
sonarr2_docker_domainname:
sonarr_role_docker_exposed_portssonarr2_docker_exposed_ports
# Type: list
sonarr_role_docker_exposed_ports:
# Type: list
sonarr2_docker_exposed_ports:
sonarr_role_docker_hostssonarr2_docker_hosts
# Type: dict
sonarr_role_docker_hosts:
# Type: dict
sonarr2_docker_hosts:
sonarr_role_docker_hosts_use_commonsonarr2_docker_hosts_use_common
# Type: bool (true/false)
sonarr_role_docker_hosts_use_common:
# Type: bool (true/false)
sonarr2_docker_hosts_use_common:
sonarr_role_docker_ipc_modesonarr2_docker_ipc_mode
# Type: string
sonarr_role_docker_ipc_mode:
# Type: string
sonarr2_docker_ipc_mode:
sonarr_role_docker_linkssonarr2_docker_links
# Type: list
sonarr_role_docker_links:
# Type: list
sonarr2_docker_links:
sonarr_role_docker_network_modesonarr2_docker_network_mode
# Type: string
sonarr_role_docker_network_mode:
# Type: string
sonarr2_docker_network_mode:
sonarr_role_docker_pid_modesonarr2_docker_pid_mode
# Type: string
sonarr_role_docker_pid_mode:
# Type: string
sonarr2_docker_pid_mode:
sonarr_role_docker_portssonarr2_docker_ports
# Type: list
sonarr_role_docker_ports:
# Type: list
sonarr2_docker_ports:
sonarr_role_docker_utssonarr2_docker_uts
# Type: string
sonarr_role_docker_uts:
# Type: string
sonarr2_docker_uts:
Storage
sonarr_role_docker_keep_volumessonarr2_docker_keep_volumes
# Type: bool (true/false)
sonarr_role_docker_keep_volumes:
# Type: bool (true/false)
sonarr2_docker_keep_volumes:
sonarr_role_docker_mountssonarr2_docker_mounts
# Type: list
sonarr_role_docker_mounts:
# Type: list
sonarr2_docker_mounts:
sonarr_role_docker_storage_optssonarr2_docker_storage_opts
# Type: dict
sonarr_role_docker_storage_opts:
# Type: dict
sonarr2_docker_storage_opts:
sonarr_role_docker_tmpfssonarr2_docker_tmpfs
# Type: list
sonarr_role_docker_tmpfs:
# Type: list
sonarr2_docker_tmpfs:
sonarr_role_docker_volume_driversonarr2_docker_volume_driver
# Type: string
sonarr_role_docker_volume_driver:
# Type: string
sonarr2_docker_volume_driver:
sonarr_role_docker_volumes_fromsonarr2_docker_volumes_from
# Type: list
sonarr_role_docker_volumes_from:
# Type: list
sonarr2_docker_volumes_from:
sonarr_role_docker_volumes_globalsonarr2_docker_volumes_global
# Type: bool (true/false)
sonarr_role_docker_volumes_global:
# Type: bool (true/false)
sonarr2_docker_volumes_global:
sonarr_role_docker_working_dirsonarr2_docker_working_dir
# Type: string
sonarr_role_docker_working_dir:
# Type: string
sonarr2_docker_working_dir:
Monitoring & Lifecycle
sonarr_role_docker_auto_removesonarr2_docker_auto_remove
# Type: bool (true/false)
sonarr_role_docker_auto_remove:
# Type: bool (true/false)
sonarr2_docker_auto_remove:
sonarr_role_docker_cleanupsonarr2_docker_cleanup
# Type: bool (true/false)
sonarr_role_docker_cleanup:
# Type: bool (true/false)
sonarr2_docker_cleanup:
sonarr_role_docker_force_killsonarr2_docker_force_kill
# Type: string
sonarr_role_docker_force_kill:
# Type: string
sonarr2_docker_force_kill:
sonarr_role_docker_healthchecksonarr2_docker_healthcheck
# Type: dict
sonarr_role_docker_healthcheck:
# Type: dict
sonarr2_docker_healthcheck:
sonarr_role_docker_healthy_wait_timeoutsonarr2_docker_healthy_wait_timeout
# Type: int
sonarr_role_docker_healthy_wait_timeout:
# Type: int
sonarr2_docker_healthy_wait_timeout:
sonarr_role_docker_initsonarr2_docker_init
# Type: bool (true/false)
sonarr_role_docker_init:
# Type: bool (true/false)
sonarr2_docker_init:
sonarr_role_docker_kill_signalsonarr2_docker_kill_signal
# Type: string
sonarr_role_docker_kill_signal:
# Type: string
sonarr2_docker_kill_signal:
sonarr_role_docker_log_driversonarr2_docker_log_driver
# Type: string
sonarr_role_docker_log_driver:
# Type: string
sonarr2_docker_log_driver:
sonarr_role_docker_log_optionssonarr2_docker_log_options
# Type: dict
sonarr_role_docker_log_options:
# Type: dict
sonarr2_docker_log_options:
sonarr_role_docker_oom_killersonarr2_docker_oom_killer
# Type: bool (true/false)
sonarr_role_docker_oom_killer:
# Type: bool (true/false)
sonarr2_docker_oom_killer:
sonarr_role_docker_oom_score_adjsonarr2_docker_oom_score_adj
# Type: int
sonarr_role_docker_oom_score_adj:
# Type: int
sonarr2_docker_oom_score_adj:
sonarr_role_docker_output_logssonarr2_docker_output_logs
# Type: bool (true/false)
sonarr_role_docker_output_logs:
# Type: bool (true/false)
sonarr2_docker_output_logs:
sonarr_role_docker_pausedsonarr2_docker_paused
# Type: bool (true/false)
sonarr_role_docker_paused:
# Type: bool (true/false)
sonarr2_docker_paused:
sonarr_role_docker_recreatesonarr2_docker_recreate
# Type: bool (true/false)
sonarr_role_docker_recreate:
# Type: bool (true/false)
sonarr2_docker_recreate:
sonarr_role_docker_restart_retriessonarr2_docker_restart_retries
# Type: int
sonarr_role_docker_restart_retries:
# Type: int
sonarr2_docker_restart_retries:
sonarr_role_docker_stop_timeoutsonarr2_docker_stop_timeout
# Type: int
sonarr_role_docker_stop_timeout:
# Type: int
sonarr2_docker_stop_timeout:
Other Options
sonarr_role_docker_capabilitiessonarr2_docker_capabilities
# Type: list
sonarr_role_docker_capabilities:
# Type: list
sonarr2_docker_capabilities:
sonarr_role_docker_cgroup_parentsonarr2_docker_cgroup_parent
# Type: string
sonarr_role_docker_cgroup_parent:
# Type: string
sonarr2_docker_cgroup_parent:
sonarr_role_docker_commandssonarr2_docker_commands
# Type: list
sonarr_role_docker_commands:
# Type: list
sonarr2_docker_commands:
sonarr_role_docker_create_timeoutsonarr2_docker_create_timeout
# Type: int
sonarr_role_docker_create_timeout:
# Type: int
sonarr2_docker_create_timeout:
sonarr_role_docker_entrypointsonarr2_docker_entrypoint
# Type: string
sonarr_role_docker_entrypoint:
# Type: string
sonarr2_docker_entrypoint:
sonarr_role_docker_env_filesonarr2_docker_env_file
# Type: string
sonarr_role_docker_env_file:
# Type: string
sonarr2_docker_env_file:
sonarr_role_docker_labels_use_commonsonarr2_docker_labels_use_common
# Type: bool (true/false)
sonarr_role_docker_labels_use_common:
# Type: bool (true/false)
sonarr2_docker_labels_use_common:
sonarr_role_docker_read_onlysonarr2_docker_read_only
# Type: bool (true/false)
sonarr_role_docker_read_only:
# Type: bool (true/false)
sonarr2_docker_read_only:
sonarr_role_docker_runtimesonarr2_docker_runtime
# Type: string
sonarr_role_docker_runtime:
# Type: string
sonarr2_docker_runtime:
sonarr_role_docker_sysctlssonarr2_docker_sysctls
# Type: list
sonarr_role_docker_sysctls:
# Type: list
sonarr2_docker_sysctls:
sonarr_role_docker_ulimitssonarr2_docker_ulimits
# Type: list
sonarr_role_docker_ulimits:
# Type: list
sonarr2_docker_ulimits:
sonarr_role_autoheal_enabledsonarr2_autoheal_enabled
# Enable or disable Autoheal monitoring for containers created when deploying
# Type: bool (true/false)
sonarr_role_autoheal_enabled: true
# Enable or disable Autoheal monitoring for containers created when deploying
# Type: bool (true/false)
sonarr2_autoheal_enabled: true
sonarr_role_depends_onsonarr2_depends_on
# List of container dependencies that must be running before containers start
# Type: string
sonarr_role_depends_on: ""
# List of container dependencies that must be running before containers start
# Type: string
sonarr2_depends_on: ""
sonarr_role_depends_on_delaysonarr2_depends_on_delay
# Delay in seconds before starting containers after dependencies are ready
# Type: string (quoted number)
sonarr_role_depends_on_delay: "0"
# Delay in seconds before starting containers after dependencies are ready
# Type: string (quoted number)
sonarr2_depends_on_delay: "0"
sonarr_role_depends_on_healthcheckssonarr2_depends_on_healthchecks
# Enable healthcheck waiting for container dependencies
# Type: string ("true"/"false")
sonarr_role_depends_on_healthchecks:
# Enable healthcheck waiting for container dependencies
# Type: string ("true"/"false")
sonarr2_depends_on_healthchecks:
sonarr_role_diun_enabledsonarr2_diun_enabled
# Enable or disable Diun update notifications for containers created when deploying
# Type: bool (true/false)
sonarr_role_diun_enabled: true
# Enable or disable Diun update notifications for containers created when deploying
# Type: bool (true/false)
sonarr2_diun_enabled: true
sonarr_role_dns_enabledsonarr2_dns_enabled
# Enable or disable automatic DNS record creation for containers
# Type: bool (true/false)
sonarr_role_dns_enabled: true
# Enable or disable automatic DNS record creation for containers
# Type: bool (true/false)
sonarr2_dns_enabled: true
sonarr_role_docker_controllersonarr2_docker_controller
# Enable or disable Saltbox Docker Controller management for containers
# Type: bool (true/false)
sonarr_role_docker_controller: true
# Enable or disable Saltbox Docker Controller management for containers
# Type: bool (true/false)
sonarr2_docker_controller: true
sonarr_role_docker_image_reposonarr2_docker_image_repo
# Type: string
sonarr_role_docker_image_repo:
# Type: string
sonarr2_docker_image_repo:
sonarr_role_docker_image_tagsonarr2_docker_image_tag
# Type: string
sonarr_role_docker_image_tag:
# Type: string
sonarr2_docker_image_tag:
sonarr_role_docker_volumes_downloadsonarr2_docker_volumes_download
# Type: bool (true/false)
sonarr_role_docker_volumes_download:
# Type: bool (true/false)
sonarr2_docker_volumes_download:
sonarr_role_themepark_addonssonarr2_themepark_addons
# Type: string
sonarr_role_themepark_addons:
# Type: string
sonarr2_themepark_addons:
sonarr_role_themepark_appsonarr2_themepark_app
# Type: string
sonarr_role_themepark_app:
# Type: string
sonarr2_themepark_app:
sonarr_role_themepark_enabledsonarr2_themepark_enabled
# Type: bool (true/false)
sonarr_role_themepark_enabled:
# Type: bool (true/false)
sonarr2_themepark_enabled:
sonarr_role_themepark_themesonarr2_themepark_theme
# Type: string
sonarr_role_themepark_theme:
# Type: string
sonarr2_themepark_theme:
sonarr_role_traefik_api_endpointsonarr2_traefik_api_endpoint
# Type: dict/omit
sonarr_role_traefik_api_endpoint:
# Type: dict/omit
sonarr2_traefik_api_endpoint:
sonarr_role_traefik_api_middlewaresonarr2_traefik_api_middleware
# Type: string
sonarr_role_traefik_api_middleware:
# Type: string
sonarr2_traefik_api_middleware:
sonarr_role_traefik_api_middleware_httpsonarr2_traefik_api_middleware_http
# Type: string
sonarr_role_traefik_api_middleware_http:
# Type: string
sonarr2_traefik_api_middleware_http:
sonarr_role_traefik_autodetect_enabledsonarr2_traefik_autodetect_enabled
# Enable Traefik autodetect middleware for containers
# Type: bool (true/false)
sonarr_role_traefik_autodetect_enabled: false
# Enable Traefik autodetect middleware for containers
# Type: bool (true/false)
sonarr2_traefik_autodetect_enabled: false
sonarr_role_traefik_certresolversonarr2_traefik_certresolver
# Type: string
sonarr_role_traefik_certresolver:
# Type: string
sonarr2_traefik_certresolver:
sonarr_role_traefik_crowdsec_enabledsonarr2_traefik_crowdsec_enabled
# Enable CrowdSec middleware for containers
# Type: bool (true/false)
sonarr_role_traefik_crowdsec_enabled: false
# Enable CrowdSec middleware for containers
# Type: bool (true/false)
sonarr2_traefik_crowdsec_enabled: false
sonarr_role_traefik_error_pages_enabledsonarr2_traefik_error_pages_enabled
# Enable custom error pages middleware for containers
# Type: bool (true/false)
sonarr_role_traefik_error_pages_enabled: false
# Enable custom error pages middleware for containers
# Type: bool (true/false)
sonarr2_traefik_error_pages_enabled: false
sonarr_role_traefik_gzip_enabledsonarr2_traefik_gzip_enabled
# Enable gzip compression middleware for containers
# Type: bool (true/false)
sonarr_role_traefik_gzip_enabled: false
# Enable gzip compression middleware for containers
# Type: bool (true/false)
sonarr2_traefik_gzip_enabled: false
sonarr_role_traefik_middleware_httpsonarr2_traefik_middleware_http
# Type: string
sonarr_role_traefik_middleware_http:
# Type: string
sonarr2_traefik_middleware_http:
sonarr_role_traefik_middleware_http_api_insecuresonarr2_traefik_middleware_http_api_insecure
# Type: bool (true/false)
sonarr_role_traefik_middleware_http_api_insecure:
# Type: bool (true/false)
sonarr2_traefik_middleware_http_api_insecure:
sonarr_role_traefik_middleware_http_insecuresonarr2_traefik_middleware_http_insecure
# Type: bool (true/false)
sonarr_role_traefik_middleware_http_insecure:
# Type: bool (true/false)
sonarr2_traefik_middleware_http_insecure:
sonarr_role_traefik_prioritysonarr2_traefik_priority
# Type: string
sonarr_role_traefik_priority:
# Type: string
sonarr2_traefik_priority:
sonarr_role_traefik_robot_enabledsonarr2_traefik_robot_enabled
# Enable robots.txt middleware for containers
# Type: bool (true/false)
sonarr_role_traefik_robot_enabled: true
# Enable robots.txt middleware for containers
# Type: bool (true/false)
sonarr2_traefik_robot_enabled: true
sonarr_role_traefik_tailscale_enabledsonarr2_traefik_tailscale_enabled
# Enable Tailscale-specific Traefik configuration for containers
# Type: bool (true/false)
sonarr_role_traefik_tailscale_enabled: false
# Enable Tailscale-specific Traefik configuration for containers
# Type: bool (true/false)
sonarr2_traefik_tailscale_enabled: false
sonarr_role_traefik_wildcard_enabledsonarr2_traefik_wildcard_enabled
# Enable wildcard certificate for containers
# Type: bool (true/false)
sonarr_role_traefik_wildcard_enabled: true
# Enable wildcard certificate for containers
# Type: bool (true/false)
sonarr2_traefik_wildcard_enabled: true
sonarr_role_web_domainsonarr2_web_domain
# Type: string
sonarr_role_web_domain:
# Type: string
sonarr2_web_domain:
sonarr_role_web_fqdn_overridesonarr2_web_fqdn_override
# Override the Traefik fully qualified domain name (FQDN) for containers
# Type: list
sonarr_role_web_fqdn_override:
# Override the Traefik fully qualified domain name (FQDN) for containers
# Type: list
sonarr2_web_fqdn_override:
Example Override
sonarr_role_web_fqdn_override:
- "{{ traefik_host }}"
- "sonarr2.{{ user.domain }}"
- "sonarr.otherdomain.tld"
Note: Include {{ traefik_host }} to preserve the default FQDN alongside your custom entries
Example Override
sonarr2_web_fqdn_override:
- "{{ traefik_host }}"
- "sonarr2.{{ user.domain }}"
- "sonarr.otherdomain.tld"
Note: Include {{ traefik_host }} to preserve the default FQDN alongside your custom entries
sonarr_role_web_host_overridesonarr2_web_host_override
# Override the Traefik web host configuration for containers
# Type: string
sonarr_role_web_host_override:
# Override the Traefik web host configuration for containers
# Type: string
sonarr2_web_host_override:
Example Override
sonarr_role_web_host_override: "Host(`{{ traefik_host }}`) || Host(`{{ 'sonarr2.' + user.domain }}`)"
Note: Use {{ traefik_host }} to include the default host configuration in your custom rule
Example Override
sonarr2_web_host_override: "Host(`{{ traefik_host }}`) || Host(`{{ 'sonarr2.' + user.domain }}`)"
Note: Use {{ traefik_host }} to include the default host configuration in your custom rule
sonarr_role_web_http_portsonarr2_web_http_port
# Type: string (quoted number)
sonarr_role_web_http_port:
# Type: string (quoted number)
sonarr2_web_http_port:
sonarr_role_web_http_schemesonarr2_web_http_scheme
# Type: string ("http"/"https")
sonarr_role_web_http_scheme:
# Type: string ("http"/"https")
sonarr2_web_http_scheme:
sonarr_role_web_http_serverstransportsonarr2_web_http_serverstransport
# Type: dict/omit
sonarr_role_web_http_serverstransport:
# Type: dict/omit
sonarr2_web_http_serverstransport:
sonarr_role_web_schemesonarr2_web_scheme
# URL scheme to use for web access to containers
# Type: string ("http"/"https")
sonarr_role_web_scheme:
# URL scheme to use for web access to containers
# Type: string ("http"/"https")
sonarr2_web_scheme:
sonarr_role_web_serverstransportsonarr2_web_serverstransport
# Type: dict/omit
sonarr_role_web_serverstransport:
# Type: dict/omit
sonarr2_web_serverstransport:
sonarr_role_web_subdomainsonarr2_web_subdomain
# Type: string
sonarr_role_web_subdomain:
# Type: string
sonarr2_web_subdomain:








