In this tutorial we will turn our Raspberry Pi into an always-on BitTorrent box. This will let you have a small, power efficient, torrent server running around the clock.
Why is this a good idea?
A lot of companies offer to download their software and/or files using torrents, and when you downloaded the installer for your Raspberry Pi OS, you could also do this as a torrent.
If you are downloading and/or sharing a lot of files using torrents (legally of course), you might have a dedicated machine, or even your laptop, running for long periods of time solely for this purpose. This can be very power consuming, and that’s why the Raspberry Pi is perfect to use as a dedicated torrent box that can run 24/7. Compared to a laptop or stationary computer, the Pi is very power efficient.
This tutorial uses a Raspberry Pi running RaspBMC as an example system, but you can also use Raspbian. In order proceed I assume that you:
- Have a Raspberry Pi running either Raspbian or RaspBMC.
- Are able to remotely access your Pi using SSH.
- Have some sort of storage connected where you can save files.
If you need help getting started with any of these, you can find more information here:
- Getting started with Raspberry Pi – Part 1
- Getting started with Raspberry Pi – Part 2 (SSH etc)
- Mount a network drive on your Raspberry Pi
Before we start, let’s make sure we have the latest repositories and that our system is up to date:
sudo apt-get update && sudo apt-get upgrade -y
Install and setup Deluge daemon and console
sudo apt-get install deluged
sudo apt-get install deluge-console
Once it is installed, we want to start Deluge and then stop it again. This will create the default configuration files we need.
sudo pkill deluged
Now we have the configuration files we need, and we will edit one of them. Open and edit the ~/.config/deluge/auth file and add the following to the end of the file:
echo "username:password:level" >> ~/.config/deluge/auth
Where user and password are the credentials you want to use for remote access to Deluge, and the level is the access level you want to give that user. You should put this to 10 (which is the full-access/admin level for the Deluge daemon). As an example, I use pi:raspberry:10.
Start the Deluge daemon again, and the Deluge console:
This will bring up the Deluge console window, where we will make some changes to the configuration. Inside the Deluge console, type the following:
config -s allow_remote True
On the first line we enable remote access to our Deluge daemon, and on the second line we simply double-check that the value is correctly set to True.
Now we have to restart the Deluge daemon again to make the new configurations take effect:
sudo pkill deluged
Now that the Deluge daemon is ready for remote connects, it’s time to install a client on our that we can connect to the daemon.
Install and setup Deluge client
In order to connect to the Deluge daemon running on the Pi, we need to install the Deluge client on our computer:
If you’re running Ubuntu on your PC, you can install the Deluge client with the following command:
sudo apt-get install deluge
If you are running other Linux distros you can download the necessary package from the official Deluge download page.
Once you have installed the client, start it. The first time we run the client, we have to make a few quick changes. Go to Preferences -> Interface. Under the submenu Classic Mode there’s a checkbox named ‘Enable’. This is checked by default, we need to uncheck it.
Click OK, and restart the client.
Now that the client starts, you will be presented with the Connection Manager. This is where we need to create a connection to the Deluge daemon running on the Pi. Click Add in order to create a new connection, and input the IP of your Pi as well as the username and password that you set for the daemon in the previous section. Leave the port to 58846 as this is the default port.
Once you click add, you will get back to the connection manager and you should see your connection:
Select it and click Connect. Now you are connected to you Deluge daemon on the Pi! We don’t don’t have any torrents there yet, but we’ll get to that soon.
Configure Deluge to use a proxy
Although this section is optional, it is highly recommended that you use a proxy to protect your BitTorrent traffic. There are several reasons why you should use a proxy to shuttle your traffic, and even though you’re not downloading anything illegal it is still better to be safe than sorry. If you want to be anonymous on the Internet, a proxy will help keep eavesdroppers away. By default, Deluge also encrypts all traffic which is good if your ISP is throttling BitTorrent traffic.
If you are suspecting you ISP of throttling your BitTorrent traffic, this tool
can help you detect if this is the case.
I am using Private Internet Access as a proxy, and it’s fairly cheap for what you get ($39.95/year). You are of course free to use any service you like, and it’s up to you if you trust using a free service.
Once you have a proxy that you can use, we have to configure Deluge to shuttle the traffic through this proxy. To do this, open Preferences -> Proxy. Set all sections to ‘Socks5 W/ Auth’ and input your credentials. If you are using Private Internet Access’ proxy, the host is proxy-nl.privateinternetaccess.com and the port 1080.
In order for the changes to take effect, we need to restart the Deluge daemon on the Pi:
sudo pkill deluged
You will have to reconnect to the Daemon from the client as well.
Now it’s time to test that the proxy is setup correctly. We will do this by downloading a completely legal torrent from TorGuard.net. Download the torrent, add it to your queue, and select it to see the IP through which your client is connected. If everything is setup correctly you should see the IP of your proxy instead of your own IP (see the bottom of the picture below).
Configure download folders
Now it’s time to setup the folders where Deluge should download your files. By default, the files will be saved to /home/pi, and this will probably fill up your Pi’s SD card pretty quickly. Instead we are going to save our files to an external storage.
I am using a network drive that I have mounted to /media/network/, but you can use any storage device you like. Just make sure you have permissions to write to it. Mount an SMB network drive on Raspberry Pi will show you how to use a network drive with your Pi.
We are going to create three new folders that we’ll use for Deluge:
.downloading – this is where the active downloads will exist
.completed – once finished downloading, all files will be moved to this folder
.watch – Deluge will watch for newly added .torrent files in this folder, and automatically start them
Decide where you want to create the folders (I have chosen to create these in /media/network/Public/), and run:
sudo mkdir /media/network/Public/.downloading
sudo mkdir /media/network/Public/.completed
sudo mkdir /media/network/Public/.watch
Now open the Preferences -> Downloads section in the client and set the folders to the ones you just created.
You don’t have to restart anything this time.
Now we can test that everything is working as it should. Let’s download a large enough file to make sure it runs smoothly, the latest release of Raspberry Pi NOOBS installer (roughly 1.3GB) should be sufficient: NOOBS Latest
Instead of adding it manually through the client, you can try saving the .torrent file to the .watch folder to make sure Deluge starts it automatically.
That’s it! Now you have your very own always-on BitTorrent box running on your Raspberry Pi.