Last updated on 8 January 2025
Important or Recent Updates
Historic Updates | Date |
---|---|
Fresh new guide by popular demand | 28/09/2023 |
Updated with new steps to obtain and change WebUI password | 21/11/2023 |
Issue with passwords has been fixed in 4.6.2 so removed tty line from yaml | 29/11/2023 |
What is qBittorrent?
qBittorrent is a torrent downloader used to both manage torrent downloading and seeding.
If you are looking to combine a VPN with this set up see the GlueTUN guide on the left Menu
Let’s Begin
In this guide I will take you through the steps to get qBittorrent up and running in Docker
In order for you to successfully use this guide, please complete the three preceding guides
- Docker Package, SSD and Memory Recommendations
- Step 1: Directory Setup Guide
- Step 2: Setting up a restricted Docker user
- Step 3: Setting up a Docker Bridge Network (synobridge)
Folder Setup
Let’s start by getting some folders set up for the containers to use. Open up File Station create the following.
/docker/projects/qbit-compose
/docker/qbittorrent

Container Manager
Next we are going to set up a ‘Project’ in Container Manager, a project is used when you want one or more to all be loaded together and uses Docker Compose to do this.
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, enter the following:
Section | Setting |
---|---|
Project Name: | qbit-project |
Path: | /docker/projects/qbit-compose |
Source: | Create docker-compose.yml |

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’ just like the screenshot

services:
qbittorrent:
image: linuxserver/qbittorrent:latest
container_name: qbittorrent
environment:
- PUID=1234 #CHANGE_TO_YOUR_UID
- PGID=65432 #CHANGE_TO_YOUR_GID
- TZ=Europe/London #CHANGE_TO_YOUR_TZ
- WEBUI_PORT=8090
volumes:
- /volume1/docker/qbittorrent:/config
- /volume1/data/torrents:/data/torrents
ports:
- 9854:9854/tcp # Forwarded Port on Router TCP
- 9854:9854/udp # Forwarded Port on Router TCP
- 8090:8090/tcp # port for qbittorrent webui
network_mode: synobridge
restart: always
Environment Variables
We are now going to amend some key variables to make sure the container has access to our folders and also knows where we are in the world. Don’t change any other settings other than those I mention.
Variable | Value |
---|---|
PUID | (required) The UID you obtained in the user setup guide |
PGID | (required) The GID you obtained in the user setup guide |
TZ | (required) Your timezone wikipedia.org/wiki/List_of_tz_database_time_zones |
Ports
Nothing to change here, the webui will run on port 8090 and the ports we will be using for the torrent protocol will be 9854 for TCP and UDP.
Volumes
By default, I have assumed you have your config files stored on /volume1 if these are located on another volume amend this line accordingly.
Click ‘Next’
You do not need to enable anything on the ‘Web portal settings’ screen click ‘Next’ again

On the final screen click Done which will begin the download of the container images and once downloaded they will be launched!

The images will now be downloaded and extracted. You should see ‘Code 0’ when it has finished.

You will now see your qbit-project running with a green status on the left-hand side.

Firewall Exceptions
(Skip if you don’t have the Firewall configured)
If you have the Synology Firewall enabled please see this additional guide for further info on exceptions and correct set up.
Changing the default WebUI login and password
If you skip this step you won’t be able to log in.
Now the container has started open it in the Docker UI by clicking the qbittorrent container select ‘details’ and then view the ‘log’ tab. Within the logs you will see the login details.

Now before doing any more of the guide go to the Web UI by going to the IP of your NAS followed by port 8090 and log in. Then on the WebUI tab change the defaults to your own and save them.

Now continue on..
Router Port Forwarding
As you can imagine there are thousands of possible router configs out there, so you will need to check the manual for your own.
Essentially you need to Port Forward port 9854 TCP and UDP to your NAS IP address. This will make you connectable for all peers. Most routers support UPnP or NAT-PNP which will automatically set up ports however it’s usually more secure to turn these off and do it manually.
Final qBittorrent Setup
Changing the default WebUI login and password
If you skip this step you won’t be able to log in.
Now the container has started open it in the Docker UI and go to the Log tab. Within the logs you will see the login details

Now before doing any more of the guide go to the Web UI by going to the IP of your NAS followed by port 8090 and log in. Then on the WebUI tab change the defaults to your own and save them.

As we have used /data/torrents as the mount point for our downloads we need to make sure qBittorrent uses this same file path. Open the settings and edit the following paths and save.
Option | Original Value | New Value |
---|---|---|
Default Save Path | /downloads | /data/torrents/completed |
Keep incomplete torrents in | /downloads/incomplete | /data/torrents/incoming |
Monitored Folder (optional) | blank | /data/torrents/watch |

In prior versions of this guide I had a command to unzip RAR and ZIP files, I have removed this as it is not reliable, check out Unpackerr from the menu.
Connection Settings
The last step is to tell qBittorrent to use the correct port for communication enter 9854 in the Listening Port.

I am not going to walk through all the other settings as you can customise these as you wish.
That’s it.
FAQs
Q: I am getting the ‘errored’ status for all my torrents
This is very likely a permissions issue, go to the User and Group guide and see the permission fixes towards the bottom.
Q: Everything seems to be connected but nothing is downloading.
Try grabbing the Ubuntu torrent as that is a sure fire way of testing as generally it has over 3k seeds.
Looking for some help, join our Discord community
If you are struggling with any steps in the guides or looking to branch out into other containers join our Discord community!
Buy me a beverage!
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 stay hydrated. Plus 10% goes to the devs of the apps I do guides for every year.
I get “error response from daemon: network synobridge not found” exit code 1 when building the project. Any idea’s?
Hey, looks like you skipped a step right at the beginning of the guide.
Oops! Apologies, I’m working trough that right now. Thanks for the amazing guide!
Hey there! First off, love the website. It’s definitely helped get me more comfortable in establishing a NAS for myself. I’ve run into this strange issue where I can’t save my edits to the .conf file. I made sure to follow the guide to a T, and even reset my Synology NAS from scratch, but I’m still getting a “sorry, this user account has not been assigned proper privileges to perform this action”. I’ve made sure to utilize the proper GUID/PUID (5 char, 4 char respectively). I’m currently at a loss on where to go from here, any recommendations?
I need to have a look at this as seen this myself. In the interim edit the file via your local machine and then either upload it back via File Station or just save over the top..
the /docker folder is hidden by default, so you will need to unhide it via Control Panel > Shared Folders
Got everything to work today! Thanks for everything. Much appreciated!
I can’t get into the web UI. This site can’t be reached. everything else I was able to do just fine.
Hey, do the logs for qBittorrent mention anything around an issue with it starting up?
when i started with these guides I already had my topline folder called ‘Media’ as opposed to the other guides recommendations of ‘Data’. So instead of moving everything around I just added Torrents files under Media. I edited the Yaml in this guide to reflect that, from:
/volume1/data/torrents:/data/torrents
to
/volume1/media/torrents:/media/torrents
however I’m getting a ‘Bind mount failed: /volume1/media/torrents’ error. I feel like I’m missing something obvious, any suggestions?
Everything else has been exactly according to this article and others. I have a docker user, I have a docker bridge network, etc.
Hey make sure you capitalise where appropriate so if its Media do this
/volume1/Media/torrents:/Media/torrents
Keep it consistent so nothing gets confused.
starting with this guide. I already had ‘Media’ as my main folder as opposed to ‘data’ as the other article suggests, so instead of moving everything around I just added a torrents folder under Media. I edited the Yaml from what you had:
/volume1/data/torrents:/data/torrents
to
/volume1/media/torrents:/media/torrents
however when I try and build the project I get a ‘Bind mount failed: /volume1/media/torrents’ error
any suggestions?