Important or Recent Updates
|Added additional security option to the compose to restrict the container from gaining new privileges as well as umask variable||25/10/2023|
|Adjusted the restart variable to make sure containers start on boot||28/10/2023|
This guide is going to eventually replace the existing separate guides for all the apps in the title. By combining these into a single project it saves you time and effort in the initial set up and makes updates more seamless.
You can add and remove the containers from this project based on your preferences.
Migration from old guides.
If you followed my older guides where you set up each of these containers in the Container Manager UI or Pre DSM7.2 Docker UI you can follow this one to migrate in a couple of steps.
- Stop and delete the existing containers but keep your directories!
- Follow the rest of this guide and all your existing configs will be kept using your old files.
In order for you to successfully use this guide please complete the three initial setup guides if you have not done so already
- Step 1: Directory Setup Guide
- Step 2: Setting up a restricted Docker user
- Step 3: Setting up a Docker Bridge Network
As Container Manager now supports using Docker Compose in the UI we will be using it as it will save you lots of time and steps!
What on earth is a Docker Compose? Docker Compose allows us to define how Docker should set up one or more containers within a single configuration file. This file is yaml formatted and Container Manager uses the Projects feature to manage them.
First we need to set up some folders for the Arr’s to save their configuration files and also where the Project will save the compose.
Using File Station create the following folders. (Skip ones you don’t need)
/docker/projects/arrs-compose - Required /docker/radarr /docker/sonarr /docker/lidarr /docker/prowlarr /docker/bazarr /docker/readarr
Container Set Up
Next we are going to set up a ‘Project’ in Container Manager. Open up Container Manager and click on Project, then on the right-hand side click ‘Create’.
In the next screen we will set up our General Settings.
Next we are going to drop in our docker compose configuration, copy all the code in the box below and paste it into line ‘1’
A couple of notes:
- I personally use the Linuxserver images, so they are used below
- I am pulling these images directly from Docker Hub and not lscr.io this is because container manager can’t check for updates on third party sites
- You will see notes saying #change me we will do this on the next step, and you can remove the comments if you wish
services: sonarr: image: linuxserver/sonarr:latest container_name: sonarr environment: - PUID=1234 #CHANGE_TO_YOUR_UID - PGID=65432 #CHANGE_TO_YOUR_GID - TZ=Europe/London #CHANGE_TO_YOUR_TZ - UMASK=022 volumes: - /volume1/docker/sonarr:/config - /volume1/data:/data ports: - 8989:8989 network_mode: synobridge security_opt: - no-new-privileges:true restart: always lidarr: image: linuxserver/lidarr:latest container_name: lidarr environment: - PUID=1234 #CHANGE_TO_YOUR_UID - PGID=65432 #CHANGE_TO_YOUR_GID - TZ=Europe/London #CHANGE_TO_YOUR_TZ - UMASK=022 volumes: - /volume1/docker/lidarr:/config - /volume1/data:/data ports: - 8686:8686 network_mode: synobridge security_opt: - no-new-privileges:true restart: always radarr: image: linuxserver/radarr:latest container_name: radarr environment: - PUID=1234 #CHANGE_TO_YOUR_UID - PGID=65432 #CHANGE_TO_YOUR_GID - TZ=Europe/London #CHANGE_TO_YOUR_TZ - UMASK=022 volumes: - /volume1/docker/radarr:/config - /volume1/data:/data ports: - 7878:7878 network_mode: synobridge security_opt: - no-new-privileges:true restart: always readarr: image: linuxserver/readarr:develop container_name: readarr environment: - PUID=1234 #CHANGE_TO_YOUR_UID - PGID=65432 #CHANGE_TO_YOUR_GID - TZ=Europe/London #CHANGE_TO_YOUR_TZ - UMASK=022 volumes: - /volume1/docker/readarr:/config - /volume1/data/:/data ports: - 8787:8787 network_mode: synobridge security_opt: - no-new-privileges:true restart: always bazarr: image: linuxserver/bazarr:latest container_name: bazarr environment: - PUID=1234 #CHANGE_TO_YOUR_UID - PGID=65432 #CHANGE_TO_YOUR_GID - TZ=Europe/London #CHANGE_TO_YOUR_TZ - UMASK=022 volumes: - /volume1/docker/bazarr:/config - /volume1/data/:/data ports: - 6767:6767 network_mode: synobridge security_opt: - no-new-privileges:true restart: always
I have split out Prowlarr as you may want this running on a VPN connection if your ISP blocks certain indexers. If not copy this section into your compose as well. See my Gluetun guides for more information on adding to a VPN.
prowlarr: image: linuxserver/prowlarr:latest container_name: prowlarr environment: - PUID=1234 #CHANGE_TO_YOUR_UID - PGID=65432 #CHANGE_TO_YOUR_GID - TZ=Europe/London #CHANGE_TO_YOUR_TZ - UMASK=022 volumes: - /volume1/docker/prowlarr:/config ports: - 9696:9696 network_mode: synobridge security_opt: - no-new-privileges:true restart: always
Editing the Compose & Environment Variables
Please keep in mind that yaml formatting is very specific, so keep things lined up as per the original.
The compose contains all the Arr’s in the overall stack, you can remove any you don’t plan on using by deleting their entire section in the code.
We need to make some minor edits to the compose file in order to make sure the containers use the ‘dockerlimited’ user we created earlier and also let them know which timezone we are located. You will need to edit these in each section noted with ‘#change me’
|PUID=||Change it to the UID you obtained earlier in the first setup guides|
|PGID=||Change it to the GID you obtained earlier in the first setup guides|
|TZ=||You will need to change this line to your own timezone code – you can find the correct list of ones to use on wikipedia.org/wiki/List_of_tz_database_time_zones|
Once you have made all your required edits click ‘Next’
Nothing to change on the next screen click ‘Next’ again..
On the final screen just click ‘Done’ and you will see a new window appear which will kick of downloading of the required container image and configure the containers.
This can take a couple of minutes to finish as all the images are downloaded and extracted. You should see ‘Code 0’ when it has finished.
Once finished you will see the Project is running with a green status.
(Skip if you don’t have the Firewall configured)
If you have enabled and configured the Synology Firewall you will need to create exceptions for any containers that have a Web UI or have any incoming or outgoing connections. This section covers the basics of how to add these. (Please note this is a generic section and will not show the specific ports in this guide however it applies in the same way)
Head into the
Firewall, from here click
Edit Rules for the profile you set up when you enabled the Firewall.
Next click on
Create and you will see the screen below. Source IP and Action will be automatically selected to All and Allow, I will leave it up to you as to your own preference on whether you want to lock down specific Source IPs from having access. In this example we will leave as All.
You will now choose ‘Select from a list of built-in applications‘ and then the
Now from the list choose the newly created Docker container (You can do more than one if you wish)
Click OK a couple of times to get back to the main screen. You will see by default the new rule is added to the bottom of the list. You must always have your Block All rule last in the list as the rules are applied top down so move your container up.
You have now completed the Firewall changes and can continue with the guide.
Containers are ready to use
You will now be able to access each of the containers on their respective ports.
Please see the next section which covers the ‘basics’ of each application setup as these usually catch people out. Full documentation can be found on https://wiki.servarr.com/
Key Settings within the Arrs
Settings > Media Management > Root Folders
Each of the Arr’s refer to the place(s) you keep your media as ‘Root Folders’. These are where the app will ultimately move your music/movies/books/shows once they finish downloading. Use the table below to set each of your folders correctly.
Settings > Media Management > Remote Path Mappings
While most of the settings on this page are self-explanatory something that has caught people out is the Remote Path Mappings setting. If you are hosting all your services on the same NAS and in Docker do not add any settings here.
Settings > Download Client(s) > Add your Client > Host and Port
As our containers are all running on the ‘Synobridge’ custom bridge we can use the Gateway IP for this bridge for inter container networking. This will be 172.20.0.1 and the appropriate port for your Client assuming it is running in Docker!
Settings > Indexers
As per the Download client settings use the Gateway IP of 172.20.0.1 for your connection from Prowlarr to each of the arrs if you are using it.
You should now have the basics in place and I 100% recommend having a look at the previously mentioned documentation as it will help you understand how the Arrs work.
Buy Me a Coffee or Throw me some Sats
If you have found my site useful please consider pinging me a tip as it helps cover the cost of running things or just lets me get the odd beverage. Plus 10% goes to the devs of the apps I do guides for every year.