Rtorrent rutorrent lighttpd
From DD-WRT Wiki
Revision as of 17:04, 11 May 2011 (edit) Leonidv (Talk | contribs) ← Previous diff |
Revision as of 17:12, 11 May 2011 (edit) (undo) Leonidv (Talk | contribs) (→ruTorrent) Next diff → |
||
Line 533: | Line 533: | ||
As usual, setup port forwarding on ports 51777-51780 to your dd-wrt router <br> | As usual, setup port forwarding on ports 51777-51780 to your dd-wrt router <br> | ||
Congratulations! You have successfully installed and configured rtorrent + rutorrent on a dd-wrt device. <br> | Congratulations! You have successfully installed and configured rtorrent + rutorrent on a dd-wrt device. <br> | ||
- | + | Enjoy seeding. :) | |
--[[User:Leonidv|Leonidv]] 18:55, 11 May 2011 (CEST) | --[[User:Leonidv|Leonidv]] 18:55, 11 May 2011 (CEST) |
Revision as of 17:12, 11 May 2011
Contents |
rtorrent
ipkg install rtorrent ipkg-opt install screen dtach adduser
screen for daemon
This will install libtorrent, rtorrent and xmlrpc-c
After all the installations are done,
mkdir /mnt/rtorrent mkdir /mnt/rtorrent/work mkdir /mnt/rtorrent/session
Edit rtorrent.conf as shown below
/opt/etc/rtorrent.conf
# 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. # Minumum amount of peers to connect per torrent, if available. min_peers = 20 # Minumum amount of peers to connect per torrent. max_peers = 40 # Same as above but for seeding completed torrents (-1 = same as downloading) #min_peers_seed = 10 #max_peers_seed = 20 # Maximum number of simultanious uploads per torrent. max_uploads = 5 # Global download rate in KiB. "0" for unlimited. download_rate = 0 # Global upload rate in KiB. "0" for unlimited. upload_rate = 22 # Default directory to save downloaded files. Note it doesn't support # space yet. directory = /mnt/rtorrent/work/ # Watch a directory for new torrents, and stop those that have been deleted. #schedule = watch_directory,5,5,load_start=/opt/share/torrent/dl/*.torrent schedule = watch_directory,5,5,load_start=/mnt/rtorrent/dl/*.torrent schedule = untied_directory,5,5,stop_untied= # Close torrents when diskspace is low. #schedule = low_diskspace,5,60,close_low_diskspace=100M # Default session directory. Make sure you don't run multiple instance # of rtorrent using the same session directory. Perhaps using a # relative path? #session = /opt/share/torrent/session session = /mnt/rtorrent/session # The ip address reported to the tracker. #ip = rakshasa # The ip address the listening socket and outgoing connections is # bound to. #bind = rakshasa # Port range to use for listening. port_range = 51777-51780 # 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 # # 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 = 10 # 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 # Max number of files to keep open simultaniously. #max_open_files = 128 # Number of sockets to simultaneously keep open. #max_open_sockets = <no default> # Example of scheduling commands: Switch between two ip's every 5 # seconds. #schedule = "ip_tick1,5,10,ip=torretta" #schedule = "ip_tick2,10,10,ip=lampedusa" # Remove a scheduled event. #schedule_remove = "ip_tick1" # 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" schedule = ratio,30,60,stop_on_ratio=200 # 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. # scgi_port = 127.0.0.1:5000
lighttpd
ipkg install lighttpd
/opt/etc/lighttpd/lighttpd.conf
# lighttpd configuration file # # use it as a base for lighttpd 1.0.0 and above # # $Id: lighttpd.conf 8860 2008-08-05 10:56:16Z engy $ ############ Options you really have to take care of #################### ## modules to load # at least mod_access and mod_accesslog should be loaded # all other module should only be loaded if really neccesary # - saves some time # - saves memory server.modules = ( # "mod_rewrite", # "mod_redirect", # "mod_alias", "mod_access", # "mod_cml", # "mod_trigger_b4_dl", # "mod_auth", # "mod_status", # "mod_setenv", # "mod_fastcgi", # "mod_proxy", # "mod_simple_vhost", # "mod_evhost", # "mod_userdir", # "mod_cgi", # "mod_compress", # "mod_ssi", # "mod_usertrack", # "mod_expire", # "mod_secdownload", # "mod_rrdtool", "mod_accesslog" ) server.modules += ( "mod_scgi" ) ## a static document-root, for virtual-hosting take look at the ## server.virtual-* options server.document-root = "/opt/share/www/lighttpd" ## where to send error-messages to server.errorlog = "/opt/var/log/lighttpd/error.log" # files to check for if .../ is requested index-file.names = ( "index.php", "index.html", "index.htm", "default.htm", "lighttpd/index.html" ) ## set the event-handler (read the performance section in the manual) # server.event-handler = "freebsd-kqueue" # needed on OS X server.event-handler = "poll" # needed on OS X # mimetype mapping mimetype.assign = ( ".pdf" => "application/pdf", ".sig" => "application/pgp-signature", ".spl" => "application/futuresplash", ".class" => "application/octet-stream", ".ps" => "application/postscript", ".torrent" => "application/x-bittorrent", ".dvi" => "application/x-dvi", ".gz" => "application/x-gzip", ".pac" => "application/x-ns-proxy-autoconfig", ".swf" => "application/x-shockwave-flash", ".tar.gz" => "application/x-tgz", ".tgz" => "application/x-tgz", ".tar" => "application/x-tar", ".zip" => "application/zip", ".mp3" => "audio/mpeg", ".m3u" => "audio/x-mpegurl", ".wma" => "audio/x-ms-wma", ".wax" => "audio/x-ms-wax", ".ogg" => "application/ogg", ".wav" => "audio/x-wav", ".gif" => "image/gif", ".jpg" => "image/jpeg", ".jpeg" => "image/jpeg", ".png" => "image/png", ".xbm" => "image/x-xbitmap", ".xpm" => "image/x-xpixmap", ".xwd" => "image/x-xwindowdump", ".css" => "text/css", ".html" => "text/html", ".htm" => "text/html", ".js" => "text/javascript", ".asc" => "text/plain", ".c" => "text/plain", ".cpp" => "text/plain", ".log" => "text/plain", ".conf" => "text/plain", ".text" => "text/plain", ".txt" => "text/plain", ".dtd" => "text/xml", ".xml" => "text/xml", ".mpeg" => "video/mpeg", ".mpg" => "video/mpeg", ".mov" => "video/quicktime", ".qt" => "video/quicktime", ".avi" => "video/x-msvideo", ".asf" => "video/x-ms-asf", ".asx" => "video/x-ms-asf", ".wmv" => "video/x-ms-wmv", ".bz2" => "application/x-bzip", ".tbz" => "application/x-bzip-compressed-tar", ".tar.bz2" => "application/x-bzip-compressed-tar" ) # Use the "Content-Type" extended attribute to obtain mime type if possible #mimetype.use-xattr = "enable" ## send a different Server: header ## be nice and keep it at lighttpd # server.tag = "lighttpd" #### accesslog module accesslog.filename = "/opt/var/log/lighttpd/access.log" ## deny access the file-extensions # # ~ is for backupfiles from vi, emacs, joe, ... # .inc is often used for code includes which should in general not be part # of the document-root url.access-deny = ( "~", ".inc" ) $HTTP["url"] =~ "\.pdf$" { server.range-requests = "disable" } ## # which extensions should not be handle via static-file transfer # # .php, .pl, .fcgi are most often handled by mod_fastcgi or mod_cgi static-file.exclude-extensions = ( ".fcgi", ".php", ".pl", ".py", ".rb" ) ######### Options that are good to be but not neccesary to be changed ####### ## bind to port (default: 80) server.port = 8010 ## bind to localhost (default: all interfaces) #server.bind = "grisu.home.kneschke.de" ## error-handler for status 404 #server.error-handler-404 = "/error-handler.html" #server.error-handler-404 = "/error-handler.php" ## to help the rc.scripts server.pid-file = "/var/run/lighttpd.pid" ###### virtual hosts ## ## If you want name-based virtual hosting add the next three settings and load ## mod_simple_vhost ## ## document-root = ## virtual-server-root + virtual-server-default-host + virtual-server-docroot ## or ## virtual-server-root + http-host + virtual-server-docroot ## #simple-vhost.server-root = "/home/weigon/wwwroot/servers/" #simple-vhost.default-host = "grisu.home.kneschke.de" #simple-vhost.document-root = "/pages/" ## ## Format: <errorfile-prefix><status-code>.html ## -> ..../status-404.html for 'File not found' #server.errorfile-prefix = "/home/weigon/projects/lighttpd/doc/status-" ## virtual directory listings #dir-listing.activate = "enable" ## enable debugging #debug.log-request-header = "enable" #debug.log-response-header = "enable" #debug.log-request-handling = "enable" #debug.log-file-not-found = "enable" ### only root can use these options # # chroot() to directory (default: no chroot() ) #server.chroot = "/" ## change uid to <uid> (default: don't care) #server.username = "nobody" ## change uid to <uid> (default: don't care) #server.groupname = "nobody" #### compress module #compress.cache-dir = "/tmp/lighttpd/cache/compress/" #compress.filetype = ("text/plain", "text/html") #### proxy module ## read proxy.txt for more info #proxy.server = ( ".php" => # ( "localhost" => # ( # "host" => "192.168.0.101", # "port" => 80 # ) # ) # ) scgi.server = ( "/RPC2" => ( "127.0.0.1" => ( "host" => "127.0.0.1", "port" => 5000, "check-local" => "disable" ) ) ) #### fastcgi module ## read fastcgi.txt for more info #fastcgi.server = ( ".php" => # ( "localhost" => # ( # "socket" => "/tmp/php-fcgi.sock", # "bin-path" => "/opt/bin/php-fcgi", # "bin-environment" => ( # "PHP_FCGI_MAX_REQUESTS" => "4000" # ) # ) # ) # ) #### CGI module #cgi.assign = ( ".pl" => "/opt/bin/perl", # ".cgi" => "/opt/bin/perl" ) # #### SSL engine #ssl.engine = "enable" #ssl.pemfile = "server.pem" #ssl.ca-file = "ca.crt" #ssl.verifyclient.activate = "enable" #ssl.verifyclient.enforce = "enable" #ssl.verifyclient.depth = 1 #### status module #status.status-url = "/server-status" #status.config-url = "/server-config" #### auth module ## read authentication.txt for more info #auth.backend = "plain" #auth.backend.plain.userfile = "lighttpd.user" #auth.backend.plain.groupfile = "lighttpd.group" #auth.backend.ldap.hostname = "localhost" #auth.backend.ldap.base-dn = "dc=my-domain,dc=com" #auth.backend.ldap.filter = "(uid=$)" #auth.require = ( "/server-status" => # ( # "method" => "digest", # "realm" => "download archiv", # "require" => "user=jan" # ), # "/server-config" => # ( # "method" => "digest", # "realm" => "download archiv", # "require" => "valid-user" # ) # ) #### url handling modules (rewrite, redirect, access) #url.rewrite = ( "^/$" => "/server-status" ) #url.redirect = ( "^/wishlist/(.+)" => "http://www.123.org/$1" ) #### both rewrite/redirect support back reference to regex conditional using %n #$HTTP["host"] =~ "^www\.(.*)" { # url.redirect = ( "^/(.*)" => "http://%1/$1" ) #} # # define a pattern for the host url finding # %% => % sign # %0 => domain name + tld # %1 => tld # %2 => domain name without tld # %3 => subdomain 1 name # %4 => subdomain 2 name # #evhost.path-pattern = "/home/storage/dev/www/%3/htdocs/" #### expire module #expire.url = ( "/buggy/" => "access 2 hours", "/asdhas/" => "access plus 1 seconds 2 minutes") #### ssi #ssi.extension = ( ".shtml" ) #### rrdtool #rrdtool.binary = "/opt/bin/rrdtool" #rrdtool.db-name = "/var/www/lighttpd.rrd" #### setenv #setenv.add-request-header = ( "TRAV_ENV" => "mysql://user@host/db" ) #setenv.add-response-header = ( "X-Secret-Message" => "42" ) ## for mod_trigger_b4_dl # trigger-before-download.gdbm-filename = "/home/weigon/testbase/trigger.db" # trigger-before-download.memcache-hosts = ( "127.0.0.1:11211" ) # trigger-before-download.trigger-url = "^/trigger/" # trigger-before-download.download-url = "^/download/" # trigger-before-download.deny-url = "http://127.0.0.1/index.html" # trigger-before-download.trigger-timeout = 10 ## for mod_cml ## don't forget to add index.cml to server.indexfiles # cml.extension = ".cml" # cml.memcache-hosts = ( "127.0.0.1:11211" ) #### variable usage: ## variable name without "." is auto prefixed by "var." and becomes "var.bar" #bar = 1 #var.mystring = "foo" ## integer add #bar += 1 ## string concat, with integer cast as string, result: "www.foo1.com" #server.name = "www." + mystring + var.bar + ".com" ## array merge #index-file.names = (foo + ".php") + index-file.names #index-file.names += (foo + ".php") #### include #include /etc/lighttpd/lighttpd-inc.conf ## same as above if you run: "lighttpd -f /etc/lighttpd/lighttpd.conf" #include "lighttpd-inc.conf" #### include_shell #include_shell "echo var.a=1" ## the above is same as: #var.a=1 # Configuration from other optware packages include_shell "cat /opt/etc/lighttpd/conf.d/*.conf"
After completing the configurations, restart lighttpd and rtorrent
service lighttpd restart service rtorrent start
Check if lighttpd has successfully started by browsing to the router's ip address and port of the configured lighttpd.conf file which is 8010 here. http://ip:8010
The browser should display lighttpd server is running.
htop command should show rTorrent running like this:
screen -dm -S rtorrent
rtorrent -n -o import=/opt/etc/rtorrent.conf
Reference:
- http://code.google.com/p/rutorrent/wiki/WebSERVER#Lighttpd_Specific_SCGI_Config
- http://www.mattgibson.ca/2009/11/05/fix-dd-wrt-lighttpd-error-server-c-1105-fdevent_init-failed-on-asus-wl-500/
ruTorrent
- Goto http://code.google.com/p/rutorrent/downloads/list
- Click on ruTorrent core files. Right click on the download link and copy link address
- In the router console,
cd /opt/share/www/lighttpd/
Type wget and press shift key + insert key so that something like this appears
wget http://rutorrent.googlecode.com/files/rutorrent-3.2.tar.gz
Now the rutorrent archive has been downloaded to the /opt/share/www/lighttpd directory
tar -xvf rutorrent-3.2.tar.gz
or
tar -xvf rutorrent*.gz
if you have download another version You should now see the rutorrent folder
In web browser, ip address of router:port of lighttpd/rutorrent
http://192.168.1.2:8010/rutorrent/
You should now see the web interface of rutorrent loading.
As usual, setup port forwarding on ports 51777-51780 to your dd-wrt router
Congratulations! You have successfully installed and configured rtorrent + rutorrent on a dd-wrt device.
Enjoy seeding. :)
--Leonidv 18:55, 11 May 2011 (CEST)