Ubuntu 10.10 LAN Torrent Seedbox With Avalanche-rt, Lighttpd, Rtorrent, Vsftpd And Samba

This tutorial is based on a LAN setup, but it should also be applicable for an Internet seedbox (e.g. on a vps or rootds), but some additional steps may need to be performed (firewall, securing rpc-mount, generally hardening of the server).

The best lightweight software combination for a seedbox is lighttpd with rtorrent/libtorrent and a nifty web interface. So we use avalanche-rt, an actively developed project which looks very promising.

 

System

First step is to install the distribution of your choice on your box. Use a minimal installation if possible. The rest of the steps are Ubuntu specific.

At the end of the installation choose the ssh-server as additional service which should be installed.

After the reboot, first thing we need to do, is to connect to the Internet (if not already).

If you, like me, use a laptop as your server, you may want or need to use a wireless connection to connect to the Internet. You can do this without a graphical interface with the neat tool wicd-curses, an ncurses frontend for wicd.

Get it with (obviously you need to be connected to the Internet to perform this step, so in most cases you need a wired connection for at least this step):

sudo apt-get install wicd-ncurses

Afterwards, you may have to manually start the wicd-daemon:

sudo /etc/init.d/wicd start

Then you should be able to use wicd-curses and connect to your wireless network. If you are connected, perform a system update:

sudo apt-get update && sudo apt-get upgrade

Next, we install some software which makes live a bit more easy:

sudo apt-get install htop mc pydf

htop lets you check you system, mc comes in kind handy when handling a lot of files and pydf gives you nice overview over the space left on your harddrive.

Let’s set up the seedbox:

 

Webserver

First step is to install lighttpd and php:

sudo apt-get install lighttpd php5-cgi php5-curl

Then we create a file to test if php is working:

sudo nano /var/www/phpinfo.php

Fill it with:

<?php
phpinfo();
?>

If you now go to

<yourip>/phpinfo.php

you will just see a 403 (Forbidden) error

So we have to set up php to work with lighttpd:

sudo nano /etc/php5/cgi/php.ini

Search (strg + w)) for

cgi.fix_pathinfo

and uncomment the line. Save and exit (strg + x).

Next, we configure lighttpd to use php5. Open lighttpd.conf...

sudo nano /etc/lighttpd/lighttpd.conf

and add to the

server.modules

section (right at the beginning of the file)

"mod_fastcgi"

and at the end of the file the following:

fastcgi.server = ( ".php" => ((
                     "bin-path" => "/usr/bin/php5-cgi",
                     "socket" => "/tmp/php.socket"
                 )))

Then restart lighttpd:

sudo /etc/init.d/lighttpd restart

If we now go to

<yourip>/phpinfo.php

you should see some information about php.

 

rTorrent

Now we install more rtorrent and other needed software:

sudo apt-get install screen libtorrent11 rtorrent

Get the default-config for rtorrent (we're in our home-directory now):

wget "http://libtorrent.rakshasa.no/export/1135/trunk/rtorrent/doc/rtorrent.rc"

and move it to the right location:

mv rtorrent.rc .rtorrent.rc

Create needed folders:

mkdir downloads
mkdir .session
mkdir torrents-watch
mkdir torrent-files

Next, edit .rtorrent.rc:

nano .rtorrent.rc

Look for

directory =

and uncomment it and change it to your needs (in our case: directory = /home/downloads/).

Next, search for

session

and uncomment it and change it to your needs (in our case: session = /home/.session/).

Go to the end of .rtorrent.rc an insert the following:

#SCGI Server
scgi_port = 127.0.0.1:5001

Save & exit nano (strg + x).

Now we can start rtorrent and check if scgi support is enabled:

rtorrent

You should see something like

"XMPLRPC initialized with 519 functions."

Next step is to enable RPC with lighttpd:

sudo nano /etc/lighttpd/lighttpd.conf

Add to the

server.modules

section the following:

"mod_scgi"

and at the end of the file the following:

#SCGI Server
scgi.server = (
"/RPC2" =>
( "127.0.0.1" =>   (
"host" => "127.0.0.1",
"port" => 5001,
"check-local" => "disable"
)
)
)

and reload lighttpd:

sudo /etc/init.d/lighttpd restart

Because this is a LAN setup, we do not protect the RPC-mount with a username / password combination. You will find it on almost every other tutorial out there and you really should protect the RPC-mount-directory with a strong password if you intend to use your seedbox on a server exposed to the Internet. But in our case it is not necessary and just an additional point of failure.

So we now have rtorrent with xmlrpc enabled, and lighttpd with xmlrpc enabled. Now we need the avalanche-rt web interface.

Share this page:

0 Comment(s)