🟦 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.
📦 Resources & Setup Scripts
Grab the automated bash script from GitHub to follow along with the video.
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
| Port | Purpose |
|---|---|
| 8115 | Web UI (WEBUI_PORT) |
| 6881 TCP/UDP | BitTorrent 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.
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.