Cheap VPS & Xen Server

Residential Proxy Network - Hourly & Monthly Packages

How To Compile Coloured rTorrent From SVN In Ubuntu 10.10 Maverick Meerkat / Debian 6 Squeeze With ruTorrent


Introduction

rTorrent is a popular command line based bittorrent client. It provides very powerful features yet it is very light on the system – contrary to other bittorrent clients like Vuze. There are a couple of webinterfaces for it but they are not truly need. SSH access combined with the “screen” program provide you all the tools you need.

In addition to the previous compilation guides of rTorrent, this one will also feature ruTorrent on a force Apache SSL connection with password protection.

This howto works for Ubuntu 10.10 Maverick Meerkat and for Debian 6 Squeeze. The difference is that commands that contain sudo must be executed as root.

In this howto I assume you download and compile the sources from your ~/svn/rtorrent folder.

 

1. Remove current rtorrent installation

sudo apt-get remove rtorrent libtorrent*

 

2. Install necessary packages

sudo apt-get install build-essential autoconf apache2 automake libtool libncurses5-dev libncursesw5-dev libcurl4-openssl-dev screen openssl php5 php5-cli libapache2-mod-php5 curl libcppunit-dev libsigc++-2.0-dev subversion php5-cgi libapache2-mod-scgi

 

3. Create svn folder

mkdir ~/svn

 

4. Go into the svn folder

cd ~/svn

Current location: /home/USER/svn

 

5. Get the xmlrpc sources by svn

svn co https://xmlrpc-c.svn.sourceforge.net/svnroot/xmlrpc-c/advanced/ xmlrpc-c

Current xmlrcp reversion is 2090.

 

6. Go into xmlrpc-c folder

cd xmlrpc-c

Current location: /home/USER/svn/xmlrpc-c

 

7. Configure xmlrpc-c

./configure –disable-cplusplus

 

8. Compile xmlrpc-c

make

 

9. Install xmlrpc-c

sudo make install

 

10. Create rtorrent folder

mkdir ~/svn/rtorrent

 

11. Go into rtorrent folder

cd ~/svn/rtorrent

Current location: /home/USER/svn/rtorrent

 

12. Get the rtorrent sources by svn

svn co svn://rakshasa.no/libtorrent/trunk

Current rtorrent revision is 1191.

 

13. Go into the trunk folder

cd trunk

Current location: /home/USER/svn/rtorrent/trunk

 

14. Download the patches

Colour support for rtorrent:

wget http://www.simplylinux.ch/rtorrent/canvas-color_1191.patch

This patch enables you to colorize the rtorrent cli interfaces. It differentiaties between completed/uncompleted torrents and active/inactive ones. I first had to get used to it also but meanwhile I think it’s really a good enhancement. The patch was originally supplied here: http://libtorrent.rakshasa.no/ticket/1382. However that patch does not work with the current rev. anymore. Because of that I fixed it and supply it also from my server.

Torrent Tracker Stats:

wget http://www.simplylinux.ch/rtorrent/trackerinfo.patch

This patch shows the number of seeders/leechers/completed as supplied by the tracker in the tracker view. Often it’s not accurate however it’s usefull for me to check if a tracker has any peers at all listed for a given torrent.

 

15. Apply the patches

Colour support for rtorrent:

patch -p0 < canvas-color_1191.patch

Torrent Tracker Stats:

patch -p0 < trackerinfo.patch

 

16. Get into the libtorrent folder

cd libtorrent

Current location: /home/USER/svn/rtorrent/trunk/libtorrent

 

17. Run the autogen.sh script

./autogen.sh

 

18. Configure libtorrent

./configure

 

19. Compile libtorrent

make

 

20. Install libtorrent

sudo make install

 

21. Extend /etc/ld.so.conf

echo “include /usr/local/lib” | sudo tee -a /etc/ld.so.conf

 

22. Updated ld.so cache

sudo ldconfig

 

23. Go into the rtorrent folder

cd ../rtorrent

Current location: /home/USER/svn/rtorrent/trunk/rtorrent

 

24. Run the autogen.sh script

./autogen.sh

 

25. Configure rtorrent

./configure –with-xmlrpc-c

 

26. Compile rtorrent

make

 

27. Install rtorrent

sudo make install

28. Copy and extend rtorrent configuration

If you have no .rtorrent.rc file yet in your homefolder, copy the default one first:

cp ~/subversion/rtorrent/trunk/rtorrent/doc/rtorrent.rc ~/.rtorrent.rc

In order to make ruTorrent and the colours work, you have to add a few options to the .rtorrent.rc file. Add them at the end of the file:

http_capath=/etc/ssl/certs
scgi_port = 127.0.0.1:5000
encoding_list = UTF-8
# Color / Canvas patch
done_fg_color = 2
#done_bg_color = 2
active_fg_color = 1
#active_bg_color = 4

In addition I would also add the following items:

schedule = filter_active,10,10,"view_filter = active,\"or={d.get_up_rate=,d.get_down_rate=}\""
view_sort_new = seeding,less=d.get_message=
schedule = filter_seeding,30,30,"view_filter = seeding,d.get_message=; view_sort = seeding"

The first schedule command alters view 9 in such a way that only active torrents are being shown. The view_sort and the second schedule command alter view 8 in such a way, that “unusual” tracker replies are being displayed there. This makes it easier to find misbehaving torrents in rtorrent.

It is important to create the download and session directories. Set them in the .rtorrent.rc config and create the directories.

More info on rTorrent can be found on the Common Tasks page. Especially the section about watch dirs and move on completion are interesting.

 

29. Run rtorrent

Now that rtorrent is ready, run it in a screen session:

screen rtorrent

 

30. Create SSL Certificate

sudo openssl req $@ -new -x509 -days 365 -nodes -out /etc/apache2/apache.pem -keyout /etc/apache2/apache.pem

 

31. Go to the webfolder

cd /var/www

Current location: /var/www

 

32. Download ruTorrent

wget http://rutorrent.googlecode.com/files/rutorrent-3.2.tar.gz

 

33. Unpack ruTorrent

tar xvzf rutorrent-3.2.tar.gz

 

34. Go into ruTorrent folder

cd rutorrent

Current location: /var/www/rutorrent

 

35. Create .htaccess file

touch .htaccess

 

36. Chmod .htaccess file

chmod 0755 .htaccess

 

36. Edit .htaccess file

Add the following content to the .htaccess file:

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

 

34. Go into ruTorrent config folder

cd conf

Current location: /var/www/rutorrent/conf

 

35. Edit config.php

Replace

$XMLRPCMountPoint = "/RPC2";

with

$XMLRPCMountPoint = "/rutorrent/RPC2";

 

36. Chown ruTorrent to Apache

sudo chown -R www-data:www-data /var/www/rutorrent

 

37. Enable Apache Modules

sudo a2enmod ssl auth_digest scgi rewrite

 

38. Extend apache2.conf

echo “SCGIMount /rutorrent/RPC2 127.0.0.1:5000” | sudo tee -a /etc/apache2/apache2.conf

echo “servername localhost” | sudo tee -a /etc/apache2/apache2.conf

 

39. Go into the Apache sites enabled folder

cd /etc/apache2/sites-enabled

Current location: /etc/apache2/sites-enabled

 

40. Edit 000-default

Insert after

        <Directory /var/www/>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride None
                Order allow,deny
                allow from all
        </Directory>

this:

        <Directory /var/www/rutorrent/>
                AllowOverride All
                Order allow,deny
                allow from all
        </Directory>

This makes sure that the .htaccess in the rutorrent folder is being called and hence a redirect of to https will take place.

 

41. Edit 000-default

Still editing the 000-default file, add at the end this:

<VirtualHost *:443>
        ServerAdmin webmaster@localhost
        SSLEngine on
        SSLCertificateFile /etc/apache2/apache.pem
        DocumentRoot /var/www/
        <Directory />
                Options FollowSymLinks
                AllowOverride None
        </Directory>
        <Directory /var/www/>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride None
                Order allow,deny
                allow from all
        </Directory>
        ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
        <Directory "/usr/lib/cgi-bin">
                AllowOverride None
                Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
                Order allow,deny
                Allow from all
        </Directory>
        ErrorLog /var/log/apache2/error.log
        # Possible values include: debug, info, notice, warn, error, crit,
        # alert, emerg.
        LogLevel warn
        CustomLog /var/log/apache2/access.log combined
    Alias /doc/ "/usr/share/doc/"
    <Directory "/usr/share/doc/">
        Options Indexes MultiViews FollowSymLinks
        AllowOverride None
        Order deny,allow
        Deny from all
        Allow from 127.0.0.0/255.0.0.0 ::1/128
    </Directory>
    <Location /rutorrent>
        AuthType Digest
        AuthName "rtorrent"
        AuthDigestDomain /var/www/rutorrent/ http://SERVER_IP/rutorrent
        AuthDigestProvider file
        AuthUserFile /etc/apache2/passwords
        Require valid-user
        SetEnv R_ENV "/var/www/rutorrent"
     </Location>
</VirtualHost>

Replace SERVER_IP with the ip of your server

42. Add yourself to authdigest

sudo htdigest -c /etc/apache2/passwords rtorrent USER

Replace USER with your desired username and after that you will be prompted to enter the password and verify it.

 

43. Restart Apache

sudo service apache2 restart

Debian users have to issue:

/etc/init.d/apache2 restart

 

44. Try it

rTorrent should already be running, if not then start it. Then enter the server and rutorrent folder in your browser:

http://SERVER_IP/rutorrent

You will be auto-redirected to the HTTPS site and you’ll get a warning about the ssl certificate. Since you created it yourself you can ignore this warning and proceed (or add it to your browser for the next time). After that you are asked to enter username and password (see step 42). If you enter them correctly, you’ll get to ruTorrent web interface.

 

Enjoy

rtorrent_rutorrent

 

Comments

comments