There are a number of reasons why using a seedbox is a good idea; they remove the need to upload content using your home connection, they (almost) hide your IP address from the swarm and the content stored on one can be accessed from anywhere.

If you do a search for seedbox hosting you’ll find a huge number of providers offering what they claim to be great deals. As with most things tech the cost can be cut massively by not using the branded product and making it yourself instead using the base hardware. You basically need two things to do it the hard way; the server and some software to run on it.

The Server

The cheapest way is to use a shared VPS. Better performance could be found on a dedicated server but it would probably cost about twenty times as much, and since a casual user will only really care about average speed over an hour or so a slightly wobbly VPS will do.

The first thing to do is find a suitable server. The key things to look for are the amount of bandwidth available and the amount of storage space you get. How much of those you need will depend on your usage so just make sure you get enough. You’ll find Xen and OpenVZ servers, the difference is not that important other than to say both are fine for this.

For a bit of added anonymity look for a provider that accepts Bitcoin and doesn’t need any personal details. You will have to connect to the box via your internet connection be aware that it could technically be linked back to you. These providers are often a bit shady and willing to overlook mild abuse on their services so be aware that the servers will probably be a bit worse.

The Software

My general operating system of choice is Ubuntu server so I went with that for the OS, if you want to follow the set-up guide here then use that too so the commands work.

There are a couple of options for the torrent client but I found Deluge to be the simplest that has all the features I wanted. It has two components; one for the server and a client that connects to it to control the downloads. The advantage over this over something that uses a web interface is that it feels just like a, quite nice, local client.

The only thing we need on top of this is a way to get the files off the server. A common option for this is using a web server and HTTP to grab the files, this works fine but I decided to use the more encrypted option of rsync over SSH.

Server Installation

Each VPS provider will have their own way of getting Ubuntu onto the server, some won’t have an up to date image available so make sure you get it up to the current version once installed.

Everything we need is in the default repo so all we need to do is tell the server to install it for us with apt-get install deluged rsync. It should look a little like this.

root@test-server: ~ $ apt-get install deluged rsync
Reading package lists... Done
Building dependency tree       
Reading state information... Done
rsync is already the newest version.
The following extra packages will be installed:
  deluge-common libboost-python1.55.0 libboost-system1.55.0 libtorrent-rasterbar7 python-libtorrent
  python-twisted-web python-xdg
Suggested packages:
  libtorrent-rasterbar-dbg
The following NEW packages will be installed
  deluge-common deluged libboost-python1.55.0 libboost-system1.55.0 libtorrent-rasterbar7
  python-libtorrent python-twisted-web python-xdg
0 to upgrade, 8 to newly install, 0 to remove and 0 not to upgrade.
Need to get 2,506 kB of archives.
After this operation, 13.0 MB of additional disk space will be used.
Do you want to continue? [Y/n] 

Hit yes and let it do it’s installing.

Deluge is set up to allow multiple users to share one server, so it has privilege levels for user accounts. Since we’re the only one using the seedbox we can just make an admin account and use that for everything.

To create a new user add a new line to /var/lib/deluge/config/auth in the format username:password:level. There will be a default account in there which can be left alone and you want to use level 10 which means admin. There is more information about authentication on the Deluge wiki.

Client Installation

For Linux users this is usually pretty simple as most distributions will have a suitable client in the default repos. On Ubuntu you want to apt-get install deluge-gtk and let it grab all the dependencies for you. Windows and Mac installers are available from the download page on the website.

The first time you run the client it will ask you to enter the details of the user account on the remote server, once this is done tick the box for auto connect. After that the client will behave pretty much in the same way as a local one, the only difference is that the files are not yet on your local machine.

For Linux users one of the most straightforward ways to transfer files from a remote machine is to use the rsync command. You can either execute it manually or use an overnight sync job which is what I do due to bandwidth limitations. Here is the script I use to grab files from the server, it works pretty well for me but you have to be careful to remove stuff from the server to stop it being downloaded twice.

#!/bin/bash

remote_user="root"
remote_host=""
remote_path="/var/lib/deluged/completed"

local_path="/media/media/Unsorted"
local_user="www-data"
local_group=$local_user
local_mode="0750"

if [ $# -eq 1 ]; then
    rate_limit=$1
else
    rate_limit=400
fi

if [ ! -d $local_path ]; then
    echo "Local path (${local_path}) does not exist"
    exit 1
fi

if [ -f ${local_path}/rsync.log ]; then
    rm ${local_path}/rsync.log
fi

touch ${local_path}/rsync.log
chown -R ${local_user}:${local_group} ${local_path}/rsync.log
chmod -R ${local_mode} ${local_path}/rsync.log

rsync -r -v --progress --size-only --bwlimit=${rate_limit} --log-file=${local_path}/rsync.log ${remote_user}@${remote_host}:${remote_path}/* ${local_path}

chown -R ${local_user}:${local_group} ${local_path}
chmod -R ${local_mode} ${local_path}

exit 0

For Windows or Mac users (or just Linux users who want a bit more simplicity) there is a web UI for Deluge that can be installed on the server with apt-get install deluge-web which allows torrent files to be uploaded and gives access to downloaded files.