Jump to content

qBittorrent

From ArchWiki

qBittorrent is an open source and cross-platform BitTorrent client written in C++, Qt and Python (optional search engine), using libtorrent-rasterbar library.

It is fast, stable and light, supports unicode and provides an integrated search engine. It comes with UPnP/NAT-PMP port forwarding, encryption, FAST extension and PeX support.

Installation

There are two packages in official repositories to install qBittorrent with:

https://github.com/qbittorrent/qBittorrent || qbittorrent
  • qBittorrent-nox — Without graphical interface (nox -> no X server).
https://github.com/qbittorrent/qBittorrent || qbittorrent-nox
Note: Although qbittorrent-nox does not directly depend on Xorg, its dependency qt6-base currently depends on X facilities and Mesa, which would increase about 300M installation size. To minimize the installation size, install qt6-base-headlessAUR or qt6-base-noguiAUR[broken link: package not found] instead of qt6-base before installing qbittorrent-nox

Configuration

A configuration file is created at ~/.config/qBittorrent/qBittorrent.conf upon running the program the first time.

Autostart

Tip: To modify the settings (i.e. port) use an environment variable (for port it is QBT_WEBUI_PORT) by using a drop-in file for its systemd unit. Run qbittorrent-nox --help to learn more about other environment variables (this information is not stated in the manual).

Running as the package-created qbt user

As of qbittorrent-nox-5.0.4-3, an unprivilleged user, qbt, will be created upon installation. The package also ships with qbittorrent-nox.service in which this user is hardcoded.

To see the OTP to the WebGUI upon starting the daemon, review the output of: systemctl status qbittorrent-nox.

In order to prevent the legal disclaimer from being written to journalctl, edit /var/lib/qbittorrent/.config/qBittorrent/qBittorrent.conf and add the following:

[LegalNotice]
Accepted=true

Running as any user

Another option is to run the the qbittorrent-nox@.service in which QBittorrent will run as the user defined.

Search engine

The optional search engine may be enabled through the menu View > Search Engine, which opens the Search tab.

Search plugins

Default trackers can be added/enabled in the Search tab by opening the tracker window with Search plugins... (bottom right) and pressing Check for updates. More unofficial search plugins can be found here.

Web interface

Default location

By default, qBittorrent will listen on all interfaces on port 8080. Thus it is accessible at http://HOST_IP:8080.

Note: HTTPS is not enabled by default, so https://HOST_IP:8080 is not accessible.

Default username & password

The default username is admin and the default password for versions before 5.0.0 is adminadmin. Versions 5.0.0 and above generate a random password visible in console until manually saved to prevent unauthorized access. See here for more information related to this change.

Allow access without username & password

In a home environment, it is often desirable to allow access to the Web UI without having to input a username and password. This can be configured in the Web UI itself after logging in using the default username and password.

Alternatively, to avoid logging in for the first time, add this section to ~/.config/qBittorrent/qBittorrent.conf:

[Preferences]
WebUI\AuthSubnetWhitelist=192.168.1.0/24
WebUI\AuthSubnetWhitelistEnabled=true
WebUI\UseUPnP=false

The above configuration items will:

  • Allow clients logging in from 192.168.1.x to access the Web UI without having to enter a username and password.
  • Disable UPnP for the Web UI, so that the Web UI will not be accessible from outside the network.

After that, reload qbittorrent-nox@username.service.

Reverse proxy configuration

nginx

Refer to qbittorrent wiki

Themes

Unofficial themes

Troubleshooting

qBittorrent stopped downloading (after reopening)

Sometimes, the nova component of the search engines does not terminate after closing qbittorrent. Doing so, it binds the corresponding port, if one was set. Thus, one has to manually terminate the nova plugins:

 $ killall nova

See also