How to Install Transmission on Fedora

Transmission provides a lightweight BitTorrent client that handles downloading and sharing files with minimal system overhead. Whether you want to grab large Linux ISOs, sync datasets from academic torrents, run a seedbox on your home server, or automate downloads via command-line scripts, Transmission offers dedicated packages for each scenario. This guide covers every installation method available on Fedora, from the GTK desktop client to the headless daemon with web interface access. By the end, you will have Transmission installed, configured for your workflow, and verified as working correctly.

Choose Your Transmission Installation Method

Transmission is available through Fedora’s official repositories and Flathub, so you have flexibility in how you install and update the client. The table below compares your options:

MethodChannelVersionUpdatesBest For
DNF (GTK)Fedora ReposStableAutomatic via dnf upgradeGNOME desktop users who want distro-tested packages
DNF (Qt)Fedora ReposStableAutomatic via dnf upgradeKDE Plasma users who prefer Qt applications
DNF (Daemon)Fedora ReposStableAutomatic via dnf upgradeHeadless servers, NAS devices, always-on systems
FlatpakFlathubLatest stableManual via flatpak updateUsers who want sandboxing and the newest release

For most desktop users, the DNF GTK method is recommended because it integrates seamlessly with GNOME, receives security updates through standard system upgrades, and requires no additional setup. Choose the daemon if you plan to run Transmission on a server or want web-based remote access.

Method 1: Install Transmission via DNF

Fedora’s official repositories provide several Transmission packages tailored to different use cases. Before installing, update your system to ensure you have the latest package metadata and security patches:

sudo dnf upgrade --refresh

Install Transmission GTK (Desktop)

The GTK version provides a graphical interface that integrates well with GNOME and other GTK-based desktop environments. As a result, this package is suitable for most desktop users:

sudo dnf install transmission-gtk -y

This command also installs transmission-common, which provides shared utilities like transmission-remote for command-line control and transmission-create for making torrent files.

Once installation completes, verify the application is available:

transmission-gtk --version
transmission-gtk 4.x.x (xxxxxxxxxx)

Install Transmission Qt (KDE Plasma)

If you use KDE Plasma or another Qt-based desktop environment, the Qt version provides a native look and feel that matches your system theme:

sudo dnf install transmission-qt -y

Next, verify the installation succeeded by checking the version:

transmission-qt --version
transmission-qt 4.x.x (xxxxxxxxxx)

Install Transmission CLI Tools Only

For users who only need command-line utilities without a graphical interface or daemon, the CLI package provides standalone tools for creating, editing, and inspecting torrent files:

sudo dnf install transmission-cli -y

This package includes several tools: transmission-cli (a minimal BitTorrent client), transmission-create, transmission-edit, and transmission-show. To verify the installation, run:

transmission-show --version
transmission-show 4.x.x (xxxxxxxxxx)

Method 2: Install Transmission via Flatpak

Flatpak provides Transmission in a sandboxed environment, which isolates the application from your system and ensures you receive the latest upstream releases. Although Fedora Workstation includes Flatpak by default, you may need to add the Flathub repository.

Add the Flathub Repository

Flathub is the primary source for Flatpak applications. Add it to your system if it is not already configured:

flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo

The --if-not-exists flag prevents errors if Flathub is already present. To confirm the remote is active, list configured remotes:

flatpak remotes
Name    Options
fedora  system,oci
flathub system

Install Transmission from Flathub

With Flathub configured, you can now install Transmission using the Flatpak command:

flatpak install flathub com.transmissionbt.Transmission -y

During the first installation, Flatpak downloads the required GNOME runtime (approximately 600 MB), which subsequent GNOME applications will share. Once complete, verify the installation:

flatpak list | grep -i transmission
Transmission    com.transmissionbt.Transmission    4.x.x    stable    system

Launch Transmission

After installation, you can start Transmission either from your desktop environment or the terminal.

Launch from Applications Menu

To get started, search for “Transmission” in Activities and open it. The application appears in your applications menu immediately after installation without requiring a logout.

Launch from Terminal

To launch the DNF-installed GTK version, run:

transmission-gtk &

Similarly, launch the Qt version with:

transmission-qt &

If you installed via Flatpak, use:

flatpak run com.transmissionbt.Transmission &

In each case, the ampersand (&) runs the application in the background, freeing your terminal for other commands.

Configure Transmission Daemon for Server Use

The Transmission daemon runs as a background service, making it ideal for headless servers, NAS devices, or systems that need to download torrents continuously. If you are setting up a dedicated download server, you might also consider running Transmission in a Docker container on Fedora for additional isolation. This section covers installing and configuring the native daemon for remote access through its built-in web interface.

Install the Transmission Daemon

First, install the daemon package, which includes the systemd service and the transmission system user:

sudo dnf install transmission-daemon -y

During installation, the package creates a dedicated transmission user with its home directory at /var/lib/transmission. This user runs the daemon process and owns downloaded files.

Start and Enable the Service

First, start the daemon and enable it to run automatically at boot:

sudo systemctl enable --now transmission-daemon

Then verify the service is running:

systemctl status transmission-daemon
● transmission-daemon.service - Transmission BitTorrent Daemon
     Loaded: loaded (/usr/lib/systemd/system/transmission-daemon.service; enabled; preset: disabled)
    Drop-In: /usr/lib/systemd/system/service.d
             └─10-timeout-abort.conf
     Active: active (running) since ...; 5s ago
   Main PID: 12345 (transmission-da)
      Tasks: 3 (limit: 4652)
     Memory: 8.0M
        CPU: 150ms
     CGroup: /system.slice/transmission-daemon.service
             └─12345 /usr/bin/transmission-daemon -f --log-level=error

Configure the Daemon Settings

Transmission stores its configuration in a JSON file that the daemon creates on first run. Because the daemon rewrites this file when it shuts down, you must stop the service before editing to prevent your changes from being overwritten:

sudo systemctl stop transmission-daemon

Next, open the settings file in a text editor:

sudo nano /var/lib/transmission/.config/transmission-daemon/settings.json

If the file does not exist, start the daemon once (sudo systemctl start transmission-daemon), wait a few seconds, then stop it again. This allows the daemon to generate a default configuration file.

Common Configuration Options

Below are frequently modified settings. Edit the JSON values as needed:

Download directory:

"download-dir": "/home/downloads/complete",

Incomplete downloads directory (keeps partial downloads separate):

"incomplete-dir": "/home/downloads/incomplete",
"incomplete-dir-enabled": true,

Speed limits (values in KB/s):

"speed-limit-down": 5000,
"speed-limit-down-enabled": true,
"speed-limit-up": 500,
"speed-limit-up-enabled": true,

Remote access authentication:

"rpc-authentication-required": true,
"rpc-username": "admin",
"rpc-password": "your-secure-password",

When you restart the daemon, Transmission automatically hashes the password for security. As a result, the plaintext password you enter is replaced with a hash that cannot be reversed.

Allow remote connections (enable access from other devices on your network):

"rpc-whitelist": "127.0.0.1,192.168.1.*",
"rpc-whitelist-enabled": true,

Replace 192.168.1.* with your local network range. To allow all IP addresses (not recommended for internet-exposed servers), set "rpc-whitelist-enabled": false.

Apply Configuration and Restart

After saving your changes, restart the daemon:

sudo systemctl start transmission-daemon

At this point, the web interface is accessible at http://localhost:9091 (or your server’s IP address if connecting remotely). If you enabled authentication, enter the username and password you configured.

Open Firewall Port for Remote Access

If you want to access the web interface from another computer on your network, open port 9091 in firewalld:

sudo firewall-cmd --permanent --add-port=9091/tcp
sudo firewall-cmd --reload

Additionally, for better peer connectivity and faster downloads, open the default peer listening port:

sudo firewall-cmd --permanent --add-port=51413/tcp
sudo firewall-cmd --permanent --add-port=51413/udp
sudo firewall-cmd --reload

Finally, verify the ports are open:

sudo firewall-cmd --list-ports
9091/tcp 51413/tcp 51413/udp

Manage Torrents with transmission-remote

In addition to the web interface, the transmission-remote command allows you to control the daemon from the terminal. This tool is included in the transmission-common package, which is installed as a dependency of the daemon.

Add a torrent:

transmission-remote -a /path/to/file.torrent

Add a magnet link:

transmission-remote -a "magnet:?xt=urn:btih:..."

List all torrents:

transmission-remote -l
    ID   Done       Have  ETA           Up    Down  Ratio  Status       Name
     1    45%   1.2 GB    3 hrs        0.0   2.5M      0  Downloading  example-file.iso
Sum:              1.2 GB               0.0   2.5M

Remove a torrent (keep downloaded files):

transmission-remote -t 1 -r

Remove a torrent and delete files:

transmission-remote -t 1 -rad

If you configured authentication, add the -n flag with your credentials:

transmission-remote -n admin:password -l

Update Transmission

Keeping Transmission updated ensures you have the latest security patches and protocol improvements. Here is how to update each installation type.

Update DNF Installation

Transmission receives updates through standard system upgrades. Run the following command to update all packages, including Transmission:

sudo dnf upgrade --refresh

Update Flatpak Installation

If you installed via Flatpak, update all Flatpak applications with:

flatpak update

Alternatively, to update only Transmission:

flatpak update com.transmissionbt.Transmission

Troubleshooting

Web Interface Shows “403 Forbidden”

If you receive a 403 error when accessing the web interface from another computer, the IP whitelist is likely blocking your connection. First, check whether your current IP is allowed in the settings:

sudo grep rpc-whitelist /var/lib/transmission/.config/transmission-daemon/settings.json

To resolve this, stop the daemon, add your network range to the whitelist, then restart:

sudo systemctl stop transmission-daemon
sudo nano /var/lib/transmission/.config/transmission-daemon/settings.json
# Edit: "rpc-whitelist": "127.0.0.1,192.168.1.*",
sudo systemctl start transmission-daemon

Permission Denied on Download Directory

If the daemon cannot write to your download directory, the transmission user likely lacks appropriate permissions. First, check ownership:

ls -la /path/to/downloads

Then grant the transmission user access by adding it to the directory’s group or changing ownership:

sudo chown -R transmission:transmission /path/to/downloads

Alternatively, add your user to the transmission group and set group-writable permissions:

sudo usermod -aG transmission $USER
sudo chmod -R g+rw /path/to/downloads

Daemon Configuration Changes Not Applied

If your settings.json changes are not taking effect, the daemon may be overwriting them. Always stop the daemon before editing:

sudo systemctl stop transmission-daemon
# Make your changes
sudo systemctl start transmission-daemon

However, if the file still reverts, check that you are editing the correct file at /var/lib/transmission/.config/transmission-daemon/settings.json and not a different location.

SELinux Prevents Access to Download Directory

By default, Fedora enables SELinux, which may block the daemon from accessing directories outside its default paths. If you see “Permission denied” errors despite correct file permissions, SELinux is likely the cause. To check for denials, run:

sudo ausearch -m avc -ts recent | grep transmission

To allow the daemon to write to a custom directory, apply the correct SELinux context:

sudo semanage fcontext -a -t transmission_home_t "/path/to/downloads(/.*)?"
sudo restorecon -Rv /path/to/downloads

As a result, this sets the proper SELinux type so the Transmission daemon can read and write files in your custom download location.

Remove Transmission

If you no longer need Transmission, remove it using the method matching your installation.

Remove DNF Installation

First, uninstall the Transmission packages you installed:

sudo dnf remove transmission-gtk transmission-qt transmission-daemon transmission-cli -y

Next, remove orphaned dependencies that were installed alongside Transmission:

sudo dnf autoremove -y

Finally, verify the removal succeeded:

rpm -q transmission-gtk transmission-daemon
package transmission-gtk is not installed
package transmission-daemon is not installed

Remove Flatpak Installation

To uninstall the Flatpak application, run:

flatpak uninstall com.transmissionbt.Transmission -y

Afterward, remove unused Flatpak runtimes to free disk space:

flatpak uninstall --unused -y

Remove User Configuration and Data

Warning: The following commands permanently delete Transmission configuration and cached data. If you want to preserve your settings or torrent history, back up these directories first.

To clean up the GTK or Qt desktop client, remove user configuration:

rm -rf ~/.config/transmission

If you used the daemon, remove the service data directory:

sudo rm -rf /var/lib/transmission

Finally, for Flatpak installations, remove sandboxed application data:

rm -rf ~/.var/app/com.transmissionbt.Transmission

Conclusion

At this point, you have Transmission installed and configured on Fedora. The GTK and Qt clients provide straightforward desktop interfaces, while the daemon enables headless operation with remote web access. For ongoing maintenance, standard system updates keep your installation current with security patches and protocol improvements.

Useful Links

For more information about Transmission, visit the official project resources:

Leave a Comment