Skip to content

emmercm/docker-qbittorrent

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Headless qBittorrent client with remote web interface.

Supported tags

Tags Layers Size
4.6.6, 4.6.6-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:
      - USER=user@email.com
      - 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.