qBittorrent qBittorrent

BitTorrent client

The qBittorrent project aims to provide an open-source software alternative to µTorrent. qBittorrent is based on the Qt toolkit and libtorrent-rasterbar library. The default username/password is printed to the terminal on container start.

Recommended setup steps:

  • Configure “Bypass authentication for clients in whitelisted IP subnets” (Settings -> Webui) - Authelia handles the authentication
  • The image is build locally (see: Dockerfile) and includes the VueTorrent (https://github.com/WDaan/VueTorrent) web interface. To enable it, point your alternate WebUI location to ‘/usr/vuetorrent’ folder in qBittorrent settings.
  • Configure categories (Settings menu) to specify default download locations
  • Setup forwarding of port 6881 (TCP, UDP) in the router, check open port: https://www.yougetsignal.com/tools/open-ports/

Links:

name: qbittorrent
services:
  qbittorrent:
    build: .
    container_name: qbittorrent
    restart: unless-stopped
    networks:
      - proxy
    # If running on a separate host (not the Traefik host), remove the networks section above,
    # add "- 8080:8080" to the ports section below so the WebUI is reachable on the host,
    # and add a router+service entry in docker/security/traefik/config/dynamic/external-services.yml:
    #   routers:
    #     qbittorrent:
    #       rule: 'Host(`qbittorrent.${MYDOMAIN}`)'
    #       service: qbittorrent
    #       middlewares: [localaccess@file]
    #   services:
    #     qbittorrent:
    #       loadBalancer:
    #         servers:
    #           - url: http://<host>:8080
    environment:
      PUID: ${PUID}
      PGID: ${PGID}
      TZ: ${TIMEZONE}
      WEBUI_PORT: 8080
    volumes:
      - ${DOCKER_VOLUMES}/qbittorrent:/config
      - ${STORAGE_DOWNLOADS}/torrent-downloads:/downloads
      - ${STORAGE_MEDIA}:/media
    ports:
      # 8080 not exposed on host - Traefik reaches it via proxy network
      - 6881:6881/tcp # Bittorrent incoming connections
      - 6881:6881/udp # Bittorrent incoming connections
    labels:
      traefik.enable: true
      traefik.http.routers.qbittorrent.middlewares: localaccess@file
      traefik.http.services.qbittorrent.loadbalancer.server.port: 8080
      homepage.group: Arr
      homepage.name: qBittorrent
      homepage.icon: qbittorrent.png
      homepage.href: https://qbittorrent.${MYDOMAIN}/
      homepage.description: "BitTorrent client"
      com.centurylinklabs.watchtower.enable: false

networks:
  proxy:
    external: true