
Transmission
Lightweight BitTorrent client that “just works”
Transmission is a fast, easy-to-use BitTorrent client designed with sensible defaults that work out of the box. Ubuntu chose Transmission as its default BitTorrent client largely due to its easy learning curve. QuickBox Pro installs the modern v4 (4.x+, Qt6-based) build by default on every supported distro, with the legacy v3 (3.00) available as an opt-in where it is still compiled. Every install ships per-user systemd services, an nginx reverse proxy, and pre-configured RPC access.
Just Works
Sensible defaults with minimal configuration needed out of the box
Web Interface
Clean, responsive web UI via nginx reverse proxy with RPC authentication
Watch Directories
Auto-add torrents from watch folder for automated workflows
Dynamic Versions
Available versions resolved from the compiled-packages manifest with dual packaging support
RPC Whitelist
Secure RPC access with authentication and IP whitelist (127.0.0.1)
Peer Blocklists
Support for bad peer blocklists to enhance privacy and security
Installation
Install from the Dashboard
Open App Dashboard → Package Management (/dashboard?mode=packages), find Transmission in the catalog (browse Download Clients or search), and click Install. The version selector defaults to the latest (v4) build for a new install; the legacy 3.x series appears as a choice only on distros where it is still compiled (Debian 12 and Ubuntu 22). The dashboard streams the install log live and Transmission appears in your Application Control panel when it finishes. Reinstall, Update, and Remove are available from the same panel.
When you update an existing install, the dashboard keeps the major you already have — a v3 install stays on v3 unless you explicitly pick v4 in the selector. Picking v4 migrates the install for all users.
What you see and can manage is gated by your account: admins manage any user’s apps; regular users manage their own. For the full package flow see App Management.
Transmission installs as a system-wide binary, so switching between the legacy 3.x and modern 4.x+ series replaces the installation for all users on the server. User configurations and torrent data are preserved, but plan the switch with all users in mind.
Install from the CLI (automation)
The CLI runs the same install and is suited to automation and scripting. By default it installs the latest modern v4 (4.x+, Qt6) build. Use -o '<version>' to pin an exact build resolved from the compiled-packages manifest; the version’s major decides the packaging branch — 4.x+ installs the modern single-package build, 3.x installs the legacy multi-part build. --v3 and --v4 remain as aliases that install the latest build within that major:
qb install transmission -u username # latest modern v4 (default)
qb install transmission -u username --v4 # latest v4 (explicit alias)
qb install transmission -u username --v3 # latest legacy 3.x (Debian 12 / Ubuntu 22 only)
qb install transmission -u username -o '4.0.6' # pin an exact build from the manifestqb update transmission -u username preserves the installed major — a v3 install stays on v3 and a v4 install stays on v4. To migrate an existing v3 install to v4, pass the flag explicitly: qb update transmission -u username --v4. Passing an explicit -o '<version>' whose major differs from the installed one also migrates, because you asked for that exact build. Switching branch removes the other branch for all users on the server.
Version availability by distro
The legacy v3 (3.00) build ships only where QuickBox provides compiled 3.00 packages:
| Distro | Default install | --v3 available? |
|---|---|---|
| Debian 12 (bookworm) | v4 | Yes |
| Ubuntu 22 (jammy) | v4 | Yes |
| Ubuntu 24 (noble) | v4 | No — v4 installs instead, with a notice |
| Debian 13 (trixie) | v4 | No — v4 installs instead, with a notice |
On distros where v3 is unavailable, --v3 falls back to installing v4 and prints a notice explaining that the legacy build is not compiled for that distro.
CLI Commands
| Command | Description |
|---|---|
qb install transmission -u username | Install Transmission v4 (modern, Qt6, latest from manifest) |
qb install transmission -u username --v4 | Install Transmission v4 explicitly (same as default) |
qb install transmission -u username --v3 | Install latest legacy Transmission 3.x (Debian 12 / Ubuntu 22 only) |
qb install transmission -u username -o '4.0.6' | Install an exact build from the manifest |
qb reinstall transmission -u username | Reinstall the current major while preserving QuickBox integration |
qb reinstall transmission -u username -o '4.0.6' | Reinstall a specific build from the manifest |
qb update transmission -u username | Update Transmission, keeping the installed major |
qb update transmission -u username --v4 | Migrate an existing v3 install to v4 (affects all users) |
qb update transmission -u username -o '4.1.3' | Update to an exact build (a different major migrates all users) |
qb remove transmission -u username | Remove Transmission and clean up files |
qb help transmission | Display comprehensive help information |
Dual Packaging Model
Transmission uses different packaging depending on the version series:
- Modern v4 (4.x+) — installed as a single
+allmods.deb that bundles all components. Qt6 dependencies are resolved and installed from the compiled-packages manifest alongside the main package. This is the default. - Legacy v3 (2.x/3.x) — installed as separate subpackages:
transmission-daemon,transmission-cli,transmission-common,transmission-gtk, andtransmission-qt. All are held at the installed version to prevent accidental upgrades.
This means --v3/--v4 does not just change the version number; it changes the entire packaging structure — which is why switching branch replaces the installation for all users.
CLI Options
-u, --usernameRequiredTarget QuickBox username for install/reinstall/remove operations. Supply Admin username for version updates affecting all users.
--v4Explicitly install or update to the latest Transmission 4.x+ build (Qt6-based, single +allmods package). This is the default; pass it on update to migrate an existing v3 install. Affects all users on the server.
--v3Install the latest legacy Transmission 3.x build (multi-part packaging). Available only on Debian 12 and Ubuntu 22; on other distros v4 installs instead with a notice. Affects all users on the server.
-oPin an exact build from the compiled-packages manifest, e.g. -o '4.0.6'. The version's major selects the packaging branch (4.x+ modern, 3.x legacy), so it also serves as an explicit version pick without --v3/--v4. On update/reinstall, a key whose major differs from the installed one migrates all users.
QuickBox automatically assigns ports:
- RPC port: Starting at
15105(auto-incremented per user) - Peer port: Random from
49152-65535
Find your assigned RPC port in the QuickBox dashboard or in ~/.config/Transmission/settings.json.
Accessing Transmission
After installation, access Transmission at:
https://your-server-ip/transmission/Transmission is automatically integrated into your QuickBox dashboard. Find it on the App Dashboard (the default control view), expand its row for port and status, and click Open to launch the web interface.
Login credentials:
- Username: Your QuickBox username
- Password: Your QuickBox password (RPC authentication)
Browser Download Index
In addition to the Transmission Web UI, QuickBox installs a per-user browser file index that lists your Transmission download folder in a dark-themed fancyindex view. Useful for quickly grabbing a single finished file without loading the torrent client.
https://your-server-ip/username.transmission.downloadsThe nginx config at /etc/nginx/software/username.dlindex.conf serves your Transmission download folder through the shared fancyindex snippet. By default that is /home/username/torrents/transmission. Access is protected by auth_basic against /etc/htpasswd.d/htpasswd.username, which is the same credential file used for other QuickBox user endpoints.
- The listing is the folder set as
download-dirin the Transmission settings. With the default folder it also contains thewatch/folder. Change the download folder in Transmission and QuickBox re-renders the index on its own, usually within seconds, with an hourly check as a safety net. If the folder can’t be served (it is a symlink, it is outside your home folder,/mntand/media, it doesn’t exist, or the web server can’t read it), the index keeps serving the default folder and the dashboard shows a note beginning “Showing the default folder.” See Open download folder for each note. - Removing Transmission keeps your finished downloads.
qb remove transmissiondeletes the client’s configuration and data but never the download folder or what is inside it, and the remove output names the folder it kept. With the default folder, that includeswatch/. Reinstalling writes yourdownload-dirback into the fresh settings. - The index is stitched together per user: if you also have qBittorrent, rTorrent, Deluge, NZBGet, or SABnzbd installed, their completed-download locations are appended into the same
username.dlindex.confso each client gets its own URL. It is one shared browse-index config covering all of that user’s download clients. - The feature has no service of its own — it is pure nginx. If the page fails to load — returns a 502 or 404, shows blank, or errors — while the rest of the dashboard works normally, the per-user config is broken or missing. Rebuild it with
qb fix dlindex -u username(one user) orqb fix dlindex(all users). See the Download Clients overview and theqb fixreference.
Initial Configuration
1. Web Interface Setup
On first access, the web interface is pre-configured:
- RPC authentication: Enabled with your QuickBox credentials
- RPC whitelist: Restricted to
127.0.0.1for security - Download directory:
/home/username/torrents/transmission/downloads - Watch directory:
/home/username/torrents/transmission/watch
No additional setup required—Transmission is ready to use immediately.
2. Configure Watch Directory (Optional)
Enable automated torrent loading:
- Navigate to Preferences (gear icon) → Network
- Verify watch directory is enabled:
/home/username/torrents/transmission/watch - Drop
.torrentfiles into the watch folder—they’ll be added automatically
3. Connect to *arr Applications (Optional)
If using Sonarr, Radarr, or other *arr applications:
- In your
*arrapp, go to Settings → Download Clients → Add (+) - Select Transmission from the list
- Enter connection details:
- Host:
127.0.0.1 - Port: Your RPC port (check
~/.config/Transmission/settings.json→rpc-port) - URL Path:
/transmission/ - Username: Your QuickBox username
- Password: Your QuickBox password
- Host:
- Test and save
Service Management
Transmission runs as a systemd service for reliability and automatic startup.
systemctl status transmission@username # Check status
systemctl restart transmission@username # Restart service
journalctl -u transmission@username -f # View live logs
systemctl enable transmission@username # Start on boot
systemctl disable transmission@username # Prevent auto-startTroubleshooting
Transmission Won’t Start
journalctl -u transmission@username -fCheck for port conflicts:
grep -i 'rpc-port' ~/.config/Transmission/settings.json
# Default: 15105Web Interface Not Accessible
Symptoms
- Cannot access Transmission web interface
- 403 Forbidden or authentication errors
- RPC connection refused from
`*arr`apps - nginx proxy not working
Resolution
- Verify service is running: systemctl status transmission@username
- Check RPC whitelist in settings.json includes 127.0.0.1
- Ensure nginx configuration exists: /etc/nginx/conf.d/username.transmission.conf
- Reload nginx: systemctl reload nginx
Configuration File Corruption
# Stop service
systemctl stop transmission@username
# Backup current configuration
cp ~/.config/Transmission/settings.json ~/.config/Transmission/settings.json.backup
# Edit or regenerate configuration
nano ~/.config/Transmission/settings.json
# Restart service
systemctl start transmission@usernamePermission Issues
qb fix permissions -u username
systemctl restart transmission@usernameVersion Switch Issues
A bare qb update transmission keeps the installed major, so migrating a v3 install to v4 needs the explicit flag. If the in-place migration fails, do a clean reinstall:
# Migrate v3 → v4 in place
qb update transmission -u username --v4
# If the migration fails, clean reinstall on v4 (the default)
qb remove transmission -u username
qb install transmission -u usernameVPN routing
Transmission can route all of its torrent traffic through a VPN tunnel using QuickBox Pro’s app-scoped routing, with either a WireGuard or an OpenVPN backend. When routing is enabled, Transmission downloads, seeds, and announces to trackers from the VPN peer’s exit IP instead of your server’s real IP.
Transmission downloads, seeds, and announces its ratio from the VPN exit IP, and all of that keeps working whatever your provider. Whether other peers can start a connection to you depends on the provider, and the routing card shows a Port forwarding section for it: with ProtonVPN (NAT-PMP) or AirVPN (a port from your account) the dashboard keeps Transmission’s peer port on the provider’s forwarded port; with a provider that forwards none (like NordVPN) your tracker may show you as not connectable, which only means other peers can’t start a connection to you. You may seed to slightly fewer peers, because two peers that are both not connectable can’t reach each other. A provider that forwards a port (ProtonVPN, AirVPN) removes that limit. The section works the same for every torrent client; see qBittorrent routing for the full walkthrough. Port forwarding works with the WireGuard backend. A client routed over OpenVPN works the same way as the NordVPN case above: downloading, seeding and ratio are unaffected.
Transmission is a per-user template service (transmission@<user>), so several users can each route their own instance independently. Its WebUI stays reachable at its usual https://yourserver.com/username/transmission/ address through the dashboard proxy while routed. It appears in the App-Scoped Routing card once Transmission is installed and its service is running.
Transmission must have its remote-access whitelist migrated for VPN routing first. If it has not been updated, the dashboard refuses to enable routing and tells you to update Transmission first, because a routed Transmission would otherwise reject the dashboard’s own RPC connection arriving from the routing subnet. Run qb update transmission once, then enable routing.
How to enable VPN routing for Transmission:
- Go to System > VPN Control (
/system/vpn) in the dashboard - Upload at least one WireGuard
.confor OpenVPN.ovpnfile if you have not done so already - Scroll to the App-Scoped Routing card on the VPN Control page
- Select Transmission from the app list
- Choose the tunnel backend and a peer configuration from the dropdown
- Click Enable Routing
Transmission restarts inside its VPN network namespace and its torrent traffic exits through the VPN peer from that point forward.
The default kill-switch stale threshold for Transmission is 30 minutes, matching qBittorrent and the other downloaders. You can adjust it between 60 seconds and 24 hours on the app row inside the App-Scoped Routing card.
For full details on routing configuration, kill switch settings, and live metrics, see the VPN Control dashboard page.
Best Practices
Do
- Use qb update transmission to keep Transmission updated safely
- Monitor service health with systemctl status transmission@username
- Use the watch folder for automated torrent loading
- Configure speed limits during peak hours if needed
- Set appropriate peer limits based on your connection
- Enable blocklists for enhanced privacy and security
- Create categories for different
`*arr`applications - Regularly check disk space—torrents can grow quickly
Don't
- Don't install Transmission from system package managers—use QuickBox only
- Don't manually edit systemd or nginx configs without backing up first
- Don't expose the RPC port directly to the internet without nginx in front
- Don't edit settings.json while service is running—stop it first
- Don't mix v3 and v4 installations—choose one for all users
- Don't delete .config/Transmission directory manually—use qb remove
- Don't ignore RPC whitelist—keep it restricted to 127.0.0.1
- Don't use Transmission for high-performance seeding—consider rTorrent instead
FAQ
packages.lst manifest in the QuickBox/compiled-packages repository, filtered by your distro codename. Add --v3 to install the legacy 3.00 build where it is compiled.--v3 is unavailable, so v4 installs instead and a notice explains why.-o '<version>' with an exact version key from the compiled-packages manifest, for example qb install transmission -u username -o '4.0.6'. The version's major decides the packaging branch, so -o alone selects the branch without --v3/--v4. Without -o, the CLI installs the latest build within the selected major. In the dashboard, pick the version in the install dialog on the Packages tab, or change an already-installed app's version from its row's version popover on the App Dashboard.qb update transmission preserves the installed major — a v3 install stays on v3 and a v4 install stays on v4. To migrate an existing v3 install to v4, run qb update transmission -u username --v4 explicitly (or pick v4 in the dashboard version selector).+allmods .deb that bundles all components. Legacy v3 (2.x/3.x) installs as separate subpackages (transmission-daemon, transmission-cli, transmission-common, transmission-gtk, transmission-qt).Related Applications
Indexers
Other Download Clients
Web Interfaces
Additional Resources
Join the Community
Media server operators sharing configs, getting support, and shaping the future of QuickBox Pro.