LIVEReading: Run Transmission BitTorrent Daemon with a Web UITotal time: 10 minSteps: 6Worked first time: 78% LIVEReading: Run Transmission BitTorrent Daemon with a Web UITotal time: 10 minSteps: 6Worked first time: 78%
CBW
Run Transmission BitTorrent Daemon with a Web UI
Mediumgithub.com/transmission/transmission2026-07-06

Run Transmission BitTorrent Daemon with a Web UI

Install Transmission's headless daemon on Linux and control all your torrents from a browser-based web UI. No desktop required.

// Build stats

  • Total time10 min
  • Number of steps6
  • DifficultyMedium
  • Worked first time78%
// Before you start

What you need

  • A Linux machine or VPS (Ubuntu 20.04+ recommended)
  • Terminal access with sudo privileges
  • Basic comfort running copy-paste commands
  • An internet connection
01
Step 1 of 6

Install Transmission daemon from your package manager

2 min

Ubuntu and Debian ship Transmission in their official repositories. Installing the daemon package gives you the headless background service plus the web UI. No compiling needed — this is the fastest path to a working setup.

Terminal · mac
$ sudo apt update && sudo apt install -y transmission-daemon
What you should see
Lines scrolling by ending with 'Setting up transmission-daemon' and no red error text.
This might happen

Command not found or package missing on non-Debian distros

On Fedora/RHEL use: sudo dnf install transmission-daemon. On Arch use: sudo pacman -S transmission-cli

02
Step 2 of 6

Stop the daemon before editing its config

1 min

Transmission writes its config file back to disk when it shuts down, overwriting any changes you made while it was running. Always stop it first, edit the file, then restart. Skipping this step means your edits will be silently erased.

Terminal · mac
$ sudo systemctl stop transmission-daemon
What you should see
No output means success. Confirm with: sudo systemctl status transmission-daemon — look for 'inactive (dead)'.
03
Step 3 of 6

Set a password and allow remote access in the config file

5 min

The config file is a plain text JSON file. You need to change three things: set your own RPC password, change 'rpc-whitelist-enabled' to false so you can reach the web UI from another device, and optionally change the download directory. The nano text editor is pre-installed on most Ubuntu systems. Use arrow keys to navigate, Ctrl+O to save, Ctrl+X to exit.

Terminal · mac
$ sudo nano /etc/transmission-daemon/settings.json
What you should see
The nano editor opens showing a JSON file. Find the lines: "rpc-password", "rpc-username", and "rpc-whitelist-enabled". Change rpc-password to a plain text password of your choice (Transmission will hash it automatically on next start). Change rpc-whitelist-enabled from true to false. Save and exit.
This might happen

File path not found or permission denied

Try the alternate path: sudo nano /var/lib/transmission-daemon/.config/transmission-daemon/settings.json

04
Step 4 of 6

Restart the daemon and verify it is running

1 min

Starting the daemon again applies your new settings. The service runs silently in the background — the status check is the only way to confirm it started cleanly.

Terminal · mac
$ sudo systemctl start transmission-daemon && sudo systemctl status transmission-daemon
What you should see
Green dot and text reading 'active (running)'. If you see 'failed', scroll up in the status output for the error message.
This might happen

Status shows 'failed' after a config file edit

You likely introduced a JSON syntax error. Run: sudo nano /etc/transmission-daemon/settings.json and check for missing commas or mismatched quotes. A JSON validator at jsonlint.com can help.

05
Step 5 of 6

Open the web UI in your browser

1 min

Transmission's built-in web interface runs on port 9091. If you are on the same machine, use localhost. If you are on a remote server, replace 'localhost' with the server's IP address. Log in with the username and password you set in the config file.

Terminal · mac
$ http://localhost:9091/transmission/web/
What you should see
A login dialog appears. Enter your rpc-username (default: transmission) and the password you set. After login you see the Transmission web UI with an empty torrent list.
This might happen

Browser shows 'connection refused' or times out on a remote server

Open port 9091 in your firewall: sudo ufw allow 9091/tcp then reload: sudo ufw reload. Then try again with the server's public IP.

06
Step 6 of 6

Add your first torrent

2 min

Click the open-folder icon (top left of the web UI) to upload a .torrent file from your computer, or click the magnet-link icon to paste a magnet link. The torrent will start downloading immediately to the directory set in your config (default: /var/lib/transmission-daemon/downloads).

Terminal · mac
$ To check where files are saved: ls /var/lib/transmission-daemon/downloads/
What you should see
The torrent appears in the web UI list with a progress bar. Running the ls command shows the torrent's folder or file appearing in the downloads directory.
This might happen

Permission denied when Transmission tries to write to the download folder

Run: sudo chown -R debian-transmission:debian-transmission /var/lib/transmission-daemon/downloads/ to restore correct ownership.

// Status

cooked. baked. worked.

A Transmission BitTorrent daemon running silently in the background on your Linux machine, controllable from any browser on your network via a web UI on port 9091.

// the honest bit

The honest part

This guide installs the stable packaged version, not the latest GitHub source. Building from source (as the README describes) requires installing a C++ compiler, CMake, and several development libraries — that is a multi-step process not suited for non-developers. The web UI is functional but minimal; for a richer experience consider pairing Transmission with a third-party front-end like Flood. Also note: downloading copyrighted material via BitTorrent may be illegal in your country — use responsibly.