#!/bin/bash # #Modified By: #MrM #Date: 7/27/2011 # # # MrM # Tested ubuntu 10.04 10.10 11.04 # Modify mkdir section to meet your needs if [[ $EUID -ne 0 ]];then echo "rTorrent Installer: User has to be root" exit 1 fi echo "Seedboxing" echo "UPDATING THE SYSTEM" sudo apt-get update sudo apt-get upgrade -y sudo apt-get install subversion build-essential automake libtool libcppunit-dev libcurl3-dev libsigc++-2.0-dev unzip unrar curl libncurses-dev -y sudo apt-get install apache2 php5 php5-cli php5-curl -y sudo apt-get install libapache2-mod-scgi -y ln -s /etc/apache2/mods-available/scgi.load /etc/apache2/mods-enabled/scgi.load echo "INSTALLING XMLRPC" sleep 2 sudo mkdir /install cd /install sudo svn checkout http://xmlrpc-c.svn.sourceforge.net/svnroot/xmlrpc-c/stable xmlrpc-c cd xmlrpc-c sudo ./configure --disable-cplusplus sudo make sudo make install echo "INSTALLING LIBTORRENT" sleep 2 cd /install sudo wget http://libtorrent.rakshasa.no/downloads/libtorrent-0.12.9.tar.gz sudo tar xvf libtorrent-0.12.9.tar.gz cd libtorrent-0.12.9 sudo ./autogen.sh sudo ./configure sudo make sudo make install echo "INSTALLING RTORRENT" sleep 2 cd /install sudo wget http://libtorrent.rakshasa.no/downloads/rtorrent-0.8.9.tar.gz sudo tar xvf rtorrent-0.8.9.tar.gz cd rtorrent-0.8.9 sudo ./autogen.sh sudo ./configure --with-xmlrpc-c sudo make sudo make install sudo ldconfig echo "MAKING DIRECTORIES" sudo mkdir /rt sudo mkdir /rt/rtorrent sudo mkdir /home/user/session sudo mkdir /home/user/watch sudo mkdir /home/user/ftp sudo mkdir /home/user/download cat > /root/.rtorrent.rc <<-END_SCRIPT # 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 = /home/user/download # Default session directory. Make sure you don't run multiple instance # of rtorrent using the same session directory. Perhaps using a # relative path? session = /home/user/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 = 56500-56510 # 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 = 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 scgi_port = 127.0.0.1:5000 END_SCRIPT echo "INSTALLING RUTORRENT" sleep 2 cd /install sudo wget http://rutorrent.googlecode.com/files/rutorrent-3.2.tar.gz sudo tar xvf rutorrent-3.2.tar.gz sudo mv rutorrent /var/www sudo wget http://rutorrent.googlecode.com/files/plugins-3.2.tar.gz sudo tar xvf plugins-3.2.tar.gz sudo mv plugins /var/www/rutorrent sudo rm -rf /var/www/rutorrent/plugins/darkpal sudo chown -R www-data:www-data /var/www/rutorrent echo "CONFIGURING AUTH FILE" sleep 2 cd /var/www/rutorrent cat >> /etc/apache2/httpd.conf <<-END_PASTE DocumentRoot /var/www Order Deny,Allow AuthUserFile /var/www/rutorrent/.htpasswd AuthName "ruTorrent login" AuthType Basic require valid-user SCGIMount /RPC2 127.0.0.1:5000 END_PASTE echo "ENTER A USERNAME" read USERNAME echo "ENTER PASSWORD FOR $USERNAME" sudo htpasswd -c /var/www/rutorrent/.htpasswd $USERNAME sudo chown www-data:www-data /var/www/rutorrent/.htpasswd echo "INSTALLING SCREEN" sleep 2 sudo apt-get install screen -y echo "RESTARTING APACHE" sudo /etc/init.d/apache2 restart sleep 2 echo "GENERATING STARTUP SCRIPT" cd /etc/init.d/ wget http://randystech.com/downloads/rtstart.sh mv rtstart.sh startrt chmod +x /etc/init.d/startrt update-rc.d startrt defaults echo "STARTING RTORRENT" sleep 5 #sudo screen -fa -d -m -S rtorrent rtorrent service startrt start echo "Seedboxing" echo "" echo "Your IP Address is:" ifconfig | grep -m 1 inet\ addr: | cut -d: -f2 | awk '{print $1}' echo "YOU MAY NOW ACCESS YOUR RUTORRENT INTERFACE AT yourip/rutorrent" echo "" echo "TO START AND STOP YOUR RTORRENT USE:" echo "service startrt start|stop|restart" sleep 5