Repository on Docker Hub: https://hub.docker.com/r/qbittorrentofficial/qbittorrent-nox
Repository on GitHub: https://github.com/qbittorrent/docker-qbittorrent-nox
- linux/386
- linux/amd64
- linux/arm/v6
- linux/arm/v7
- linux/arm64/v8
- linux/riscv64
If the problem is related to Docker, please report it to this repository:
https://github.com/qbittorrent/docker-qbittorrent-nox/issues
If the problem is with qBittorrent, please report the issue to its main repository:
https://github.com/qbittorrent/qBittorrent/issues
-
Prerequisites
In order to run this image you will need Docker installed: https://docs.docker.com/get-docker/
If you don't need the GUI, you can just install Docker Engine: https://docs.docker.com/engine/install/
It is also recommended to install Docker Compose as it can simplify the process significantly: https://docs.docker.com/compose/install/
-
Download this repository
You can either
git clonethis repository or download a .zip of it: https://github.com/qbittorrent/docker-qbittorrent-nox/archive/refs/heads/main.zip -
Edit Docker environment file
If you are using Docker Stack, refer to docker-stack.yml file as an example.
It is an almost ready-to-use configuration, though a few variables need to be filled in. Make sure you read the following steps as they largely share the same concept.If you are not using Docker Compose you can skip editing the environment file. However, the variables presented below are crucial for later steps, make sure you understand them.
Find and open the
.envfile in the repository you cloned (or the .zip archive you downloaded).
There are a few variables that you must take care of before you can run the image.
You can find the meanings of these variables in the following section. Make sure you understand every one of them.QBT_LEGAL_NOTICE
This environment variable defines whether you have read the legal notice of qBittorrent.
Putconfirmonly if you have read the legal notice. You can find the legal notice here.QBT_VERSION
This environment variable specifies the version of qBittorrent-nox to use.
For example,4.4.5-1is a valid entry. You can find all tagged versions here.
You can putlatestto use the latest stable release of qBittorrent.
If you are looking to test the bleeding-edge version, you can putalphato get the weekly build.
Alt2variation is available which uses libtorrent v2.x. However, users have reported memory/performance issues. Use at your own risk!QBT_TORRENTING_PORT
This environment variable defines the port number used for torrenting traffic. Defaults to port6881if value is not set.QBT_WEBUI_PORT
This environment variable defines the port number used for qBittorrent WebUI. Defaults to port8080if value is not set.
There are some paths involved:
<your_path>/config
Full path to a folder on your host machine which will store qBittorrent configurations. Using a relative path will not work.<your_path>/downloads
Full path to a folder on your host machine which will store the files downloaded by qBittorrent. Using a relative path will not work.
-
Running the image
-
If using Docker (not Docker Compose), edit the variables and run:
export \ QBT_LEGAL_NOTICE=<put_confirm_here> \ QBT_VERSION=latest \ QBT_TORRENTING_PORT=6881 \ QBT_WEBUI_PORT=8080 \ QBT_CONFIG_PATH="<your_path>/config" \ QBT_DOWNLOADS_PATH="<your_path>/downloads" docker run \ -t \ --name qbittorrent-nox \ --read-only \ --rm \ --stop-timeout 1800 \ --tmpfs /tmp \ -e QBT_LEGAL_NOTICE \ -e QBT_TORRENTING_PORT \ -e QBT_WEBUI_PORT \ -p "$QBT_TORRENTING_PORT":"$QBT_TORRENTING_PORT"/tcp \ -p "$QBT_TORRENTING_PORT":"$QBT_TORRENTING_PORT"/udp \ -p "$QBT_WEBUI_PORT":"$QBT_WEBUI_PORT"/tcp \ -v "$QBT_CONFIG_PATH":/config \ -v "$QBT_DOWNLOADS_PATH":/downloads \ qbittorrentofficial/qbittorrent-nox:${QBT_VERSION}
-
If using Docker Compose:
docker compose up
-
A few notes:
- Alternatively, you can use
ghcr.io/qbittorrent/docker-qbittorrent-nox:${QBT_VERSION}for the image path. - You can pass command-line arguments to
qbittorrent-noxby appending them to the end ofdocker run ...command. If using Docker Compose, modify thecommand:array in docker-compose.yml. - By default the timezone in the container uses the default of Alpine Linux (which is most likely
UTC). You can set the environment variableTZto your preferred value. - You can change the User ID (UID) and Group ID (GID) of the
qbittorrent-noxprocess by setting environment variablesPUIDandPGIDrespectively. By default they are both set to1000.
Note that you will need to remove--read-onlyflag (when using Docker) or setread_only: false(when using Docker Compose) as these settings are incompatible with each other. - You can set additional group ID (AGID) of the
qbittorrent-noxprocess by setting the environment variablePAGID. For example:10000,10001, this will set the process to be in two (secondary) groups10000and10001. By default there is no additional group.
Note that you will need to remove--read-onlyflag (when using Docker) or setread_only: false(when using Docker Compose) as they are incompatible with it. - It is possible to set the umask of the
qbittorrent-noxprocess by setting the environment variableUMASK. By default it uses the default from Alpine Linux. - You can list the compile-time Software Bill of Materials (sbom) with the following command:
docker run --entrypoint /bin/cat --rm qbittorrentofficial/qbittorrent-nox:latest /sbom.txt
- Alternatively, you can use
-
Then you can login to qBittorrent-nox at:
http://<your_docker_host_address>:8080- For older qBittorrent versions (< 4.6.1), the default username/password is:
admin/adminadmin. - For newer qBittorrent versions (≥ 4.6.1), qBittorrent will generate a temporary password and print it to the console (via stdout).
You need to use it to login. See the announcement.
If you don't have a console attached, you can rundocker logs qbittorrent-noxto show the logs.
After logging in, don't forget to change the password to something else!
To change it in WebUI: 'Tools' menu -> 'Options...' -> 'Web UI' tab -> 'Authentication' - For older qBittorrent versions (< 4.6.1), the default username/password is:
-
-
Stopping container
-
When using Docker (not Docker Compose):
docker stop qbittorrent-nox
-
When using Docker Compose:
docker compose down
-
Refer to manual_build folder.
To attach gdb to the running qbittorrent-nox process, follow the steps below:
-
Before you start the container
- Remove
--read-onlyas it will need additional packages within the container.
Or disable the respective attributes in docker-compose.yml. - Add
--cap-add=SYS_PTRACEtodocker runargument list.
Or enable the respective attributes in docker-compose.yml.
- Remove
-
Start the container
-
Drop into container
# to find container id docker ps # drop into container docker exec -it <container_id> /bin/sh
-
Install packages
apk add \ gdb \ musl-dbg
-
Attach gdb to the running process
# to find PID of qbittorrent-nox ps -a # attach debugger gdb -p <PID>