Setting up Transmission as a service to use over the network

I want to set Transmission up on device like a Raspberry Pi so that it can be accessed over the network. As the Raspberry Pi is quite a simple device, I want to use an external storage drive for the downloaded files. Setting it up as a service wasn’t as straightforward as it could have been (hence this post). As usual the Arch Wiki has good documentation.

(NB: I have deemed this article to be half-complete, and expect to update it soon :)

Basic Overview

Transmission has a service component (transmission-daemon) and various interfaces including CLI, GUI and a web interface.

Configuring network access

Transmission binds to 0.0.0.0 by default, but restricts incoming connections to localhost. So we will want to edit the settings file to whitelist connections, e.g. from your LAN: 192.168.*.*.

The primary issue to overcome is that Transmission will override the settings file because it (quite rightly) hashes your password when you start/stop the daemon.

Therefore enable rpc-authentication-required, set the rpc-username, and set the rpc-password in plaintext (Transmission will hash this).

The web interface only supports HTTP, but it doesn’t matter much (unless you’re using pre-shared key based WiFi authentication, e.g. WPA2-PSK). It is possible to use HTTPS if a proxy server like Nginx is used.

Configuring storage

Add the configuration for RequiresMountsFor in the SystemD unit file to support removable devices.

Allow your user account to access Transmission files by adding yourself to the transmission group.

Take a look or leave any comments over at GitHub.