Help needed configuring prowlarr with qBittorrent
Help needed configuring prowlarr with qBittorrent
Hi all, i'm having issues configuring prowlarr to use the qbit torrent downloader. I have everything setup in a docker container as such:
version: "3.2" services: qbittorrent: container_name: qbittorrent image: linuxserver/qbittorrent logging: driver: json-file ports: - 4666:4666 - 8082:6881 - 8082:6881/udp environment: - WEBUI_PORT=4666 volumes: - /docker/appdata/qbittorrent:/config - ./data:/data radarr: container_name: radarr image: cr.hotio.dev/hotio/radarr:latest restart: unless-stopped logging: driver: json-file ports: - 7878:7878 environment: - PUID=1000 - PGID=1000 - TZ=Europe/Amsterdam volumes: - /etc/localtime:/etc/localtime:ro - /docker/appdata/radarr:/config - ./data:/data sonarr: container_name: sonarr image: cr.hotio.dev/hotio/sonarr:latest restart: unless-stopped logging: driver: json-file ports: - 8989:8989 environment: - PUID=1000 - PGID=1000 - TZ=Europe/Amsterdam volumes: - /etc/localtime:/etc/localtime:ro - /docker/appdata/sonarr:/config - /data:/data bazarr: container_name: bazarr image: cr.hotio.dev/hotio/bazarr:latest restart: unless-stopped logging: driver: json-file ports: - 6767:6767 environment: - PUID=1000 - PGID=1000 - TZ=Europe/Amsterdam volumes: - /etc/localtime:/etc/localtime:ro - /docker/appdata/bazarr:/config - ./data/media:/data/media prowlarr: image: cr.hotio.dev/hotio/prowlarr container_name: prowlarr ports: - 9696:9696 environment: - PUID=1000 - PGID=1000 - TZ=Europe/Madrid volumes: - /docker/appdata/prowlarr:/config restart: unless-stopped sabnzbd: container_name: sabnzbd image: cr.hotio.dev/hotio/sabnzbd:latest restart: unless-stopped logging: driver: json-file ports: - 8080:8080 - 9090:9090 environment: - PUID=1000 - PGID=1000 - TZ=Europe/Madrid volumes: - /etc/localtime:/etc/localtime:ro - /docker/appdata/sabnzbd:/config - ./data/usenet:/data/usenet:rw jellyfin: container_name: jellyfin image: linuxserver/jellyfin environment: - PUID=1000 - PGID=1000 - TZ=Europe/Madrid volumes: - /docker/appdata/jellyfin:/config - /etc/localtime:/etc/localtime:ro - ./data/media:/data/media ports: - 8096:8096 - 8920:8290 restart: unless-stopped
I can open localhost:4666 in firefox and see the qbit web interface. When i go to the prowlarr interface and try to connect to it the field for the adress goes red and says: unable eto connect tot qBittorrent. The logs say:
prowlarr | [v1.7.4.3769] System.Net.Http.HttpRequestException: Connection refused (localhost:4666) prowlarr | ---> System.Net.Sockets.SocketException (111): Connection refused prowlarr | at System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.ThrowException(SocketError error, CancellationToken cancellationToken) prowlarr | at System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.System.Threading.Tasks.Sources.IValueTaskSource.GetResult(Int16 token) prowlarr | at System.Net.Sockets.Socket.g__WaitForConnectWithCancellation|277_0(AwaitableSocketAsyncEventArgs saea, ValueTask connectTask, CancellationToken cancellationToken) prowlarr | at NzbDrone.Common.Http.Dispatchers.ManagedHttpDispatcher.attemptConnection(AddressFamily addressFamily, SocketsHttpConnectionContext context, CancellationToken cancellationToken) in ./Prowlarr.Common/Http/Dispatchers/ManagedHttpDispatcher.cs:line 331 prowlarr | at NzbDrone.Common.Http.Dispatchers.ManagedHttpDispatcher.onConnect(SocketsHttpConnectionContext context, CancellationToken cancellationToken) in ./Prowlarr.Common/Http/Dispatchers/ManagedHttpDispatcher.cs:line 307 prowlarr | at System.Net.Http.HttpConnectionPool.ConnectToTcpHostAsync(String host, Int32 port, HttpRequestMessage initialRequest, Boolean async, CancellationToken cancellationToken) prowlarr | --- End of inner exception stack trace --- prowlarr | at System.Net.Http.HttpConnectionPool.ConnectToTcpHostAsync(String host, Int32 port, HttpRequestMessage initialRequest, Boolean async, CancellationToken cancellationToken) prowlarr | at System.Net.Http.HttpConnectionPool.ConnectAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken) prowlarr | at System.Net.Http.HttpConnectionPool.CreateHttp11ConnectionAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken) prowlarr | at System.Net.Http.HttpConnectionPool.AddHttp11ConnectionAsync(HttpRequestMessage request) prowlarr | at System.Threading.Tasks.TaskCompletionSourceWithCancellation`1.WaitWithCancellationAsync(CancellationToken cancellationToken) prowlarr | at System.Net.Http.HttpConnectionPool.GetHttp11ConnectionAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken) prowlarr | at System.Net.Http.HttpConnectionPool.SendWithVersionDetectionAndRetryAsync(HttpRequestMessage request, Boolean async, Boolean doRequestAuth, CancellationToken cancellationToken) prowlarr | at System.Net.Http.AuthenticationHelper.SendWithAuthAsync(HttpRequestMessage request, Uri authUri, Boolean async, ICredentials credentials, Boolean preAuthenticate, Boolean isProxyAuth, Boolean doRequestAuth, HttpConnectionPool pool, CancellationToken cancellationToken) prowlarr | at System.Net.Http.DiagnosticsHandler.SendAsyncCore(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken) prowlarr | at System.Net.Http.DecompressionHandler.SendAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken) prowlarr | at System.Net.Http.HttpClient.g__Core|83_0(HttpRequestMessage request, HttpCompletionOption completionOption, CancellationTokenSource cts, Boolean disposeCts, CancellationTokenSource pendingRequestsCts, CancellationToken originalCancellationToken) prowlarr | at NzbDrone.Common.Http.Dispatchers.ManagedHttpDispatcher.GetResponseAsync(HttpRequest request, CookieContainer cookies) in ./Prowlarr.Common/Http/Dispatchers/ManagedHttpDispatcher.cs:line 110 prowlarr | at NzbDrone.Common.Http.HttpClient.ExecuteRequestAsync(HttpRequest request, CookieContainer cookieContainer) in ./Prowlarr.Common/Http/HttpClient.cs:line 171 prowlarr | at NzbDrone.Common.Http.HttpClient.ExecuteAsync(HttpRequest request) in ./Prowlarr.Common/Http/HttpClient.cs:line 70 prowlarr | at NzbDrone.Common.Http.HttpClient.Execute(HttpRequest request) in ./Prowlarr.Common/Http/HttpClient.cs:line 137 prowlarr | at NzbDrone.Core.Download.Clients.QBittorrent.QBittorrentProxyV2.IsApiSupported(QBittorrentSettings settings) in ./Prowlarr.Core/Download/Clients/QBittorrent/QBittorrentProxyV2.cs:line 35 prowlarr | at NzbDrone.Core.Download.Clients.QBittorrent.QBittorrentProxySelector.FetchProxy(QBittorrentSettings settings) in ./Prowlarr.Core/Download/Clients/QBittorrent/QBittorrentProxySelector.cs:line 83 prowlarr | at NzbDrone.Core.Download.Clients.QBittorrent.QBittorrentProxySelector.<>c__DisplayClass7_0.b__0() in ./Prowlarr.Core/Download/Clients/QBittorrent/QBittorrentProxySelector.cs:line 78 prowlarr | prowlarr | at NzbDrone.Common.Cache.Cached`1.Get(String key, Func`1 function, Nullable`1 lifeTime) in ./Prowlarr.Common/Cache/Cached.cs:line 99 prowlarr | at NzbDrone.Core.Download.Clients.QBittorrent.QBittorrentProxySelector.GetProxyCache(QBittorrentSettings settings, Boolean force) in ./Prowlarr.Core/Download/Clients/QBittorrent/QBittorrentProxySelector.cs:line 78 prowlarr | prowlarr | at NzbDrone.Core.Download.Clients.QBittorrent.QBittorrentProxySelector.GetProxy(QBittorrentSettings settings, Boolean force) in ./Prowlarr.Core/Download/Clients/QBittorrent/QBittorrentProxySelector.cs:line 61 prowlarr | at NzbDrone.Core.Download.Clients.QBittorrent.QBittorrent.TestConnection() in ./Prowlarr.Core/Download/Clients/QBittorrent/QBittorrent.cs:line 209 prowlarr | prowlarr | prowlarr | prowlarr | [Warn] ProwlarrErrorPipeline: Invalid request Validation failed: prowlarr | -- Host: Unable to connect to qBittorrent
I've tried looking for help online but i haven't found much so some help would be appreciated.
Thank you!
Try with the local network IP of the host PC/VM instead (192.168.x.x), you have to use that for most applications. Remember that localhost/127.0.0.1 means something different inside a Docker container than it does outside it...
Bingo! This worked. I don't fully understand why because i expose the ports on the docker containers, i guess i must have something miss-configured. Thanks!!
If I understand correctly (and I'm not 100% sure I do), localhost in a Docker container lives in it's own little network which is not the host's network.
The container is its own localhost, which has its own ports (which is why you have to map an internal localhost port to a host PC localhost port for every container you wish to access). This means that Prowlarr in your case, has no idea what localhost:4666 should be since in Prowlarr's localhost universe there exists nothing on that port. To access what the host knows of ports (instead of the container), you have to write the host's address from inside the Prowlarr container.
I hope that wasn't impossible to follow 😅
Now that I think about it (haven't tried myself though) you could possibly add the mapping of port 4666:4666 to the Prowlarr Docker compose setup and then use localhost:4666 to access qBittorrent from inside Prowlarr.