Hi Guys
This tutorial i'll showing how you install and configuration about seedbox
In this tutorial you see
To start, access your VPS via SSH in root user* Install Rtorrent 0.9.2
* Install Libtorrent 0.13.2
* Install Rutorrent 3.4
* Configuration rtorrent
* Install and configuration FTP Vsftp
* Script for Web ui Start together for system, when server reboot
1° Add new account user in your server
I recomend you reboot server, because later we need created folders in your account (not root)# adduser your_user_name
2° Now access again server for SSH and use your account and use this use this command
do you need again root access, use # su and key for root access
3° Enable scgi for Apache# apt-get update
# apt-get install subversion build-essential automake libtool libcppunit-dev libcurl3-dev libsigc++-2.0-dev unzip unrar-free curl libncurses-dev
# apt-get install apache2 php5 php5-cli php5-curl
# apt-get install libapache2-mod-scgi
# ln -s /etc/apache2/mods-available/scgi.load /etc/apache2/mods-enabled/scgi.load
4° Install XMLRPC
5° Intall libtorrent 0.13.2# mkdir /install;cd /install
# svn checkout https://xmlrpc-c.svn.sourceforge.net...lrpc-c/stable/ xmlrpc-c
# cd xmlrpc-c
# ./configure --disable-cplusplus
# make
# make install
6° Install rTorrent# cd /install
# wget http://libtorrent.rakshasa.no/downlo...-0.13.2.tar.gz
# tar xvf libtorrent-0.13.2.tar.gz
# cd libtorrent-0.13.2
# ./autogen.sh
# ./configure
# make
# make install
7° Create required directories (This part its very importat, DON'T CREATED THIS FOLDERS IN ROOT USER) if you did, you be problem later for delete files in FTP# cd /install
# wget http://libtorrent.rakshasa.no/downlo...t-0.9.2.tar.gz
# tar xvf rtorrent-0.9.2.tar.gz
# cd rtorrent-0.9.2
# ./autogen.sh
# ./configure --with-xmlrpc-c
# make
# make install
# ldconfig
8° Setup .rtorrent.rc file ( This is my personal configuration on my server ) Now you go need root access again.# mkdir /home/your_user_name/rtorrent
# mkdir /home/your_user_name/rtorrent/session
# mkdir /home/your_user_name/rtorrent/watch
# mkdir /home/your_user_name/rtorrent/download
use this script in .rtorrent.rc in here you can change this values of configuration for one do you like more.
Use this script in nano ~/.rtorrent.rc and make sure the file start "."# 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.
#
# Based on original .rtorrent.rc file from The libTorrent and rTorrent Project
# Modified by Lemonberry for rtGui rtgui - Web based front-end for "rTorrent" - the Linux command line BitTorrent client - Google Project Hosting
#
# This assumes the following directory structure:
#
# /Torrents/Downloading - temporaray location for torrents while downloading (see "directory")
# /Torrents/Complete - Torrents are moved here when complete (see "on_finished")
# /Torrents/TorrentFiles/Auto - The 'autoload' directory for rtorrent to use. Place a file
# in here, and rtorrent loads it #automatically. (see "schedule = watch_directory")
# /Torrents/Downloading/rtorrent/session - for storing rtorrent session information
#
# Maximum and minimum number of peers to connect to per torrent.
min_peers = 2
max_peers = 50
# Same as above but for seeding completed torrents (-1 = same as downloading)
min_peers_seed = 2
max_peers_seed = 50
# Maximum number of simultanious uploads per torrent.
max_uploads = 30
# Global upload and download rate in KiB. "0" for unlimited.
download_rate = 0
upload_rate = 0
# Change the divider used to calculate the max upload and download slots to use when the throttle is changed. Disable by setting 0.
max_downloads_div = 0
# Max upload and download slots allowed. Disable by setiing 0.
max_uploads_global = 70
max_downloads_global = 50
# Default directory to save the downloaded torrents.
directory = /home/your_user_name/rtorrent/download
# Default session directory. Make sure you don't run multiple instance
# of seeder1rent using the same session directory. Perhaps using a
# relative path?
session = /home/your_user_name/rtorrent/session
# Watch a directory for new torrents, and stop those that have been
# deleted.
schedule = untied_directory,5,5,stop_untied=
schedule = watch_directory,5,5,load_start=/home/your_user_name/rtorrent/watch/*.torrent
# 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
# When the torrent finishes, it executes "mv -n <base_path> ~/Download/"
# and then sets the destination directory to "~/Download/". (0.7.7+)
# on_finished = move_complete,"execute=mv,-u,$d.get_base_path=,/home/your_user_name/download/complete/ ;d.set_directory=/home/your_user_name/download/complete/"
# 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 = 61040-61050
# Start opening ports at a random position within the port range.
# port_random = yes
scgi_port = 127.0.0.1:5000
# 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 = no
# 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 = disable
# UDP port to use for DHT.
#
# dht_port = 6881
# Enable peer exchange (for torrents not marked private)
#
peer_exchange = no
#
# 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 = 8
# Interval between attempts to check the hash, in milliseconds.
# hash_interval = 10
# 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 = 5
# Max number of files to keep open simultaniously.
# max_open_files = 128
# Number of sockets to simultaneously keep open.
# max_open_sockets = 728
# 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"
#Teste
encoding_list = UTF-8
8° Install rTorrent# cd ~/
# nano ~/.rtorrent.rc
# cp .rtorrent.rc /home/your_user_name/
9° Secure /rutorrent# cd /install
# wget http://rutorrent.googlecode.com/file...ent-3.4.tar.gz
# tar xvf rutorrent-3.4.tar.gz
# mv rutorrent /var/www
# wget http://rutorrent.googlecode.com/file...ins-3.4.tar.gz
# tar xvf plugins-3.4.tar.gz
# mv plugins /var/www/rutorrent
# rm -rf /var/www/rutorrent/plugins/darkpal
# chown -R www-data:www-data /var/www/rutorrent
Enter a password of your choice when prompted, you will use this to log in to the ruTorrent web UI.# a2enmod ssl
# a2enmod auth_digest
# a2enmod scgi
# openssl req $@ -new -x509 -days 365 -nodes -out /etc/apache2/apache.pem -keyout /etc/apache2/apache.pem
# chmod 600 /etc/apache2/apache.pem
# htdigest -c /etc/apache2/passwords Name_for_seedbox Name_for_login_in_seedbox
Now you need this script for apache (Virtual_host)
past the script (Virtual_host) in here nano /etc/apache2/sites-available/default<VirtualHost *:80>
ServerAdmin webmaster@localhost
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 "Name_your_seedbox"
AuthDigestDomain /var/www/rutorrent/ http://ip_your_server/rutorrent
AuthDigestProvider file
AuthUserFile /etc/apache2/passwords
Require valid-user
SetEnv R_ENV "/var/www/rutorrent"
</Location>
</VirtualHost>
<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 "Name_for_seedbox"
AuthDigestDomain /var/www/rutorrent/ http://ip_your_server/rutorrent
AuthDigestProvider file
AuthUserFile /etc/apache2/passwords
Require valid-user
SetEnv R_ENV "/var/www/rutorrent"
</Location>
</VirtualHost>
10° Install screen# nano /etc/apache2/sites-available/default
# a2ensite default-ssl
# /etc/init.d/apache2 reload
11° Start rTorrent in a detached shell using screen# apt-get install screen
All the time your server reboot do your need use this command for (# screen -fa -d -m rtorrent) for Web ui start# screen -fa -d -m rtorrent
Later i go send the script for Web ui boot together in the system
if you do everything correctly up to this point your seedbox is now functioning normally
and sorry about my inglish, i now its not good
Continues...The next post its for tutorial FTP Vsftpd
* I use different tutorials and configuration for install rtorrent, libtorrent, rutorrent, FTP and Script rtorrent start, i test all and this is i more like*
FTP - Vsftpd Install and configuration
1° Install Vsftpd
2° Configuration for FTP# apt-get install vsftpd
you can use this script (This is for my file in server)/etc/init.d/vsftpd stop
past the script in here# Example config file /etc/vsftpd.conf
#
# The default compiled in settings are fairly paranoid. This sample file
# loosens things up a bit, to make the ftp daemon more usable.
# Please see vsftpd.conf.5 for all compiled in defaults.
#
# READ THIS: This example file is NOT an exhaustive list of vsftpd options.
# Please read the vsftpd.conf.5 manual page to get a full idea of vsftpd's
# capabilities.
#
#
# Run standalone? vsftpd can run either from an inetd or as a standalone
# daemon started from an initscript.
listen=YES
#
# Run standalone with IPv6?
# Like the listen parameter, except vsftpd will listen on an IPv6 socket
# instead of an IPv4 one. This parameter and the listen parameter are mutually
# exclusive.
#listen_ipv6=YES
#
# Allow anonymous FTP? (Beware - allowed by default if you comment this out).
anonymous_enable=NO
#
# Uncomment this to allow local users to log in.
local_enable=YES
#
# Uncomment this to enable any form of FTP write command.
write_enable=YES
#
# Default umask for local users is 077. You may wish to change this to 022,
# if your users expect that (022 is used by most other ftpd's)
local_umask=022
#
# Uncomment this to allow the anonymous FTP user to upload files. This only
# has an effect if the above global write enable is activated. Also, you will
# obviously need to create a directory writable by the FTP user.
anon_upload_enable=NO
#
# Uncomment this if you want the anonymous FTP user to be able to create
# new directories.
anon_mkdir_write_enable=NO
#
# Activate directory messages - messages given to remote users when they
# go into a certain directory.
dirmessage_enable=YES
#
# If enabled, vsftpd will display directory listings with the time
# in your local time zone. The default is to display GMT. The
# times returned by the MDTM FTP command are also affected by this
# option.
use_localtime=YES
#
# Activate logging of uploads/downloads.
xferlog_enable=YES
#
# Make sure PORT transfer connections originate from port 20 (ftp-data).
connect_from_port_20=YES
#
# If you want, you can arrange for uploaded anonymous files to be owned by
# a different user. Note! Using "root" for uploaded files is not
# recommended!
chown_uploads=YES
#chown_username=whoever
#
# You may override where the log file goes if you like. The default is shown
# below.
#xferlog_file=/var/log/vsftpd.log
#
# If you want, you can have your log file in standard ftpd xferlog format.
# Note that the default log file location is /var/log/xferlog in this case.
#xferlog_std_format=YES
#
# You may change the default value for timing out an idle session.
idle_session_timeout=600
#
# You may change the default value for timing out a data connection.
data_connection_timeout=120
#
# It is recommended that you define on your system a unique user which the
# ftp server can use as a totally isolated and unprivileged user.
#nopriv_user=ftpsecure
#
# Enable this and the server will recognise asynchronous ABOR requests. Not
# recommended for security (the code is non-trivial). Not enabling it,
# however, may confuse older FTP clients.
#async_abor_enable=YES
#
# By default the server will pretend to allow ASCII mode but in fact ignore
# the request. Turn on the below options to have the server actually do ASCII
# mangling on files when in ASCII mode.
# Beware that on some FTP servers, ASCII support allows a denial of service
# attack (DoS) via the command "SIZE /big/file" in ASCII mode. vsftpd
# predicted this attack and has always been safe, reporting the size of the
# raw file.
# ASCII mangling is a horrible feature of the protocol.
ascii_upload_enable=NO
ascii_download_enable=NO
#
# You may fully customise the login banner string:
#ftpd_banner=Welcome to blah FTP service.
#
# You may specify a file of disallowed anonymous e-mail addresses. Apparently
# useful for combatting certain DoS attacks.
#deny_email_enable=YES
# (default follows)
#banned_email_file=/etc/vsftpd.banned_emails
#
# You may restrict local users to their home directories. See the FAQ for
# the possible risks in this before using chroot_local_user or
# chroot_list_enable below.
chroot_local_user=YES
#
# You may specify an explicit list of local users to chroot() to their home
# directory. If chroot_local_user is YES, then this list becomes a list of
# users to NOT chroot().
#chroot_local_user=YES
#chroot_list_enable=YES
# (default follows)
#chroot_list_file=/etc/vsftpd.chroot_list
#
# You may activate the "-R" option to the builtin ls. This is disabled by
# default to avoid remote users being able to cause excessive I/O on large
# sites. However, some broken FTP clients such as "ncftp" and "mirror" assume
# the presence of the "-R" option, so there is a strong case for enabling it.
ls_recurse_enable=NO
#
# Debian customization
#
# Some of vsftpd's settings don't fit the Debian filesystem layout by
# default. These settings are more Debian-friendly.
#
# This option should be the name of a directory which is empty. Also, the
# directory should not be writable by the ftp user. This directory is used
# as a secure chroot() jail at times vsftpd does not require filesystem
# access.
secure_chroot_dir=/var/run/vsftpd/empty
#
# This string is the name of the PAM service vsftpd will use.
pam_service_name=vsftpd
#
# This option specifies the location of the RSA certificate to use for SSL
# encrypted connections.
# Configuração adicional.
background=NO
file_open_mode=0777
userlist_enable=YES
userlist_deny=YES
pasv_promiscuous=YES
port_promiscuous=YES
pasv_min_port=60080
pasv_max_port=60100
rsa_cert_file=/etc/ssl/private/vsftpd.pem
If you have problem in here in this script, i can send the file for you, than you just send direct to your servernano /etc/vsftpd.conf
3° You need created one file now (vsftpd.user_list) just put in here "root", for you can't access FTP in root Account
4° Restart the FTP# cd /etc/
#nano /etc/vsftpd.user_list
Finish, you FTP its install and configuration you can access in your server account ( account you created in Seedbox Tutorial )# /etc/init.d/vsftpd restart
Continues in next post... rtorrent startup script
* I use different tutorials and configuration for install rtorrent, libtorrent, rutorrent, FTP and Script rtorrent start, i test all and this is i more like*
rtorrent startup script
1° Created the file for Script
This is script
past this script in here#!/bin/sh
### BEGIN INIT INFO
# Provides: rtorrent_your-user-name
# Required-Start: $local_fs $remote_fs $network $syslog $netdaemons
# Required-Stop: $local_fs $remote_fs
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: rtorrent script using screen(1)
# Description: rtorrent script using screen(1) to keep torrents working without the user logging in
### END INIT INFO
#############
###<Notes>###
#############
# This script depends on screen.
# For the stop function to work, you must set an
# explicit session directory using ABSOLUTE paths (no, ~ is not absolute) in your rtorrent.rc.
# If you typically just start rtorrent with just "rtorrent" on the
# command line, all you need to change is the "user" option.
# Attach to the screen session as your user with
# "screen -dr rtorrent". Change "rtorrent" with srnname option.
# Licensed under the GPLv2 by lostnihilist: lostnihilist _at_ gmail _dot_ com
##############
###</Notes>###
##############
#######################
##Start Configuration##
#######################
# You can specify your configuration in a different file
# (so that it is saved with upgrades, saved in your home directory,
# or whateve reason you want to)
# by commenting out/deleting the configuration lines and placing them
# in a text file (say /home/user/.rtorrent.init.conf) exactly as you would
# have written them here (you can leave the comments if you desire
# and then uncommenting the following line correcting the path/filename
# for the one you used. note the space after the ".".
# . /etc/rtorrent.init.conf
#Do not put a space on either side of the equal signs e.g.
# user = user
# will not work
# system user to run as
user=Your_user_name
# the system group to run as, not implemented, see d_start for beginning implementation
# group=`id -ng "$user"`
# the full path to the filename where you store your rtorrent configuration
config="`su -c 'echo $HOME' $user`/.rtorrent.rc"
# set of options to run with
options=""
# default directory for screen, needs to be an absolute path
base="`su -c 'echo $HOME' $user`"
# name of screen session
srnname="rtorrent"
# file to log to (makes for easier debugging if something goes wrong)
logfile="/var/log/rtorrentInit.log"
#######################
###END CONFIGURATION###
#######################
PATH=/usr/bin:/usr/local/bin:/usr/local/sbin:/sbin:/bin:/usr/sbin
DESC="rtorrent"
NAME=rtorrent
DAEMON=$NAME
SCRIPTNAME=/etc/init.d/$NAME
checkcnfg() {
exists=0
for i in `echo "$PATH" | tr ':' '\n'` ; do
if [ -f $i/$NAME ] ; then
exists=1
break
fi
done
if [ $exists -eq 0 ] ; then
echo "cannot find rtorrent binary in PATH $PATH" | tee -a "$logfile" >&2
exit 3
fi
if ! [ -r "${config}" ] ; then
echo "cannot find readable config ${config}. check that it is there and permissions are appropriate" | tee -a "$logfile" >&2
exit 3
fi
session=`getsession "$config"`
if ! [ -d "${session}" ] ; then
echo "cannot find readable session directory ${session} from config ${config}. check permissions" | tee -a "$logfile" >&2
exit 3
fi
}
d_start() {
[ -d "${base}" ] && cd "${base}"
stty stop undef && stty start undef
su -c "screen -ls | grep -sq "\.${srnname}[[:space:]]" " ${user} || su -c "screen -dm -S ${srnname} 2>&1 1>/dev/null" ${user} | tee -a "$logfile" >&2
# this works for the screen command, but starting rtorrent below adopts screen session gid
# even if it is not the screen session we started (e.g. running under an undesirable gid
#su -c "screen -ls | grep -sq "\.${srnname}[[:space:]]" " ${user} || su -c "sg \"$group\" -c \"screen -fn -dm -S ${srnname} 2>&1 1>/dev/null\"" ${user} | tee -a "$logfile" >&2
su -c "screen -S "${srnname}" -X screen rtorrent ${options} 2>&1 1>/dev/null" ${user} | tee -a "$logfile" >&2
}
d_stop() {
session=`getsession "$config"`
if ! [ -s ${session}/rtorrent.lock ] ; then
return
fi
pid=`cat ${session}/rtorrent.lock | awk -F: '{print($2)}' | sed "s/[^0-9]//g"`
if ps -A | grep -sq ${pid}.*rtorrent ; then # make sure the pid doesn't belong to another process
kill -s INT ${pid}
fi
}
getsession() {
session=`cat "$1" | grep "^[[:space:]]*session[[:space:]]*=" | sed "s/^[[:space:]]*session[[:space:]]*=[[:space:]]*//" `
echo $session
}
checkcnfg
case "$1" in
start)
echo -n "Starting $DESC: $NAME"
d_start
echo "."
;;
stop)
echo -n "Stopping $DESC: $NAME"
d_stop
echo "."
;;
restart|force-reload)
echo -n "Restarting $DESC: $NAME"
d_stop
sleep 1
d_start
echo "."
;;
*)
echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload}" >&2
exit 1
;;
esac
exit 0
I prefer just send this file direct for server, because i have problem in past the script in server using (nano) you can try other editor# nano /etc/init.d/rtorrent
if you have problem PM than i send the file for you.
2° Continues...
Finish, reboot the server i see if rtorrent Web ui start together to the system.# chown root:root /etc/init.d/rtorrent
# chmod a+x /etc/init.d/rtorrent
# cd /etc/init.d
# update-rc.d rtorrent defaults
# /etc/init.d/rtorrent start
Guys i hope you enjoyed the tutorial, sorry for my english, if they need help and I know how to help and feel free to ask me about this tutorial
* I use different tutorials and configuration for install rtorrent, libtorrent, rutorrent, FTP and Script rtorrent start, i test all and this is i more like*









LinkBack URL
About LinkBacks

Reply With Quote





