Ubuntu / Linux news and application reviews.

I've used rTorrent and wTorrent (which I've already posted how to set up) and also ruTorrent and various Web UIs for rTorrent but I've came to the conclusion that the best way (for me at least) for remote Bittorrent download is Transmission Remote GUI - I've been using it for a few days now and love it. Please note that I've only tested it on a remote Debian server but I've adapted everything for Ubuntu so it should work for it too.

In this article, I will cover installing and configuring transmission-daemon in a headless (but should work on a normal Debian / Ubuntu install too) Debian or Ubuntu machine.


transmission remote gui

transmisson-remote-gui is feature rich cross platform (works on Windows, Linux and Mac OSX) front-end to remotely control Transmission daemon via its RPC protocol. It is faster and has more functionality than build-in Transmission web interface.


Transmission Remote GUI features:

* Native application for Windows and Linux (GTK2)
* uTorrent-like interface
* Select files to download
* Choose files priority
* View details about connected peers
* Full information about each torrent
* Per torrent options


Install Transmission



To run transmission-daemon, you need to install transmission-cli, transmission-common and transmission-daemon. Please note that I have tested this on the latest transmission-cli (1.76).

Installing Transmission Daemon in Ubuntu


This is optional - if you want to install the latest Transmission, use the following PPA:
sudo add-apt-repository ppa:transmissionbt/ppa
sudo apt-get update

Then install the required packages:
sudo apt-get install transmission-cli transmission-common transmission-daemon


Installing Transmission Daemon in Debian



Debian Sid and Squeeze come with the latest Transmission version, however, Debian Lenny does not. We could compile it of curse but I was too lazy this time so I used the packages from Sid and installed them in Lenny.

-For Debian Sid, Squeeze or newer:
apt-get install transmission-cli transmission-common transmission-daemon


-For Debian Lenny:

Libevent is needed so we are going to install this too.

-i386:
wget http://ftp.de.debian.org/debian/pool/main/t/transmission/transmission-daemon_1.76-1_i386.deb
wget http://ftp.us.debian.org/debian/pool/main/t/transmission/transmission-cli_1.76-1_i386.deb
wget http://http.us.debian.org/debian/pool/main/libe/libevent/libevent-1.4-2_1.4.13-stable-1_i386.deb
wget http://ftp.us.debian.org/debian/pool/main/t/transmission/transmission-common_1.76-1_all.deb


-amd64:
wget http://ftp.de.debian.org/debian/pool/main/t/transmission/transmission-daemon_1.76-1_amd64.deb
wget http://ftp.us.debian.org/debian/pool/main/t/transmission/transmission-cli_1.76-1_amd64.deb
wget http://http.us.debian.org/debian/pool/main/libe/libevent/libevent-1.4-2_1.4.13-stable-1_amd64.deb
wget http://ftp.us.debian.org/debian/pool/main/t/transmission/transmission-common_1.76-1_all.deb


-for both:

Then, install these packages:
dpkg -i *.deb


Configure transmission-daemon



If you are reading this how-to, you must be wanting to run transmission-daemon remotely, through transmisson-remote-gui so we must make the necessary adjustments:

transmission-daemon -f -t -u your_username -v your_password -w /path/to/downloaded/torrents -g /etc/transmission-daemon/
(For Ubuntu, add "sudo" in front of the command)

Now you can click Ctrl + C to cancel (close transmission-daemon)

And make the torrents download dir writable:
chmod -R 777 /path/to/downloaded/torrents


Explanations:

Replace the text in bold with your values (it's self explanatory).

The -f option sets transmission-daemon to run in the foreground (not as a daemon) for this session so we can easily close it using Ctrl + C.

"-t" sets the authentication to true.

"-g" sets the Transmission Daemon config folder. Without setting it, ~/.config/transmission-daemon will be used.


Further configuring (required for remote usage!)

Setting the allowed hosts to "*" does not work through the transmission-daemon -a option for some reason, so we must edit the newly created config file. You can, of course, set the allowed hosts to just your IP, but I for instance have a dynamic IP address so I have to set it to "*". Let's proceed:

Firstly, make sure transmission-daemon is not running, or else, the changes to it's settings file will not be saved (it's a known bug):
/etc/init.d/transmission-daemon stop

(if using Ubuntu, simply put sudo in front of the above command)

Now let's edit the settings file:

-For Ubuntu:
sudo nano /etc/transmission-daemon/settings.json

-For Debian:
nano /etc/transmission-daemon/settings.json


-Both:
Look for this line:
"rpc-whitelist":

and set it to your remote IP or to "*".

Then press Ctrl + O and then Ctrl + X (save and exit).

Run transmission-daemon


Now let's start transmission-daemon. Simply type:
/etc/init.d/transmission-daemon start


or:
transmission-daemon


(for Ubuntu, use sudo)

It should use all the configuration we used earlier. If for some reason you cannot connect using the Transmission Remote GUI, stop transmission-daemon and check the configuration file.

To stop it:
/etc/init.d/transmission-daemon stop


Start it again with:
/etc/init.d/transmission-daemon start


The transmission-daemon init.d script should already be created, but in case it's not (for older versions), see THIS PAGE.


Download and configure transmisson-remote-gui


Download Transmission Remote GUI.

This is actually pretty easy, there are binary files for Windows, Linux (all) and Mac, so download the desired format for your OS and run it.

In Linux, all you have to do is make the file called "transgui" executable (chmod +x transgui) and then double click it.

To set it to connect to your newly set up Ubuntu / Debian machine, simply go to Tools > Options, enter the remote host IP (leave the port as is - it should be ok), and also the username and password you've set like I have explained in the transmission-daemon configuration above:

transmission remote gui options

(the info in the screenshot was removed for obvious reasons =) ).


Note: you can also use Transmission Remote Java, an alternative to Transmission Remote GUI, but I don't really like Java so I choose Transmission Remote GUI.