Skip to content

Sonarr in Docker on a Synology NAS

UpdateDate
Added Docker Compose details
Added new folder mappings to ensure atomic moves and Hard-linking
03/05/2021
Guide re-written and updated with DSM7 screenshots 01/08/2021
Updated wording in some sections and updated the Docker Compose16/12/2021
DSM7.1 Updated Screenshots and Steps03/06/2022
Added new port settings and Docker Bridge Network24/07/2022

What is Sonarr?

Sonarr is used to search, download and organise your TV shows in conjunction with your preferred Usenet or Torrent downloaders and indexers.

Let’s Begin

In this guide I will take you through the steps to get Sonarr up and running in Docker.

In order for you to successfully use this guide please complete the three preceding guides

Downloading the Sonarr Image

Open up Docker within DSM and navigate to the ‘Registry’ tab and search for ‘Sonarr’.

In the list of available containers select the one made by Linuxserver as shown below, right click on it and select ‘Download’ or click the button at the top of the window.

When the dialogue pops up asking you to choose a version, make sure you choose ‘Latest’ from the list.

You can check the status of the download over on the ‘Image’ tab.

Setting up the container

In Docker click on the ‘Image’ tab, in the list of your containers select the ‘Linuxserver Sonarr’ image and click on ‘Launch’

You will be greeted with the Network screen, we will be using the ‘synobridge’ network we created earlier select it from the list and click Next.

General Settings

Next you will be greeted with the General Settings screen, this is where you can start specifying some of your preferences.

You can change the name of the container to anything you like, and you may want to enable Auto Restart as this will ensure Sonarr starts automatically if you reboot your NAS.

You will also notice a Configure capabilities button — don’t change anything in here!

Next up we are going to click on the ‘Advanced Settings’ button, this will take you to a new window with a number of tabs which we are going to work through.

Environment (PGID,  PUID and Timezone)

Next we are going to set up a couple of environment variables that docker will use to allow the container access to our files and folders and also to tell it where we live in the world.

Click the Add button, and fill in the following details as per the table/screenshot, you will need to do one at a time.

variableValue
PUIDThe UID you obtained in the user setup guide
PGIDThe GID you obtained in the user setup guide
TZYour timezone wikipedia.org/wiki/List_of_tz_database_time_zones

Links / Execution Command

You do not need to set up anything on these tabs.

Press ‘Save’ to go back to the initial setup screen, then press ‘Next’

Port Settings

We won’t be changing any of the ports the container uses. You can repeat the ones shown on the right side of the settings page ‘Container Port’ onto the left side ‘Local Port’ once you have done this press ‘Next’.

Volume Settings

We will now be specifying the directories where Sonarr will store its configuration files and where to find our media and downloads.

Click on ‘Add Folder’ select the ‘docker’ folder and create a new sub-folder called ‘sonarr’ select this folder and click ‘select’

Repeat this process to add the /data folder.

You will now add the below settings into the ‘Mount path’ section

File/FolderMount path
docker/sonarr/config
data/data


Click Next to move to the final screen.

Summary

You have now completed the setup of the container.

You will be shown an overall summary of the settings we have specified, this is a good time to double-check everything is correct. Finally, click on Done and the container should start to boot.

You should now be able to access Sonarr via the IP of your NAS followed by the port 8989

e.g. 192.168.0.40:8989

Make sure you check out page 2 of this guide that covers some common basic settings.

Docker Compose

You can use the below code saved as sonarr.yml in the ‘/docker/sonarr’ share, this will do the entire process above in one quick command via SSH. Ensure you change the variables to your own.

version: "3.8"
services:
  Sonarr:
    image: linuxserver/sonarr:latest
    container_name: sonarr
    environment:
      - PUID=YOURPUID
      - PGID=YOURPGID
      - TZ=Europe/London
    volumes:
      - /volume1/docker/sonarr:/config
      - /volume1/data:/data
    ports:
      - 8989:8989
    network_mode: synobridge
    restart: unless-stopped
sudo docker-compose -f /volume1/docker/sonarr/sonarr.yml up -d


Throw me some bits or buy me a coffee?

If you have found my site useful please consider pinging me a tip as it helps cover the cost of running the site, you can even buy me a coffee 🙂

Buy Me A Coffee
Doge / Ethereum / Bitcoin

Pages: 1 2

Published inDockerSynology

47 Comments

  1. I’ve got a Sonarr v2 installation running per your old guides, using Transmission, Jackett, Radarr v3, Prowlarr (for Radarr), and it’s all working nicely until I migrate to Sonarr v3, when everything goes to hell, and I start getting the Import failures, even if I’ve manually copied the files into the folder.

    I’ve built a “virtual” DSM on VMware using the same version of DSM, etc, but clean, and the only difference is that my path on the new one is “/TV” vs “/TV Shows” on my physical Synology.

    I’m not entirely keen on renaming the root folder of my TV Shows share, as I’ve got around 150 TV Series I’d have to edit in Sonarr, but for the life of me can’t work out what’s going on…. Any ideas?

    • Dr_Frankenstein Dr_Frankenstein

      Hey, does Sonarr throw any specific errors at all? If you were to rename the underlying share (although you shouldn’t need to) Sonarr v3 allows you to bulk edit the root paths on all your shows.

      • In v3, I get “Downloaded – Unable to Import: check logs for details”, irrespective of copying the files in manually, or with a downloader handling it.

        In Debug I get zero logs relating to the show I’m trying to work on at the moment, in fact it’s trying to match it to a completely different series of shows altogether…

        In Trace logging, I get something similar to:

        {“downloadDir”:”/downloads/complete”,”downloadedEver”:11597734560,”errorString”:””,”eta”:-2,”fileCount”:0,”hashString”:”d71d6fc6d6dcb0a9e8fc7f6f8a9d719ef99a160c”,”id”:58,”isFinished”:false,”leftUntilDone”:0,”name”:”Marvels.Luke.Cage.S01.1080p.BluRay.x265-RARBG”,”secondsDownloading”:26985,”secondsSeeding”:525242,”seedIdleLimit”:30,”seedIdleMode”:0,”seedRatioLimit”:2,”seedRatioMode”:0,”status”:6,”totalSize”:11595987277,”uploadedEver”:22616481262},

        however the files are already imported, it just won’t update the DB

        and throws out this:

        2022-06-21 20:37:36.6|Trace|Owin|SQLite error (5): database is locked in “PRAGMA cache_size=-10000”
        2022-06-21 20:37:36.6|Trace|Owin|

        2022-06-21 20:37:36.6|Trace|Owin|SQLite error (5): database is locked in “PRAGMA cache_size=-10000”
        2022-06-21 20:37:36.6|Trace|Owin|

        I’m loathe to migrate of v2, as it just works so well and reliably…. but this has my really stumped

        • Dr_Frankenstein Dr_Frankenstein

          It might be worth setting up v3 with a blank slate and fresh config folder and then importing the existing shows to it. You could stick the old version on a different port temporarily so you can match up your other settings. I suspect because of the length of time since v3 was launched its not a smooth upgrade if going over the top of existing settings. Reach out on Discord as will be easier to chat it through.

  2. candyman candyman

    Hi there. Thanks for this awesome guide. I have one issue left and that is updating the synology media index. For some reason newly added episodes won’t be visible in uPnP until I re-index on the synology manually. I have tried setting up the synology indexer notifcation in sonarr, but that errors out (assuming because sonarr probably cannot connect to the synology indexer?). So am I the only one who has this issue, or is there somekind of fix for it? The workaround would be to schedule media indexing every night or so, but if I can get something better to work than that would be great.

    • I moved away from uPnP to Plex, as I found uPnP becoming increasingly unreliable over the years…

    • Dr_Frankenstein Dr_Frankenstein

      Hey, unfortunately this is a known issue with the indexer, I remember reading that it doesn’t always pickup the new files automatically. You will need to create the manual task. The Sonarr script doesn’t work as the Docker container has no access to the underlying system.

      As Andrew mentioned below if you did move to Plex make sure you go the Docker route and not the one in the package center.

  3. Followed the guide for Deluge and Sonarr, everything works fine up until the point of import. where it fails with the following message. Any suggestions as the dockerlimited account has access to these folders and can see them

    “DownloadedEpisodesImportService|Import failed, path does not exist or is not accessible by Sonarr. Ensure the path exists and the user running Sonarr has the correct permissions to access this file/folder”

    • Dr_Frankenstein Dr_Frankenstein

      Hey is there a bit extra to the error where it includes the folder path? It usually means the mount point is incorrect in your container setup. Sonarr needs to be mounted as /data and /data meaning it will have access to all subfolders (double-check your PUID/PGID is the right way around)

    • Deepcore Deepcore

      Never Mind, managed to solve it. Looks like there was a previous install that was causing this issue. Deleted the config folder and it sorted itself. Thanks for this amazing guide.

  4. Nick Nick

    Love these guides. So helpful. Can I just recommend modifying the network section to instruct people on what to do if they intend to run multiple sonarr dockers. If this is desired, the container port should be left at the default, but the local needs to be different from the container port and also unique from any other ports set on other containers. So all sonarr apps would be 8989 for container port, and each container local port would need to be unique, 8990, 8991, for example. Thanks again.

    • Dr_Frankenstein Dr_Frankenstein

      Thanks Nick, I will keep this on my notes for when I do the DSM7.1 rewrites

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.

drfrankenstein.co.uk – writing Synology Docker Guides since 2016 – Join My Discord!