Skip to content


Switch branches/tags

Latest Version Build Status Docker Stars Docker Pulls
Become a sponsor Donate Paypal


qBittorrent Docker image based on Alpine Linux.
If you are interested, check out my other Docker images!

💡 Want to be notified of new releases? Check out 🔔 Diun (Docker Image Update Notifier) project!


Build locally

git clone
cd docker-qbittorrent

# Build image and output to docker (default)
docker buildx bake

# Build multi-platform image
docker buildx bake image-all


Registry Image
Docker Hub crazymax/qbittorrent
GitHub Container Registry

Following platforms for this image are available:

$ docker run --rm mplatform/mquery crazymax/qbittorrent:latest
Image: crazymax/qbittorrent:latest
 * Manifest List: Yes
 * Supported platforms:
   - linux/amd64
   - linux/arm/v6
   - linux/arm/v7
   - linux/arm64

Environment variables

  • TZ: Timezone assigned to the container (default UTC)
  • PUID: qBittorrent user id (default 1000)
  • PGID: qBittorrent group id (default 1000)
  • WAN_IP: Public IP address reported to the tracker (default auto resolved with dig +short
  • WEBUI_PORT: WebUI port to be used (default 8080)
  • ALT_WEBUI: Enable alternative WebUI located in /data/webui (default false)


  • /data: qBittorrent config, downloads, temp, torrents, watch, webui...

⚠️ Note that the volumes should be owned by the user/group with the specified PUID and PGID. If you don't give the volume correct permissions, the container may not start.


  • 6881: DHT port
  • 8080: qBittorrent HTTP port


Docker Compose

Docker compose is the recommended way to run this image. You can use the following docker compose template, then run the container:

$ docker-compose up -d
$ docker-compose logs -f

Command line

You can also use the following minimal command:

$ docker run -d --name qbittorrent \
  --ulimit nproc=65535 \
  --ulimit nofile=32000:40000 \
  -p 6881:6881/tcp \
  -p 6881:6881/udp \
  -p 8080:8080 \
  -v $(pwd)/data:/data \


Recreate the container whenever I push an update:

docker-compose pull
docker-compose up -d


qBittorrent Web API

qBittorrent Web API can be used within this image using curl.

$ docker-compose exec qbittorrent curl --fail

Change username and password

You can change the default username admin and password adminadmin through the API or WebUI.

docker-compose exec qbittorrent curl --fail -X POST \
  -d 'json={"web_ui_username":"myuser","web_ui_password":"mypassword"}' \

Watch torrents

You can configure the monitored folders on the qBittorrent interface:

Or through the API:

docker-compose exec qbittorrent curl --fail -X POST \
  -d 'json={"scan_dirs":{"/data/watch": 1}}' \


Want to contribute? Awesome! The most basic way to show your support is to star the project, or to raise issues. You can also support this project by becoming a sponsor on GitHub or by making a Paypal donation to ensure this journey continues indefinitely!

Thanks again for your support, it is much appreciated! 🙏


MIT. See LICENSE for more details.