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


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 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



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://

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:


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: 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:


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 script



18. Configure libtorrent



19. Compile libtorrent



20. Install libtorrent

sudo make install


21. Extend /etc/

echo “include /usr/local/lib” | sudo tee -a /etc/


22. Updated cache

sudo ldconfig


23. Go into the rtorrent folder

cd ../rtorrent

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


24. Run the script



25. Configure rtorrent

./configure –with-xmlrpc-c


26. Compile rtorrent



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:

scgi_port =
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



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


$XMLRPCMountPoint = "/RPC2";


$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” | 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 /var/www/rutorrent/>
                AllowOverride All
                Order allow,deny
                allow from all

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 /var/www/>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride None
                Order allow,deny
                allow from all
        ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
        <Directory "/usr/lib/cgi-bin">
                AllowOverride None
                Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
                Order allow,deny
                Allow from all
        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 ::1/128
    <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"

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:


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.