Code Monkey home page Code Monkey logo

docker-qbittorrent's Introduction

Headless qBittorrent client with remote web interface.

Supported tags

Tags Layers Size
4.6.2, 4.6.2-alpine, 4.6, 4.6-alpine, 4, 4-alpine, latest
4.5.5, 4.5.5-alpine, 4.5, 4.5-alpine
4.4.5, 4.4.5-alpine, 4.4, 4.4-alpine
4.3.9, 4.3.9-alpine, 4.3, 4.3-alpine
4.2.5, 4.2.5-alpine, 4.2, 4.2-alpine
4.1.9, 4.1.9-alpine, 4.1, 4.1-alpine
4.0.4, 4.0.4-alpine, 4.0, 4.0-alpine
3.3.16, 3.3.16-alpine, 3.3, 3.3-alpine, 3, 3-alpine

What is qBittorrent?

From www.qbittorrent.org:

An advanced and multi-platform BitTorrent client with a nice Qt user interface as well as a Web UI for remote control and an integrated search engine. qBittorrent aims to meet the needs of most users while using as little CPU and memory as possible.

The qBittorrent project aims to provide an open-source software alternative to Β΅Torrent.

qBittorrent is released uner the GNU Generic Public License v2 to allow free use.

How to use these images

These images are built with qbittorrent-nox (no X server), a version of qBittorrent with the GUI disabled that is controlled via its built-in web UI.

The images do not require any external Docker networks, volumes, environment variables, or arguments and can be run with just:

docker run \
    --publish 8080:8080 \
    --publish 6881:6881/tcp \
    --publish 6881:6881/udp \
    emmercm/qbittorrent

And accessed through the web UI at http://localhost:8080 with the default username admin and password adminadmin.

Volume mounts

Due to the ephemeral nature of Docker containers these images provide a number of optional volume mounts to persist data outside of the container:

  • /config: the qBittorrent config directory containing qBittorrent.conf
  • /downloads: the default download location
  • /incomplete: the default incomplete download location
  • /data: the qBittorrent folder that contains fast resume data, .torrent files, logs, and other data.

Usage:

mkdir config downloads incomplete
docker run \
    --publish 8080:8080 \
    --publish 6881:6881/tcp \
    --publish 6881:6881/udp \
    --volume "$PWD/config:/config" \
    --volume "$PWD/data:/data" \
    --volume "$PWD/downloads:/downloads" \
    --volume "$PWD/incomplete:/incomplete" \
    emmercm/qbittorrent

Environment variables

To change the timezone of the container set the TZ environment variable. The full list of available options can be found on Wikipedia.

Docker Compose

docker-compose can help with defining the docker run config in a repeatable way rather than ensuring you always pass the same CLI arguments.

Here's an example docker-compose.yml config:

version: "3"

services:
  qbittorrent:
    image: emmercm/qbittorrent:latest
    restart: unless-stopped
    environment:
      - TZ=America/New_York
    ports:
      - 8080:8080
      - 6881:6881/tcp
      - 6881:6881/udp
    volumes:
      - ./config:/config
      - ./data:/data
      - ./downloads:/downloads
      - ./incomplete:/incomplete

Docker Compose + VPN

There are a number of VPN images such as Julio Gutierrez's bubuntux/nordvpn that let you route network traffic from the qBittorrent container through the VPN of your choice.

Here's an example docker-compose.yml config:

version: "3"

services:
  vpn:
    image: bubuntux/nordvpn:openvpn
    restart: unless-stopped
    cap_add:
      - NET_ADMIN
    devices:
      - /dev/net/tun
    environment:
      - [email protected]
      - PASS='pas$word'
      - COUNTRY=United_States
      - PROTOCOL=UDP
      - CATEGORY=P2P
      # Your local network, potentially 192.168.0.0/24 or something else
      - NETWORK=192.168.1.0/24
      - OPENVPN_OPTS='--pull-filter ignore "ping-restart" --ping-exit 180'
      - TZ=America/New_York
    # Ports from qBittorrent
    ports:
      - 8080:8080
      - 6881:6881/tcp
      - 6881:6881/udp
  
  qbittorrent:
    image: emmercm/qbittorrent:latest
    restart: unless-stopped
    network_mode: service:vpn
    environment:
      - TZ=America/New_York
    volumes:
      - ./config:/config
      - ./data:/data
      - ./downloads:/downloads
      - ./incomplete:/incomplete

Image variants

All images are based on emmercm/libtorrent and therefore inherit those images' OS version, which is kept as up to date as possible.

emmercm/qbittorrent:<version>-alpine

The default image variant, these images are based on the alpine official image which is designed to be "small, simple, and secure." This variant is recommended for when final image size is a concern.

License

This project is under the GNU Generic Public License v3 to allow free use while ensuring it stays open.

docker-qbittorrent's People

Contributors

emmercm avatar renovate-bot avatar renovate[bot] avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

docker-qbittorrent's Issues

Restart after add torrent file

Hi!
I add a torrent file, the download starts, then the container starts restarting all the time.
In the log:

(N) 2022-02-23T19:50:39 - qBittorrent v4.4.1 started
(N) 2022-02-23T19:50:39 - Using config directory: /root/.config/qBittorrent
(I) 2022-02-23T19:50:39 - Trying to listen on: 0.0.0.0:6881,[::]:6881
(N) 2022-02-23T19:50:39 - Peer ID: -qB4410-
(N) 2022-02-23T19:50:39 - HTTP User-Agent is 'qBittorrent/4.4.1'
(I) 2022-02-23T19:50:39 - DHT support [ON]
(I) 2022-02-23T19:50:39 - Local Peer Discovery support [ON]
(I) 2022-02-23T19:50:39 - PeX support [ON]
(I) 2022-02-23T19:50:39 - Anonymous mode [OFF]
(I) 2022-02-23T19:50:39 - Encryption support [ON]
(I) 2022-02-23T19:50:39 - UPnP / NAT-PMP support [ON]
(W) 2022-02-23T19:50:39 - Couldn't load IP geolocation database. Reason: No such file or directory
(N) 2022-02-23T19:50:39 - Using built-in Web UI.
(W) 2022-02-23T19:50:39 - Couldn't load Web UI translation for selected locale (C).
(N) 2022-02-23T19:50:39 - Web UI: Now listening on IP: *, port: 8080
(I) 2022-02-23T19:50:39 - Successfully listening on IP: 127.0.0.1, port: TCP/6881
(I) 2022-02-23T19:50:39 - Successfully listening on IP: 127.0.0.1, port: UTP/6881
(I) 2022-02-23T19:50:39 - Successfully listening on IP: 172.21.0.2, port: TCP/6881
(I) 2022-02-23T19:50:39 - Successfully listening on IP: 172.21.0.2, port: UTP/6881
(I) 2022-02-23T19:50:39 - Detected external IP: 37.145.191.159
(I) 2022-02-23T19:50:40 - IP geolocation database loaded. Type: DBIP-Country-Lite. Build time: Tue Feb 1 01:11:03 2022.
(I) 2022-02-23T19:50:40 - Successfully updated IP geolocation database.
(N) 2022-02-23T19:50:45 - WebAPI login success. IP: ::ffff:172.21.0.9
(N) 2022-02-23T19:50:51 - 'my_file_name' added to download list.
(N) 2022-02-23T19:50:53 - qBittorrent v4.4.1 started
(N) 2022-02-23T19:50:53 - Using config directory: /root/.config/qBittorrent
(I) 2022-02-23T19:50:53 - Trying to listen on: 0.0.0.0:6881,[::]:6881
(N) 2022-02-23T19:50:53 - Peer ID: -qB4410-
(N) 2022-02-23T19:50:53 - HTTP User-Agent is 'qBittorrent/4.4.1'
(I) 2022-02-23T19:50:53 - DHT support [ON]
(I) 2022-02-23T19:50:53 - Local Peer Discovery support [ON]
(I) 2022-02-23T19:50:53 - PeX support [ON]
(I) 2022-02-23T19:50:53 - Anonymous mode [OFF]
(I) 2022-02-23T19:50:53 - Encryption support [ON]
(I) 2022-02-23T19:50:53 - UPnP / NAT-PMP support [ON]
(I) 2022-02-23T19:50:53 - IP geolocation database loaded. Type: DBIP-Country-Lite. Build time: Tue Feb 1 01:11:03 2022.
(N) 2022-02-23T19:50:53 - Using built-in Web UI.
(W) 2022-02-23T19:50:53 - Couldn't load Web UI translation for selected locale (C).
(N) 2022-02-23T19:50:53 - Web UI: Now listening on IP: *, port: 8080
(I) 2022-02-23T19:50:53 - Successfully listening on IP: 127.0.0.1, port: TCP/6881
(I) 2022-02-23T19:50:53 - Successfully listening on IP: 127.0.0.1, port: UTP/6881
(I) 2022-02-23T19:50:53 - Successfully listening on IP: 172.21.0.2, port: TCP/6881
(I) 2022-02-23T19:50:53 - Successfully listening on IP: 172.21.0.2, port: UTP/6881
(N) 2022-02-23T19:50:53 - 'my_file_name' restored.
(I) 2022-02-23T19:50:53 - Detected external IP: 37.145.191.159
(N) 2022-02-23T19:50:57 - qBittorrent v4.4.1 started
(N) 2022-02-23T19:50:57 - Using config directory: /root/.config/qBittorrent
(I) 2022-02-23T19:50:57 - Trying to listen on: 0.0.0.0:6881,[::]:6881
(N) 2022-02-23T19:50:57 - Peer ID: -qB4410-
(N) 2022-02-23T19:50:57 - HTTP User-Agent is 'qBittorrent/4.4.1'
(I) 2022-02-23T19:50:57 - DHT support [ON]
(I) 2022-02-23T19:50:57 - Local Peer Discovery support [ON]
(I) 2022-02-23T19:50:57 - PeX support [ON]
(I) 2022-02-23T19:50:57 - Anonymous mode [OFF]
(I) 2022-02-23T19:50:57 - Encryption support [ON]
(I) 2022-02-23T19:50:57 - UPnP / NAT-PMP support [ON]
(I) 2022-02-23T19:50:57 - IP geolocation database loaded. Type: DBIP-Country-Lite. Build time: Tue Feb 1 01:11:03 2022.
(N) 2022-02-23T19:50:57 - Using built-in Web UI.
(W) 2022-02-23T19:50:57 - Couldn't load Web UI translation for selected locale (C).
(N) 2022-02-23T19:50:57 - Web UI: Now listening on IP: *, port: 8080
(I) 2022-02-23T19:50:57 - Successfully listening on IP: 127.0.0.1, port: TCP/6881
(I) 2022-02-23T19:50:57 - Successfully listening on IP: 127.0.0.1, port: UTP/6881
(I) 2022-02-23T19:50:57 - Successfully listening on IP: 172.21.0.2, port: TCP/6881
(I) 2022-02-23T19:50:57 - Successfully listening on IP: 172.21.0.2, port: UTP/6881
(N) 2022-02-23T19:50:57 - 'my_file_name' restored.
(I) 2022-02-23T19:50:57 - Detected external IP: 37.145.191.159

docker-compose.yml

services:
  qbittorrent:
    image: emmercm/qbittorrent:4-alpine
    container_name: qbittorrent
    restart: unless-stopped
    volumes:
      - ./qbittorrent/config:/config
      - ./qbittorrent/data:/data
      - ./qbittorrent/downloads:/downloads
      - ./qbittorrent/incomplete:/incomplete
      - ./qbittorrent/watch:/watch
    ports:
      - 10.10.10.10:8080:8080/tcp
      - 10.10.10.10:6881:6881/tcp
      - 10.10.10.10:6881:6881/udp
    networks:
      app_home_network:
        ipv4_address: 172.21.0.2

Action Required: Fix Renovate Configuration

There is an error with this repository's Renovate configuration that needs to be fixed. As a precaution, Renovate will stop PRs until it is resolved.

Location: renovate.json
Error type: The renovate configuration file contains some invalid settings
Message: packageRules[2]: packageRules cannot combine both matchUpdateTypes and separateMajorMinor. Rule: {"separateMajorMinor":true,"separateMinorPatch":true,"matchPaths":["**/Dockerfile"],"matchUpdateTypes":["major"],"enabled":false}, packageRules[2]: packageRules cannot combine both matchUpdateTypes and separateMinorPatch. Rule: {"separateMajorMinor":true,"separateMinorPatch":true,"matchPaths":["**/Dockerfile"],"matchUpdateTypes":["major"],"enabled":false}, packageRules[3]: packageRules cannot combine both matchUpdateTypes and separateMajorMinor. Rule: {"separateMajorMinor":true,"separateMinorPatch":true,"matchPaths":["**/Dockerfile"],"matchUpdateTypes":["minor"],"enabled":false}, packageRules[3]: packageRules cannot combine both matchUpdateTypes and separateMinorPatch. Rule: {"separateMajorMinor":true,"separateMinorPatch":true,"matchPaths":["**/Dockerfile"],"matchUpdateTypes":["minor"],"enabled":false}, packageRules[4]: packageRules cannot combine both matchUpdateTypes and separateMajorMinor. Rule: {"separateMajorMinor":true,"separateMinorPatch":true,"matchPaths":["**/Dockerfile"],"matchUpdateTypes":["patch"],"enabled":true}, packageRules[4]: packageRules cannot combine both matchUpdateTypes and separateMinorPatch. Rule: {"separateMajorMinor":true,"separateMinorPatch":true,"matchPaths":["**/Dockerfile"],"matchUpdateTypes":["patch"],"enabled":true}

Dependency Dashboard

This issue lists Renovate updates and detected dependencies. Read the Dependency Dashboard docs to learn more.

Open

These updates have all been created already. Click a checkbox below to force a retry/rebase of any.

Detected dependencies

circleci
.circleci/config.yml
dockerfile
3.3/Dockerfile
  • emmercm/libtorrent 1.0@sha256:1dcef397a01073b2c4861f505477cf6316203e186531ec05ebdce122f633021e
4.0/Dockerfile
  • emmercm/libtorrent 1.1@sha256:29f69d46b57d5494ba341b03641e9a706007fc00186dc8f363d5035e84b67eb1
4.1/Dockerfile
  • emmercm/libtorrent 1.1@sha256:29f69d46b57d5494ba341b03641e9a706007fc00186dc8f363d5035e84b67eb1
4.2/Dockerfile
  • emmercm/libtorrent 1.2@sha256:fdc5469db4531b14f2dae2da9cb04e501e0d4db74ba6056b44d2004086f84838
4.3/Dockerfile
  • emmercm/libtorrent 1.2@sha256:fdc5469db4531b14f2dae2da9cb04e501e0d4db74ba6056b44d2004086f84838
4.4/Dockerfile
  • emmercm/libtorrent 2.0@sha256:bcb7bde4bc13a453f62e86762cc136f2edff9f6ba2733cff51988e055f741df4
4.5/Dockerfile
  • emmercm/libtorrent 2.0@sha256:bcb7bde4bc13a453f62e86762cc136f2edff9f6ba2733cff51988e055f741df4
4.6/Dockerfile
  • emmercm/libtorrent 2.0@sha256:bcb7bde4bc13a453f62e86762cc136f2edff9f6ba2733cff51988e055f741df4

  • Check this box to trigger a request for Renovate to run again on this repository

How to add a torrent file to the Web UI?

Hi, I can download torrents using Magnet links, however, how do I download a torrent with a .torrent file using the Web UI, as I do by clicking on it or opening it with the app for the Desktop app?

Doesn't load webui: unauthorized

Ubuntu 20.10 host, using your compose.

  qbittorrent-em:
    image: emmercm/qbittorrent:latest
    container_name: qbittorrent-em
    restart: always
    environment:
      TZ: $TZ
    volumes:
      - $DOCKERDIR/qbittorrent-em/config:/config
      - $DATAPOOL/Media/incoming:/Media/incoming
      - $DOCKERDIR/qbittorrent-em/data:/data
    ports:
      - 8080:8080
      - 6881:6881
      #- 6881:6881/udp

When I go to my localip:8080 I only see the text "unauthorized".
I made sure the /config and /data dir have full rights and owned by the user, not root.
The log (via portainer) does not give any hints:

      

Waiting for internet connection ...



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


*                              *


*   External IP:(removed)  *


*                              *


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




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


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

I also tried the Linuxserver version, it's 360MB versus your 150MB image, but it does work. Luckily it has a environmental variable to change the internal webUI port.

I would prefer to use your image, but I do not understand why it does not work.

[Suggestion] add GID UID UMASK

I completely changed this ticket, I asked to include unrar to the image, but I found Unpackerr. Will use that in stead.

I do have another question:
I am impressed by this image because it is only 150MB and fully functional, but now see all my downloads are owned by root. Is it possible to support something like GID and GPID like Linuxserver does, to set correct user permissions?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.