.github | ||
manual_build | ||
.env | ||
docker-compose.yml | ||
Dockerfile | ||
entrypoint.sh | ||
LICENSE | ||
Readme.md |
qBittorrent-nox Docker Image
Repository on Docker Hub: https://hub.docker.com/r/qbittorrentofficial/qbittorrent-nox
Repository on GitHub: https://github.com/qbittorrent/docker-qbittorrent-nox
Supported architectures
- linux/386
- linux/amd64
- linux/arm/v6
- linux/arm/v7
- linux/arm64/v8
- linux/riscv64
Reporting bugs
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
Usage
-
Prerequisites
In order to run this image you'll 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 significantly ease the process: https://docs.docker.com/compose/install/
-
Download this repository
You can either
git clone
this repository or download an .zip of it: https://github.com/qbittorrent/docker-qbittorrent-nox/archive/refs/heads/main.zip -
Edit Docker environment file
If you are not using Docker Compose you can skip editing the environment file. However the variables presented below is crucial in later steps, make sure you understand them.
Find and open the
.env
file 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.Environment variables
QBT_LEGAL_NOTICE
This environment variable defines whether you had read the legal notice of qBittorrent.
Putconfirm
only if you had 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-1
is a valid entry. You can find all tagged versions here.
You can putlatest
to use the latest stable release of qBittorrent.
If you are up to test the bleeding-edge version, you can putalpha
to get the weekly build.QBT_WEBUI_PORT
This environment variable sets the port number which qBittorrent WebUI will be binded to. Defaults to port8080
if value is not set.
Volumes
There are some paths involved:
<your_path>/config
Full path to a folder on your host machine which will store qBittorrent configurations. Using relative path won't work.<your_path>/downloads
Full path to a folder on your host machine which will store the files downloaded by qBittorrent. Using relative path won't 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_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_WEBUI_PORT \ -p "$QBT_WEBUI_PORT":"$QBT_WEBUI_PORT"/tcp \ -p 6881:6881/tcp \ -p 6881:6881/udp \ -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. - By default the timezone in the container uses the default of Alpine Linux (which is most likely
UTC
). You can set the environment variableTZ
to your preferred value. - You can change the User ID (UID) and Group ID (GID) of the
qbittorrent-nox
process by setting environment variablesPUID
andPGID
respectively. By default they are both set to1000
.
Note that you will need to remove--read-only
flag (when using Docker) or setread_only: false
(when using Docker Compose) as they are incompatible with it. - You can set additional group ID (AGID) of the
qbittorrent-nox
process by setting the environment variablePAGID
. For example:10000,10001
, this will set the process to be in two (secondary) groups10000
and10001
. By default there is no additional group.
Note that you will need to remove--read-only
flag (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-nox
process 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-nox
to 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
-
Build image manually
Refer to manual_build folder.
Debugging
To attach gdb to the running qbittorent-nox process, follow the steps below:
-
Before you start the container
- Remove
--read-only
as it will need additional packages within the container.
Or disable the respective attributes in docker-compose.yml. - Add
--cap-add=SYS_PTRACE
todocker run
argument 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>