Skip to content
View in the app

A better way to browse. Learn more.

Unraid

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

[Support] binhex - qBittorrent

Featured Replies

Overview: Support for Docker image arch-qbittorrent in the binhex repo.

Application: qBittorrent - https://github.com/qbittorrent/qBittorrent

Docker Hub: https://hub.docker.com/r/binhex/arch-qbittorrent

GitHub: https://github.com/binhex/arch-qbittorrent

Documentationhttps://github.com/binhex/documentation

 

If you appreciate my work, then please consider buying me a beer  :D

 

btn_donate_SM.gif

 

For other Docker support threads and requests, news and Docker template support for the binhex repository please use the "General" thread here

  • Replies 68
  • Views 18.7k
  • Created
  • Last Reply

Top Posters In This Topic

Most Popular Posts

  • I have created a gluetun template as the existing one was out of date (missing env vars) and if im moving forward with gluetun support then i wanted full control, if you wish to give it a whirl then l

  • My bad. I need to stop trusting my memory.😁 I had it in my head that the qbit container was using the Privoxyvpn shared network. It’s not though. Just all the non-vpn arr containers. So not an issue h

  • For now the other VPN related images are maintained, i shall give the community plenty of notice IF (and it is a big if) i decide to deprecate the VPN images.

Posted Images

Is this container replacing your existing qbittorrentvpn container or just a new variant?

  • Author
1 hour ago, wgstarks said:

Is this container replacing your existing qbittorrentvpn container or just a new variant?

I was considering this as a replacement, as its a neater more flexible solution, but there is one sticking point that might cause friction (or maybe not, awaiting response from community) and that is that gluetun does not currently support PIA wireguard connections (see note), this is due to the complexity from PIA requiring the generation of a dynamic wireguard config file, this requires access to PIA before the tunnel can be established, the main gluetun dev is understandably nervous about this as it leaves a small window where gluetun will not be secure.

Having said the above i have been testing with gluetun and it works really well once setup, i now have 3 gluetun containers running, one generic for all non incoming port apps, and then one for qbittorrent and one for nicotine+ (both require incoming ports), all using PIA OpenVPN.

Note: Yes you can temporarily get gluetun to connect to PIA via wireguard but it will fail after a period of time, as the wireguard confguration will expire.

  • Author

I have created a gluetun template as the existing one was out of date (missing env vars) and if im moving forward with gluetun support then i wanted full control, if you wish to give it a whirl then look on CA for binhex-official-gluetun

This is the basics to get a PIA tunnel setup for gluetun (yes there are butt-ton of options for gluetun, don't let it scare you! 😁)

  • Set VPN_SERVICE_PROVIDER toPIA

  • Set VPN_TYPE: toopenvpn

  • Set OPENVPN_USER: to <your PIA username>

  • Set OPENVPN_PASSWORD: to <your PIA password>

  • Set SERVER_HOSTNAMES: to <port forward enabled endpoints> e.g. ca-toronto.privacy.network,nl-amsterdam.privacy.network

  • Set VPN_PORT_FORWARDING: to on

  • Set FIREWALL_OUTBOUND_SUBNETS: to <CIDR for your network> (same as LAN_NETWORK for my existing VPN containers)

notes:- No need to download the OpenVPN config file, its baked into gluetun (nice for the end user, a PITA for the dev).

This is how i have all 3 setup, any problems with gluetun for now they can go here (yes i may create a separate thread for the binhex official templates).

I have my current arrs containers all sharing a network with your privoxyvpn container. Is that going to still work?

  • Author
53 minutes ago, wgstarks said:

I have my current arrs containers all sharing a network with your privoxyvpn container. Is that going to still work?

how do you mean?, i would treat use of gluetun and use of privoxyvpn as two separate things, do not try and combine the two, you can use both if you so wish but dont try and pass privoxyvpn to gluetun network, instead use gluetun's http proxy server if you need a proxy server, or turn off gluetun proxy server and run privoxyvpn.

21 minutes ago, binhex said:

how do you mean?, i would treat use of gluetun and use of privoxyvpn as two separate things, do not try and combine the two, you can use both if you so wish but dont try and pass privoxyvpn to gluetun network, instead use gluetun's http proxy server if you need a proxy server, or turn off gluetun proxy server and run privoxyvpn.

My bad. I need to stop trusting my memory.😁

I had it in my head that the qbit container was using the Privoxyvpn shared network. It’s not though. Just all the non-vpn arr containers. So not an issue here.

I’ll give the new container a try when I get a little free time to switch over. I know WireGuard is probably faster but speed isn’t a major concern for me. It’s all being done on the background and I really don’t care if a download takes longer. I’m not watching and waiting for it to finish usually.

Will you still update the other container or is that dead?

  • Author
24 minutes ago, ijuarez said:

Will you still update the other container or is that dead?

For now the other VPN related images are maintained, i shall give the community plenty of notice IF (and it is a big if) i decide to deprecate the VPN images.

On 7/21/2025 at 7:05 AM, binhex said:

This is the basics to get a PIA tunnel setup for gluetun (yes there are butt-ton of options for gluetun, don't let it scare you! 😁)

  • Set VPN_SERVICE_PROVIDER toPIA

  • Set VPN_TYPE: toopenvpn

  • Set OPENVPN_USER: to <your PIA username>

  • Set OPENVPN_PASSWORD: to <your PIA password>

  • Set SERVER_HOSTNAMES: to <port forward enabled endpoints> e.g. ca-toronto.privacy.network,nl-amsterdam.privacy.network

  • Set VPN_PORT_FORWARDING: to on

  • Set FIREWALL_OUTBOUND_SUBNETS: to <CIDR for your network> (same as LAN_NETWORK for my existing VPN containers)

notes:- No need to download the OpenVPN config file, its baked into gluetun (nice for the end user, a PITA for the dev).

This is how i have all 3 setup, any problems with gluetun for now they can go here (yes i may create a separate thread for the binhex official templates).

I tried setting this up today filling in all of these variables and was getting this error when starting qBit:


"[ERROR] Unable to determine VPN adapter name, please check your gluetun configuration and ensure the VPN is connected. "

Edited by Casel

  • Author
3 hours ago, Casel said:

"[ERROR] Unable to determine VPN adapter name, please check your gluetun configuration and ensure the VPN is connected. "

ok and you have set the network for qbittorrent to use the gluetun containers network, right? for example my gluetun container is called gluetun-qbittorrent, so therefore i have set --extra-parameters for qbittorrent to:

{E64CAEAD-6208-48A1-8E8D-838169026422}.png

Couple of questions, as I somehow managed to stumble upon this container (and by extension, binhex-official-gluetun) while it's still fairly new. The first is around this:

gluetun does not currently support PIA wireguard connections

Does that apply to Wireguard VPNs in general? Or is it just a limitation of PIA's Wireguard implementation? I'm not a PIA customer, and I haven't seen any major issues yet as a Proton user; qBT is sending all its traffic over Proton for me. But if there's a potential brief security "gap", I don't mind switching to the OpenVPN protocol.

My second question/observation - it seems that if I have GLUETUN_INCOMING_PORT set to "yes" (which I do, as Proton randomly assigns a forwarded port each time it connects), I also have to enable "Bypass authentication for clients on localhost" in qBT's Web UI settings. If I don't enable that setting, I get the log output below, and the health check script fails to set the port to whatever is listed in appdata/gluetun/forwarded_port. Are there any other ways to make this work without bypassing auth, or am I worrying about nothing because this is Docker and "localhost" is just limited to within what the Docker container considers to be localhost?

2025-07-28 01:40:40,600 DEBG 'start-script' stdout output:
[INFO] Verifying 'qbittorrent' incoming port matches VPN port '52210'

2025-07-28 01:40:40,611 DEBG 'start-script' stderr output:
jq: parse error: Invalid numeric literal at line 2, column 0

2025-07-28 01:40:40,612 DEBG 'start-script' stdout output:
[WARN] Unable to retrieve current port from qbittorrent API

2025-07-28 01:40:40,612 DEBG 'start-script' stdout output:
[INFO] Waiting for port 8085 to be listening...

2025-07-28 01:40:40,615 DEBG 'start-script' stderr output:
Connection to localhost (::1) 8085 port [tcp/*] succeeded!

2025-07-28 01:40:40,619 DEBG 'start-script' stderr output:
Connection to localhost (::1) 8085 port [tcp/*] succeeded!

2025-07-28 01:40:40,619 DEBG 'start-script' stdout output:
[INFO] Port 8085 is now listening

2025-07-28 01:40:40,627 DEBG 'start-script' stdout output:
[INFO] Sleeping for 60 seconds before re-checking port assignment...
  • Author
3 hours ago, Megabit said:

Does that apply to Wireguard VPNs in general? Or is it just a limitation of PIA's Wireguard implementation?

I haven't checked all VPN providers, but i know PIA def is not supported at present.

3 hours ago, Megabit said:

I also have to enable "Bypass authentication for clients on localhost" in qBT's Web UI settings. If I don't enable that setting, I get the log output below, and the health check script fails to set the port to whatever is listed in appdata/gluetun/forwarded_port.

Ahh yes, that is something that needs to be set, that must of slipped through the net, i have now included this change in the script, it wont take effect until i rebuild the image, so for now please set it manually.

3 hours ago, Megabit said:

Are there any other ways to make this work without bypassing auth, or am I worrying about nothing because this is Docker and "localhost" is just limited to within what the Docker container considers to be localhost?

no other ways that im aware of, localhost is pretty safe though TBH, you would have to have a intruder logged into the console of the docker for them to take advantage of this, you cannot bypass authentication from outside the container with this option set alone.

Thanks for the feedback. I'm a long-time user of Docker in Unraid, but I've never really done a deep dive into how they work behind the scenes. This was pretty helpful!

And FWIW, Proton Wireguard seems to be working fine for me. I loaded up ipleak.net's torrent tracking test multiple times in qBittorrent after restarting both it and Gluetun, and every single time it has come back with my VPN's public IP and forwarded port, which matches the IP shown in both qBittorrent's web UI (Settings gear, Behavior tab, enable "Show external IP in status bar") and in the appdata/gluetun/ip file. After following Gluetun's directions for generating a Proton Wireguard connection on their github wiki, I ended up setting (or at least ensuring) the following variables in binhex-official-gluetun to make binhex-qbittorrent work the way I need:

  • VPN_SERVICE_PROVIDER: protonvpn

  • VPN_TYPE: wireguard

  • WIREGUARD_PRIVATE_KEY: copied from generated Proton connection file

  • SERVER_COUNTRIES and SERVER_CITIES: choose your favorite, or leave empty to let it pick one itself

  • VPN_PORT_FORWARDING: on

  • TZ: set to my local time zone

  • PORT_FORWARD_ONLY: on

  • WIREGUARD_PUBLIC_KEY: again, copied from generated Proton connection file

  • WIREGUARD_IMPLEMENTATION: auto (left at default)

  • WIREGUARD_MTU: 1400 (left at default)

  • VPN_PORT_FORWARDING_STATUS_FILE: /gluetun/forwarded_port (left at default)

I also added the qBT web UI port to Gluetun (mentioned here in their docs), and of course changed binhex-qbittorrent's network type to use the Gluetun container. Although I did that through the Unraid UI instead of adding a command as an extra parameter; it seems to do the same thing based on the Docker command execution

image.png

  • Author
On 7/29/2025 at 7:06 AM, Megabit said:

I ended up setting (or at least ensuring) the following variables in binhex-official-gluetun to make binhex-qbittorrent work the way I need:

Thanks for this i really appreciate the detail, i shall try and come up with a set of instructions for common vpn providers to make any transition/first time use easier, TBH PIA and ProtonVPN cover most users.

On 7/30/2025 at 8:39 AM, binhex said:

Thanks for this i really appreciate the detail, i shall try and come up with a set of instructions for common vpn providers to make any transition/first time use easier, TBH PIA and ProtonVPN cover most users.

Could AirVPN instructions also be possible? :)

So, basically auto-port-forward and separating a VPN client to its own container are the benefits of gluetun over having the VPN client and privoxy together inside, for example, a qbittorrent container?

  • Author
On 7/31/2025 at 10:19 PM, ptr78 said:

So, basically auto-port-forward and separating a VPN client to its own container are the benefits of gluetun over having the VPN client and privoxy together inside, for example, a qbittorrent container?

My existing vpn containers can do what gluetun is currently doing, the advantage with gluetun is that it is a lot more configurable, it has a TON of options and built in support for most popular vpn providers, including airvpn. It also has a nice built in web server that can be ued to get the assigned incoming port and then share it with other containers, this is how i am setting the incomng port for qbittorrent.

The disadvantage to gluetun is there are TON of options which can be overwealming for newbie's, it also does not include any application, so the end user would need to figure out how to route containers through gluetun, once figured out though it is a really slick solution.

For me personally i have now setup 3 separate gluetun containers, 1 for qbittorrent exclusive use, 1 for nicotine+ and 1 for gneeral non port forward related containers (e.g. sonarr, hexchat, etc), so far its been rock solid, the only drawback is PIA is only supported via openvpn and i am with PIA.

Thank you for a very good explanation! I will also utilize a "multi-gluetun" configuration.

  • 2 months later...

I am new to Unraid. Just installed it yesterday on UGreen DXP 4800 Plus. I just setup my qBittorrent docker and initially did some downloads which were saving the downloaded files in /user/appdata/binhex-qbittorrent/qBittorrent/downloads. Everything work ok in that case.

I didnt want that file structure. So I changed some settings in qBitTorrent and here is how the torrent client and docker settings looked like:

r/unRAID - High CPU usage with qBittorrent

r/unRAID - High CPU usage with qBittorrent

With these settings, whenever I start the torrent, my CPU usage goes to 100% and the docket web UI becomes unusable and even the Unraid UI becomes super slow. When I stop the torrent, everything becomes normal. I also checked with "top" command. The "wa" numbers go to like 50-60.

Any idea how can I solve this high CPU usage while using my own file structure.

I only have two drives in my Unraid. 1 in party and 1 in array. No SSD chache.

I need some help with an ongoing issue I'm having with my Q BitTorrent container when I attempt to do some downloads from many sources and I've tried different sites different connections every time I download attempts I get an error and it says like permission denied

heres the error with the filename changed

"File error alert. Torrent: "filename". File: "/downloads/Filename". Reason: "filename" file_open (/downloads/"filename" error: Permission denied"

brave_RBuuooS606.png

brave_gbrwgcjQiJ.png

  • Author
9 hours ago, Birdserver said:

I need some help with an ongoing issue I'm having with my Q BitTorrent container when I attempt to do some downloads from many sources and I've tried different sites different connections every time I download attempts I get an error and it says like permission denied

heres the error with the filename changed

from your screenshot from qbittorrent:

{46E8CACC-0FD6-4D08-AE9C-2CBD75A014ED}.png

ok so looking at the screenshot for the configuration of the container, you have neither /media or /downloads defined (although thats not ticked so has no effect) for the container path, try changing Default save path to /data/completed and enable and set Keep incomplete torrents in to /data/incomplete that way your completed files/folders will end up on the host at path /mnt/user/media/downloads/completed and /mnt/user/media/downloads/incomplete

i been having issue since update to the latest version qbittorrent
[DEBUG] Curl request successful on attempt 1

2025-10-22 00:36:01,129 DEBG 'start-script' stdout output:

[DEBUG] Current incoming port for VPN tunnel is '0'

2025-10-22 00:36:01,130 DEBG 'start-script' stderr output:

[DEBUG] Attempting curl request to 'http://127.0.0.1:8000/v1/publicip/ip', attempt 1/10

2025-10-22 00:36:01,136 DEBG 'start-script' stderr output:

[DEBUG] Curl request successful on attempt 1

2025-10-22 00:36:01,147 DEBG 'start-script' stdout output:

[DEBUG] Public IP for VPN tunnel is '146.70.67.90'

[DEBUG] Country for VPN tunnel is 'Singapore'

[DEBUG] City for VPN tunnel is 'Singapore'

2025-10-22 00:36:01,147 DEBG 'start-script' stdout output:

[DEBUG] Setting bypass authentication for localhost, required to configure qbittorrent incoming port via API: /config/qBittorrent/config/qBittorrent.conf

2025-10-22 00:36:01,155 DEBG 'start-script' stdout output:

[INFO] Starting 'qbittorrent' with VPN incoming port '0'...

2025-10-22 00:36:01,155 DEBG 'start-script' stdout output:

[INFO] Starting single process: /usr/bin/qbittorrent-nox --webui-port=8080 --profile=/config

2025-10-22 00:36:01,155 DEBG 'start-script' stdout output:

[DEBUG] Started 'qbittorrent' with main PID '96' (all processes running in background)

2025-10-22 00:36:01,155 DEBG 'start-script' stdout output:

[INFO] Waiting for port 8080 to be listening...

2025-10-22 00:36:01,159 DEBG 'start-script' stdout output:

[DEBUG] Port 8080 not yet listening, waiting...

2025-10-22 00:36:01,267 DEBG 'start-script' stdout output:

*** Legal Notice ***

qBittorrent is a file sharing program. When you run a torrent, its data will be made available to others by means of upload. Any content you share is your sole responsibility.

If you have read the legal notice, you can use command line option --confirm-legal-notice to suppress this message.

WebUI will be started shortly after internal preparations. Please wait...

2025-10-22 00:36:01,307 DEBG 'start-script' stdout output:

******** Information ********

To control qBittorrent, access the WebUI at: http://localhost:8080

2025-10-22 00:36:01,784 DEBG 'start-script' stderr output:

*************************************************************

Please file a bug report at https://bug.qbittorrent.org and provide the following information:

qBittorrent version: v5.1.2

Caught signal: SIGSEGV

```

0# getStacktrace[abi:cxx11]() in /usr/bin/qbittorrent-nox

1# 0x0000000000109942 in /usr/bin/qbittorrent-nox

2# 0x000000000003E540 in /usr/lib/libc.so.6

3# BitTorrent::TorrentImpl::updateTrackerEntryStatus(libtorrent::announce_entry const&, QHash<boost::asio::ip::basic_endpoint<boost::asio::ip::tcp>, QMap<int, int> > const&) in /usr/bin/qbittorrent-nox

4# 0x0000000000193DD7 in /usr/bin/qbittorrent-nox

5# QObject::event(QEvent*) in /usr/lib/libQt6Core.so.6

6# QCoreApplication::notifyInternal2(QObject*, QEvent*) in /usr/lib/libQt6Core.so.6

7# QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) in /usr/lib/libQt6Core.so.6

8# 0x000000000044DB18 in /usr/lib/libQt6Core.so.6

9# 0x000000000005EF4D in /usr/lib/libglib-2.0.so.0

10# 0x0000000000060617 in /usr/lib/libglib-2.0.so.0

11# g_main_context_iteration in /usr/lib/libglib-2.0.so.0

12# QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) in /usr/lib/libQt6Core.so.6

13# QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) in /usr/lib/libQt6Core.so.6

14# QCoreApplication::exec() in /usr/lib/libQt6Core.so.6

15# Application::exec() in /usr/bin/qbittorrent-nox

16# main in /usr/bin/qbittorrent-nox

17# 0x0000000000027675 in /usr/lib/libc.so.6

18# __libc_start_main in /usr/lib/libc.so.6

19# _start in /usr/bin/qbittorrent-nox

```
Its an issue with libtorrent-rasterbar on arch, downgrading to 1:2.0.11-4 fixes it
segmentation fault (core dumped) qbittorrent-nox · Issue #23408 · qbittorrent/qBittorrent

Quick question, can I map another path for a separate folder?

Ie.. I want finished downloads to go to a specific mnt/user/... and i want incoming downloads to go to another different mnt/... path

So I have /data --> mnt/user..

and would like to add map another one for let's say /incoming --> /mnt/...

***************************

after testing this works fine.

*************************

Thanks for any help

Edited by DoboY

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.