Wtorrent
From Gentoo Linux Wiki
Note: Large amounts of this article are taken from the rTorrent article so if something fails give that a try
Contents |
[edit] Introduction
wTorrent is a web interface to the popular rTorrent. It allows users to take advantage of the fast and small rTorrent while still having a GUI.
[edit] Install
[edit] PHP and lightTPD
First of all wTorrent uses php and pdo calls so we need to emerge php.
Use Flags: curl pdo sqlite cgi xmlrpc (?)
After this we need to install lightTPD.
Use Flags: php -minimal (?)
[edit] rTorrent
Of course we need to install rTorrent if we want to be able to interface with it through wTorrent. Note: rTorrent now has a USE flag option of daemon so we will want to enable this as it has a better init script.
Use Flags: daemon xmlrpc (?)
[edit] wTorrent
To install wTorrent we can either use the SVN snapshot from the webpage OR checkout the SVN tree
[edit] SVN snapshoot
Now we also need to go and download and install wTorrent. All we need to do it go to the wTorrent site and download the package.
Now the wTorrent archive needs to be extracted and the wTorrent folder under trunk needs to be places in our webroot. Normally /var/www/localhost/htdocs/
[edit] SVN Checkout
The SVN of the code is seen as the current work so you can grab this if you like rather then the archive off the page. For this you will need subversion if you do not have it.
then we can cd into our webroot /var/www/localhost/htdocs/
Now we CheckOut the svn tree for wtorrent
This will make the directory wtorrent and download the program there.
[edit] Configure
[edit] LightTPD
We need to turn on the module responsible for scgi support, along with two others. Surprisingly the module is called mod_scgi, and we add it to the server configuration. If mod_scgi isn't already there, add it to the list right above mod_accesslog.
If you are already making use of lightTPD as a web server, you might want to back up your current /etc/lighttpd/lighttpd.conf.
# NOTE: the order of modules is important. server.modules = ( # # Here goes a lot of other modules you might be using on your server. # "mod_access", "mod_scgi", "mod_accesslog" # Leave this one last as you may need some logging. )
Then, at the end of that file, we add lines responsible for rtorrent interactions:
scgi.server = (
"/RPC2" =>
( "127.0.0.1" =>
(
"host" => "127.0.0.1",
"port" => 5000,
"check-local" => "disable",
)
)
)
- "host" is set to the localhost, which is where rTorrent will be running.
- "port" is arbitrarily set, but it must be the same port used later for rTorrent.
Now, assuming everything is configured right, lightTPD should start up fine.
[edit] rTorrent
Now rTorrent needs to be configured so that it will start and run on its own at boot. The daemon USE Flag installs an init script for us but some changes can be made. First off in /etc/conf.d/rtorrentd it defaults to use the logged on user to start rTorrent. In the boot process this be root so this is a bad idea to leave as it is. It is a good idea to change this to a user account devoted to rtorrent. So a user called rtorrent or wtorrent or similar is a good idea.
USER="rtorrent"
Now that we have a user account and a script to start it we need to configure rTorrent. A basic config can be found at /usr/share/doc/rtorrent/rtorren-0.8.4/rtorrent.rc.bz2 Once modified to suit it needs to be saved in /home/rtorrent/.rtorrent.rc
# This is an example resource file for rTorrent. Copy to # ~/.rtorrent.rc and enable/modify the options as needed. Remember to # uncomment the options you wish to enable. # Maximum and minimum number of peers to connect to per torrent. #min_peers = 40 #max_peers = 100 # Same as above but for seeding completed torrents (-1 = same as downloading) #min_peers_seed = 10 #max_peers_seed = 50 # Maximum number of simultanious uploads per torrent. #max_uploads = 15 # Global upload and download rate in KiB. "0" for unlimited. #download_rate = 0 #upload_rate = 0 # Default directory to save the downloaded torrents. #directory = ./ # Default session directory. Make sure you don't run multiple instance # of rtorrent using the same session directory. Perhaps using a # relative path? #session = ./session # Watch a directory for new torrents, and stop those that have been # deleted. #schedule = watch_directory,5,5,load_start=./watch/*.torrent #schedule = untied_directory,5,5,stop_untied= # Close torrents when diskspace is low. #schedule = low_diskspace,5,60,close_low_diskspace=100M # Stop torrents when reaching upload ratio in percent, # when also reaching total upload in bytes, or when # reaching final upload ratio in percent. # example: stop at ratio 2.0 with at least 200 MB uploaded, or else ratio 20.0 #schedule = ratio,60,60,"stop_on_ratio=200,200M,2000" # The ip address reported to the tracker. #ip = 127.0.0.1 #ip = rakshasa.no # The ip address the listening socket and outgoing connections is # bound to. #bind = 127.0.0.1 #bind = rakshasa.no # Port range to use for listening. #port_range = 6890-6999 # Start opening ports at a random position within the port range. #port_random = no # Check hash for finished torrents. Might be usefull until the bug is # fixed that causes lack of diskspace not to be properly reported. #check_hash = no # Set whetever the client should try to connect to UDP trackers. #use_udp_trackers = yes # Alternative calls to bind and ip that should handle dynamic ip's. #schedule = ip_tick,0,1800,ip=rakshasa #schedule = bind_tick,0,1800,bind=rakshasa # Encryption options, set to none (default) or any combination of the following: # allow_incoming, try_outgoing, require, require_RC4, enable_retry, prefer_plaintext # # The example value allows incoming encrypted connections, starts unencrypted # outgoing connections but retries with encryption if they fail, preferring # plaintext to RC4 encryption after the encrypted handshake # # encryption = allow_incoming,enable_retry,prefer_plaintext # Enable DHT support for trackerless torrents or when all trackers are down. # May be set to "disable" (completely disable DHT), "off" (do not start DHT), # "auto" (start and stop DHT as needed), or "on" (start DHT immediately). # The default is "off". For DHT to work, a session directory must be defined. # # dht = auto # UDP port to use for DHT. # # dht_port = 6881 # Enable peer exchange (for torrents not marked private) # # peer_exchange = yes # # Do not modify the following parameters unless you know what you're doing. # # Hash read-ahead controls how many MB to request the kernel to read # ahead. If the value is too low the disk may not be fully utilized, # while if too high the kernel might not be able to keep the read # pages in memory thus end up trashing. #hash_read_ahead = 10t # Interval between attempts to check the hash, in milliseconds. #hash_interval = 100 # Number of attempts to check the hash while using the mincore status, # before forcing. Overworked systems might need lower values to get a # decent hash checking rate. #hash_max_tries = 10
The 2 most important lines from that config are most likely
schedule = watch_directory,5,5,load_start=./watch/*.torrent
and this line that needs to be added.
scgi_port = localhost:5000
As it is the line that tells rTorrent to reload the torrents already started and so it can communicate with the wTorrent front end.
Now we need to add a folder, change some permissions, and rename a file
Now everything should be working and we can start up rTorrent via the script
Now we need to direct our web browser at the wTorrent install page. http://127.0.0.1/wtorrent/install.php The port number it needs is the port that lighttpd is running on not the port number set in .rtorrent.rc And that is it your should now have successfully installed wTorrent and rTorrent.