Video coming soon…

🟦 Setup qBittorrent — Torrent Client with Web UI

Deploy qBittorrent on Ubuntu — the most popular open-source torrent client with a full-featured web UI, categories, RSS automation, and bandwidth control.

⚠️ This script is provided for demo and testing purposes only. Not intended for production use.

📦 Resources & Setup Scripts

Grab the automated bash script from GitHub to follow along with the video.

Automated install script — one command deploys qBittorrent with persistent config and a downloads folder.
View on GitHub

Quick Install:

wget https://raw.githubusercontent.com/mhmdali94/Docker/main/downloads/qbittorrent/qbittorrent-ubuntu.sh
chmod +x qbittorrent-ubuntu.sh
sudo bash qbittorrent-ubuntu.sh

Tutorial Steps

1 Download the Script

wget https://raw.githubusercontent.com/mhmdali94/Docker/main/downloads/qbittorrent/qbittorrent-ubuntu.sh

2 Make it Executable

chmod +x qbittorrent-ubuntu.sh

3 Run the Installer

The script installs Docker if needed, then starts qBittorrent with persistent config and downloads volumes under /root/docker/qbittorrent.

sudo bash qbittorrent-ubuntu.sh

4 Access the Web UI

Open your browser, log in with username admin and the temporary password from docker logs qbittorrent:

http://<your-server-ip>:8115

Ports Used

PortPurpose
8115Web UI (WEBUI_PORT)
6881 TCP/UDPBitTorrent peer connections

Overview

qBittorrent is the most widely used open-source BitTorrent client, and its qbittorrent-nox build ships a complete web UI designed for headless servers. This setup runs the lscr.io/linuxserver/qbittorrent image with the web UI on port 8115 and peer traffic on port 6881. Everything you can do in the desktop app works in the browser: adding torrents and magnet links, per-torrent bandwidth limits, sequential downloading, categories with automatic save paths, RSS feeds with download rules, and search plugins. Config lives in /config and completed files in /downloads, both persisted as bind mounts on the host.

Why Use It

qBittorrent hits the sweet spot between features and resource usage: it is free of ads and trackers-bundling (unlike µTorrent), actively maintained, and its web UI is complete enough to fully replace a desktop client. It is also the download client with the best support across the *arr ecosystem — Sonarr, Radarr, and Lidarr all treat it as a first-class integration with category-based routing. Running it in Docker on a server means downloads continue 24/7 without keeping a PC on, and your ISP-facing traffic can be isolated behind a VPN container.

When You Need It

    Who Should Use It

      Real Use Cases

        Main Features

          How to Use After Installation

            Security Best Practices

              Ports and Firewall Notes

              Port 8115 serves the web UI (set by the WEBUI_PORT environment variable) and should be restricted to your LAN or VPN — never open it to the internet without a reverse proxy and authentication. Port 6881 TCP and UDP handles BitTorrent peer connections; forwarding it on your router improves connectability and speeds, but it also works (more slowly) without forwarding. If you use UFW, the script opens the needed ports; verify with ufw status.

              Backup and Maintenance

                Common Mistakes

                  Troubleshooting

                    Alternatives

                    Transmission is lighter on RAM and simpler, at the cost of fewer features (no built-in search or RSS rules) — we have a separate tutorial for it. Deluge offers a plugin architecture and a daemon/thin-client model. rTorrent with the Flood or ruTorrent web UI is popular on seedboxes for its raw performance but is harder to configure. For Usenet rather than torrents, SABnzbd (also in this Academy) fills the same slot in a media automation stack.

                    When Not to Use It

                    If you only download from Usenet, you need SABnzbd or NZBGet instead — qBittorrent speaks only BitTorrent protocols. On very low-memory devices (256–512 MB), Transmission's smaller footprint is a better fit. And if your jurisdiction or network policy prohibits peer-to-peer traffic, use direct-download tools like Aria2 or MeTube rather than trying to tunnel torrents through.

                    PrismaTechWork Professional Help

                    PrismaTechWork provides end-to-end infrastructure services — from initial deployment and security hardening to ongoing monitoring, automated backups, and dedicated support.

                      Contact Us

                      Frequently Asked Questions

                      How do I find the qBittorrent web UI password?

                      Recent qBittorrent versions generate a temporary password on every fresh start until you set one. Run docker logs qbittorrent and look for the line announcing the temporary password for the admin user, log in at http://your-server:8115, then set a permanent password under Options → Web UI.

                      How do I connect qBittorrent to Sonarr and Radarr?

                      In Sonarr/Radarr go to Settings → Download Clients → + → qBittorrent. Enter the server IP, port 8115, and your admin credentials, and set a category (tv for Sonarr, movies for Radarr). Both apps will then send torrents and import completed files from /downloads automatically.

                      Should I forward port 6881 on my router?

                      Forwarding 6881 TCP/UDP makes you connectable to more peers, which improves speeds and seeding. Without it, qBittorrent still works through outgoing connections but may be slower on poorly-seeded torrents. If the server is behind CGNAT or a VPN, use the VPN provider's port-forwarding feature instead.

                      Can I run qBittorrent behind a VPN?

                      Yes — the common pattern is a gluetun (WireGuard/OpenVPN) container and running qBittorrent with network_mode: service:gluetun. Peer traffic then exits via the VPN while you still reach the web UI through a published port on gluetun. Bind qBittorrent's network interface to the VPN tunnel in Options → Advanced as a kill-switch.

                      Where do downloaded files go and how do I share them with Jellyfin?

                      Files land in the /downloads volume, which the script maps to /root/docker/qbittorrent/downloads on the host. Mount that same host path into your Jellyfin container (read-only is fine) and add it as a library. For a cleaner setup, use categories so TV and movies are already sorted into subfolders.