Compare commits

..
Author SHA1 Message Date
arakasi72 6ecf17a697 Update rtinst 2019-07-27 19:27:34 +01:00
arakasi72 8015d7372f Update rtinst 2019-07-27 19:21:40 +01:00
12 changed files with 232 additions and 487 deletions
+8 -13
View File
@@ -1,7 +1,5 @@
## rtinst ## rtinst
### Note: Now installs Lets Encrypt SSL certificates
#### 30 Second Guide #### 30 Second Guide
Ubuntu and Debian Seedbox Installation Ubuntu and Debian Seedbox Installation
@@ -23,13 +21,17 @@ It takes about 10 minutes to run, depending on your server setup. After you have
**IMPORTANT: NOTE THE NEW SSH PORT AND MAKE SURE YOU CAN SSH INTO YOUR SERVER BEFORE CLOSING THE EXISTING SESSION** **IMPORTANT: NOTE THE NEW SSH PORT AND MAKE SURE YOU CAN SSH INTO YOUR SERVER BEFORE CLOSING THE EXISTING SESSION**
Current release has been tested with clean installs of: It has been tested with clean installs of:
Ubuntu 12 (unsupported)
Ubuntu 13 (unsupported)
Ubuntu 14
Ubuntu 15
Ubuntu 16 Ubuntu 16
Ubuntu 17 Ubuntu 17
Ubuntu 18 Ubuntu 18
Ubuntu 19 Debian 7 "Wheezy" (unsupported)
Ubuntu 20 Debian 8 "Jessie"
Debian 9 "Stretch" Debian 9 "Stretch"
Debian 10 "Buster" Debian 10 "Buster"
@@ -47,14 +49,7 @@ Services that will be installed and configured are
[Additional information on all the features](https://github.com/arakasi72/rtinst/wiki/Guide) [Additional information on all the features](https://github.com/arakasi72/rtinst/wiki/Guide)
For older unssuported OS [Older OS Installation Guide](https://github.com/arakasi72/rtinst/wiki/Installing-on-Older-OS). These include: For older unssuported OS listed above see the [Older OS Installation Guide](https://github.com/arakasi72/rtinst/wiki/Installing-on-Older-OS)
Ubuntu 12 (old release)
Ubuntu 13 (old release)
Ubuntu 14 (old release)
Ubuntu 15 (old release)
Debian 7 "Wheezy" (old release)
Debian 8 "Jessie" (old release)
To see latest updates to the script go to [Change Log](https://github.com/arakasi72/rtinst/wiki/Change-Log) To see latest updates to the script go to [Change Log](https://github.com/arakasi72/rtinst/wiki/Change-Log)
+2 -6
View File
@@ -1,6 +1,5 @@
server { server {
listen 80; listen 80;
listen [::]:80;
#server_name <Domain Name>; #server_name <Domain Name>;
root /var/www; root /var/www;
@@ -36,11 +35,8 @@ server {
} }
server { server {
listen 443 ssl http2 default_server; listen 443 ssl;
listen [::]:443 ssl http2 default_server; #server_name <Domain Name>;
#server_name <Domain Name>;
root /var/www; root /var/www;
index index.html index.php index.htm; index index.html index.php index.htm;
-2
View File
@@ -15,8 +15,6 @@ directory.default.set = (cat,(cfg.basedir),"download")
schedule = watch_directory,5,5,((load.start,(cat,(cfg.watch),"*.torrent"))) schedule = watch_directory,5,5,((load.start,(cat,(cfg.watch),"*.torrent")))
#system.umask.set = 0000
### BitTorrent ### BitTorrent
# Global upload and download rate in KiB, `0` for unlimited # Global upload and download rate in KiB, `0` for unlimited
throttle.global_down.max_rate.set = 0 throttle.global_down.max_rate.set = 0
+7 -2
View File
@@ -35,7 +35,12 @@ fi
if [[ $(systemctl list-units --all apt-daily.service | fgrep -c apt-daily.service) -gt 0 ]]; then if [[ $(systemctl list-units --all apt-daily.service | fgrep -c apt-daily.service) -gt 0 ]]; then
systemctl stop apt-daily.service > /dev/null 2>&1 systemctl stop apt-daily.service > /dev/null 2>&1
systemctl kill --kill-who=all apt-daily.service > /dev/null 2>&1 systemctl kill --kill-who=all apt-daily.service > /dev/null 2>&1
sleep 5
# wait until `apt-get updated` has been killed
while ! (systemctl list-units --all apt-daily.service | fgrep -q dead)
do
sleep 1;
done
fi fi
apt-get -qq update apt-get -qq update
@@ -57,7 +62,7 @@ if [ -d /etc/rtinst ] && [ -z $branch ]; then
if [ -z $branch ]; then if [ -z $branch ]; then
branch=$(git describe --tags --exact-match) branch=$(git describe --tags --exact-match)
if [ ${branch:0:1} = v ]; then if [ ${branch:0:1} = v ]; then
latest=$(curl -s "https://api.github.com/repos/arakasi72/rtinst/releases/latest" | awk -F '"' '/tag_name/{print $4}') latest=$(basename "$(git ls-remote --tags https://github.com/arakasi72/rtinst.git | grep -o 'refs/tags/v.*' | sort -V | tail -1)")
if [ $branch != $latest ]; then if [ $branch != $latest ]; then
echo "Updating from $branch to $latest" echo "Updating from $branch to $latest"
branch=$latest branch=$latest
+31 -58
View File
@@ -22,9 +22,8 @@ sshport=$(grep 'Port ' /etc/ssh/sshd_config | sed 's/[^0-9]*//g')
ftpport=$(grep 'listen_port=' /etc/vsftpd.conf | sed 's/[^0-9]*//g') ftpport=$(grep 'listen_port=' /etc/vsftpd.conf | sed 's/[^0-9]*//g')
cronline1="@reboot sleep 10; /usr/local/bin/rtcheck irssi rtorrent" cronline1="@reboot sleep 10; /usr/local/bin/rtcheck irssi rtorrent"
cronline2="*/10 * * * * /usr/local/bin/rtcheck irssi rtorrent" cronline2="*/10 * * * * /usr/local/bin/rtcheck irssi rtorrent"
serverip=$(ip route get 8.8.8.8 | awk 'NR==1 {print $7}') serverip=$(ip route get 8.8.8.8 | awk 'NR==1 {print $NF}')
check_ssh=1 check_ssh=1
rtdstatus=$(rtdload)
#get user list #get user list
cd /var/www/rutorrent/conf/users cd /var/www/rutorrent/conf/users
@@ -34,28 +33,6 @@ user_list=*
### FUNCTIONS ### ### FUNCTIONS ###
############################### ###############################
#function to determin if unix user name is valid
valid_name(){
until [[ $user =~ ^[a-z][-a-z0-9_]{2,31}$ ]]
do
echo "Enter user name (lowercase, numbers, dash and underscore):"
read user
done
}
# function to ask user for y/n response
ask_user(){
local answer
while true
do
read answer
case $answer in [Yy]* ) return 0 ;;
[Nn]* ) return 1 ;;
* ) echo "Enter y or n";;
esac
done
}
genpasswd() { genpasswd() {
local genln=$1 local genln=$1
[ -z "$genln" ] && genln=8 [ -z "$genln" ] && genln=8
@@ -206,38 +183,33 @@ fi
############################### ###############################
if [ -z "$user" ]; then if [ -z "$user" ]; then
echo "Enter the name of the user" echo "Enter the name of the user to add"
echo "It can be an existing user or a new user" echo "It can be an existing user or a new user"
echo echo
confirm_name=1 confirm_name=1
while [ $confirm_name = 1 ] while [ $confirm_name = 1 ]
do do
valid_name read -p "Enter user name: " answer
echo -n "Confirm that user name is $user y/n? " addname=$answer
if ask_user; then check_name=1
confirm_name=0 if [ "$addname" = "root" ]; then
else echo "Cannot create root"
user='' exit
fi fi
done
else
if ! [[ $user =~ ^[a-z][-a-z0-9_]{2,31}$ ]]; then
echo "$user is not a valid user name please enter again"
confirm_name=1
while [ $confirm_name = 1 ]
do
valid_name
echo -n "Confirm that user name is $user y/n? "
if ask_user; then
confirm_name=0
else
user=''
fi
done
fi
fi
echo "User name is $user" while [ $check_name = 1 ]
do
read -p "Is $addname correct? " answer
case $answer in [Yy]* ) confirm_name=0 && check_name=0 ;;
[Nn]* ) confirm_name=1 && check_name=0 ;;
* ) echo "Enter y or n";;
esac
done
done
user=$addname
fi
if id -u $user >/dev/null 2>&1; then if id -u $user >/dev/null 2>&1; then
echo "$user already exists" echo "$user already exists"
@@ -248,13 +220,6 @@ else
adduser --gecos "" $user --disabled-password adduser --gecos "" $user --disabled-password
echo "$user:$unixpass" | sudo chpasswd echo "$user:$unixpass" | sudo chpasswd
fi fi
if id -u $user >/dev/null 2>&1; then
echo "$user successfully created"
else
echo "create user failed - exiting process"
exit 1
fi
fi fi
home=$(eval echo "~$user") home=$(eval echo "~$user")
@@ -353,7 +318,7 @@ echo "?>" >> /var/www/rutorrent/conf/users/$user/config.php
mkdir /var/www/rutorrent/conf/users/$user/plugins/autodl-irssi mkdir /var/www/rutorrent/conf/users/$user/plugins/autodl-irssi
mkdir -p $home/.irssi/scripts/autorun mkdir -p $home/.irssi/scripts/autorun
cd $home/.irssi/scripts cd $home/.irssi/scripts
curl -sL http://git.io/vlcND | sed -n 's/.*browser_download_url": \?"\(.*zip\)".*/\1/p' | xargs wget --quiet -O autodl-irssi.zip curl -sL http://git.io/vlcND | grep -Po '(?<="browser_download_url": ")(.*-v[\d.]+.zip)' | xargs wget --quiet -O autodl-irssi.zip
unzip -o autodl-irssi.zip >> /dev/null 2>&1 unzip -o autodl-irssi.zip >> /dev/null 2>&1
rm autodl-irssi.zip rm autodl-irssi.zip
cp autodl-irssi.pl autorun/ cp autodl-irssi.pl autorun/
@@ -398,6 +363,14 @@ fi
su $user -c '/usr/local/bin/rt restart' su $user -c '/usr/local/bin/rt restart'
su $user -c '/usr/local/bin/rt -i restart' su $user -c '/usr/local/bin/rt -i restart'
dload_line=$(grep "include /etc/nginx/conf.d/rtdload;" /etc/nginx/sites-available/default)
dload_hash=$(echo $dload_line | sed 's/[^#]*//g')
if [ ! -z "$dload_line" -a -z "$dload_hash" ]; then
dload_flag=0
else
dload_flag=1
fi
echo "$user setup complete" echo "$user setup complete"
echo "SCGI Port: $newscgi" echo "SCGI Port: $newscgi"
echo "RPC Mount: $newrpc" echo "RPC Mount: $newrpc"
@@ -418,7 +391,7 @@ echo
fi fi
echo "ftp client should be set to explicit ftp over tls using port $ftpport" | tee -a $home/rtinst.info echo "ftp client should be set to explicit ftp over tls using port $ftpport" | tee -a $home/rtinst.info
echo echo
if [ "$rtdstatus" = "enabled" ]; then if [ $dload_flag = 0 ]; then
echo "https downloads can be accessed at https://$serverip/download/$user" | tee -a $home/rtinst.info echo "https downloads can be accessed at https://$serverip/download/$user" | tee -a $home/rtinst.info
echo echo
fi fi
+3 -5
View File
@@ -23,10 +23,9 @@ while true
[5] ) rtupdate && return 0 ;; [5] ) rtupdate && return 0 ;;
[6] ) rutupgrade && return 0 ;; [6] ) rutupgrade && return 0 ;;
[7] ) rtwebmin && return 0 ;; [7] ) rtwebmin && return 0 ;;
[8] ) rtletsencrypt && return 0 ;; [8] ) rtsslcert && return 0 ;;
[9] ) rtsslcert && return 0 ;;
[Qq] ) exit ;; [Qq] ) exit ;;
* ) echo "Enter 1-9 (q to quit)";; * ) echo "Enter 1-8 (q to quit)";;
esac esac
done done
} }
@@ -54,8 +53,7 @@ echo "4.) rtdload $rtdaction - $rtdaction https downloads"
echo "5.) rtupdate - up/down-grade rtorent/libtorrent" echo "5.) rtupdate - up/down-grade rtorent/libtorrent"
echo "6.) rutupgrade - upgrade to latest version of RuTorrent" echo "6.) rutupgrade - upgrade to latest version of RuTorrent"
echo "7.) rtwebmin - install webmin" echo "7.) rtwebmin - install webmin"
echo "8.) rtletsencrypt - install Lets Encypt ssl certificate" echo "8.) rtsslcert - generate new self signed ssl certificate"
echo "9.) rtsslcert - generate new self signed ssl certificate"
echo "Enter option or q to quit" echo "Enter option or q to quit"
select_task select_task
+159 -242
View File
@@ -8,6 +8,106 @@
# #
######################################################################################### #########################################################################################
###############################
### SET VARIABLES ###
###############################
PATH=/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/bin:/sbin
# if left blank will install latest version of rtorrent, or set to a specific release E.G. '0.9.6' to install that release
rtorrentrel='0.9.6'
#url's of the major components
rt_url="http://rtorrent.net/downloads/"
xmlrpc_url="https://svn.code.sf.net/p/xmlrpc-c/code/advanced/"
xmlrpc_url_alt="https://github.com/mirror/xmlrpc-c"
ru_url="https://github.com/Novik/ruTorrent/"
adl_url="https://github.com/autodl-community/"
if [ $(dpkg-query -W -f='${Status}' lsb-release 2>/dev/null | grep -c "ok installed") -eq 0 ]; then
echo "Installing lsb-release"
apt-get -yqq install lsb-release 2>&1 >> /dev/null
fi
fullrel=$(lsb_release -sd)
osname=$(lsb_release -si)
relno=$(lsb_release -sr | cut -d. -f1)
phpver=php5
phploc=/etc/php5
geoipver=php5-geoip
libcver=libcurl3
if [ "$relno" = "16" ] || [ "$relno" = "17" ] || [ "$relno" = "9" ]; then
phpver=php7.0
phploc=/etc/php/7.0
geoipver=php-geoip
fi
if [ $(lsb_release -sr) = "17.10" ]; then
phpver=php7.1
phploc=/etc/php/7.1
geoipver=php-geoip
fi
if [ "$relno" = "18" ]; then
phpver=php7.2
phploc=/etc/php/7.2
geoipver=php-geoip
libcver=libcurl4
fi
if [ "$relno" = "10" ]; then
phpver=php7.3
phploc=/etc/php/7.3
geoipver=php-geoip
libcver=libcurl4
fi
serveripa=$(ip route get 8.8.8.8 | awk 'NR==1 {print $7}')
serveripb=$(wget -qO- ipecho.net/plain)
if [ "$serveripa" = "$serveripb" ]; then
export serverip=$serveripa
else
echo "Select the IP address to use:"
echo "1.) "$serveripa
echo "2.) "$serveripb
while true
do
read answer
case $answer in [1] ) export serverip=$serveripa && break ;;
[2] ) export serverip=$serveripb && break ;;
* ) echo "Enter 1 or 2";;
esac
done
fi
echo "IP set to "$serverip
export logfile="/dev/null"
webpass=''
cronline1="@reboot sleep 10; /usr/local/bin/rtcheck irssi rtorrent"
cronline2="*/10 * * * * /usr/local/bin/rtcheck irssi rtorrent"
dlflag=1
portdefault=1
skip_rt=1
sshport=''
rudevflag=1
rurelease=master
passfile='/etc/nginx/.htpasswd'
package_list="sudo nano autoconf build-essential ca-certificates comerr-dev curl cfv dtach htop irssi libcloog-ppl-dev libcppunit-dev $libcver libncurses5-dev libterm-readline-gnu-perl libsigc++-2.0-dev libperl-dev libtool libxml2-dev ncurses-base ncurses-term ntp patch pkg-config $phpver-fpm $phpver $phpver-cli $phpver-dev $phpver-curl $geoipver $phpver-xmlrpc python-scgi screen subversion texinfo unzip zlib1g-dev libcurl4-openssl-dev mediainfo software-properties-common aptitude $phpver-json nginx-full apache2-utils git libarchive-zip-perl libnet-ssleay-perl libhtml-parser-perl libxml-libxml-perl libjson-perl libjson-xs-perl libxml-libxslt-perl libjson-rpc-perl libarchive-zip-perl"
Install_list=""
unixpass=""
passflag=0
forceyes=1
selfsign=1
rut_add_users=1
############################### ###############################
### FUNCTIONS ### ### FUNCTIONS ###
@@ -15,7 +115,7 @@
#function to check if a web site is reachable #function to check if a web site is reachable
check_url() { check_url() {
if [[ `wget -S -T 3 --spider $1 2>&1 | grep 'HTTP/1.1 200 OK'` ]]; then return 0; else return 1; fi if [[ `wget -S --spider $1 2>&1 | grep 'HTTP/1.1 200 OK'` ]]; then return 0; else return 1; fi
} }
# checks if an application is installed # checks if an application is installed
@@ -40,18 +140,6 @@ else
fi fi
} }
#function to determin if unix user name is valid
valid_name(){
until [[ $user =~ ^[a-z][-a-z0-9_]{2,31}$ ]]
do
echo "Enter user name (lowercase, numbers, dash and underscore):"
read user
done
}
#function to generate random password #function to generate random password
genpasswd() { genpasswd() {
local genln=$1 local genln=$1
@@ -61,12 +149,11 @@ tr -dc A-Za-z0-9 < /dev/urandom | head -c ${genln} | xargs
#function executed if the script finishes early #function executed if the script finishes early
early_exit() { early_exit() {
local rt_ee_version
echo "Installation is incomplete. Run rtinst again to complete" echo "Installation is incomplete. Run rtinst again to complete"
echo echo
if hash rtorrent >> /dev/null 2>&1; then if hash rtorrent >> /dev/null 2>&1; then
rt_ee_version=$(rtorrent -h | grep -om 1 "[0-9]\{1,2\}\.[0-9]\{1,2\}\.[0-9]\{1,2\}") rt_current=$(rtorrent -h | grep -om 1 "[0-9]\{1,2\}\.[0-9]\{1,2\}\.[0-9]\{1,2\}")
echo "rtorrent $rt_ee_version installed" echo "rtorrent $rt_current installed"
else else
echo "rtorrent was not installed" echo "rtorrent was not installed"
fi fi
@@ -150,147 +237,22 @@ while true
# function to enter IP address # function to enter IP address
enter_ip() { enter_ip() {
local ip_address=$1
exec 3>&1 >/dev/tty
while true while true
do do
if valid_ip $ip_address ; then if valid_ip $serverip ; then
echo "Your Server IP is $ip_address" echo "Your Server IP is $serverip"
echo -n "Is this correct y/n? " echo -n "Is this correct y/n? "
ask_user && break ask_user && return 0
else else
echo "Invalid IP address, please try again" echo "Invalid IP address, please try again"
fi fi
echo "enter your server's IP address" echo "enter your server's IP address"
echo "e.g. 213.0.113.113" echo "e.g. 213.0.113.113"
read ip_address read serverip
done done
exec >&3-
echo $ip_address
} }
###############################
### SET VARIABLES ###
###############################
PATH=/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/bin:/sbin
# if left blank will install latest version of rtorrent, or set to a specific release E.G. '0.9.6' to install that release
rtorrentrel='0.9.6'
#url's of the major components
rt_url="http://rtorrent.net/downloads/"
xmlrpc_url="https://svn.code.sf.net/p/xmlrpc-c/code/advanced/"
xmlrpc_url_alt="https://github.com/mirror/xmlrpc-c"
ru_url="https://github.com/Novik/ruTorrent/"
adl_url="https://github.com/autodl-community/"
if [ $(dpkg-query -W -f='${Status}' lsb-release 2>/dev/null | grep -c "ok installed") -eq 0 ]; then
echo "Installing lsb-release"
apt-get -yqq install lsb-release 2>&1 >> /dev/null
fi
fullrel=$(lsb_release -sd)
osname=$(lsb_release -si)
relno=$(lsb_release -sr | cut -d. -f1)
# Fallback if lsb_release -si returns anything else than Ubuntu, Debian or Raspbian
if [ ! "$osname" = "ubuntu" ] && [ ! "$osname" = "debian" ] && [ ! "$osname" = "raspbian" ] && [ ! "$osname" = "Linuxmint" ]; then
osname=$(grep -oP '(?<=^ID=).+' /etc/os-release | tr -d '"')
osname=${osname^}
fi
# Fallback if lsb_release -sr returns nothing
if [ "$relno" = "" ]; then
relno=$(grep -oP '(?<=^VERSION_ID=).+' /etc/os-release | tr -d '"')
fi
if [ "$relno" = "16" ] || [ "$relno" = "17" ] || [ "$relno" = "9" ]; then
phpver=php7.0
phploc=/etc/php/7.0
libcver=libcurl3
fi
if [ "$(lsb_release -sr)" = "17.10" ]; then
phpver=php7.1
phploc=/etc/php/7.1
libcver=libcurl3
fi
if [ "$relno" = "18" ] || [ "$relno" = "19" ]; then
phpver=php7.2
phploc=/etc/php/7.2
libcver=libcurl4
fi
if [ "$relno" = "10" ] || [ "$(lsb_release -sr)" = "19.10" ]; then
phpver=php7.3
phploc=/etc/php/7.3
libcver=libcurl4
fi
if [ "$relno" = "20" ] || [ "$(lsb_release -sr)" = "20.04" ] || [ "$relno" = "11" ]; then
phpver=php7.4
phploc=/etc/php/7.4
libcver=libcurl4
fi
serveripa=$(ip route get 8.8.8.8 | awk 'NR==1 {print $7}')
serveripb=$(wget -qO- --timeout=3 ipecho.net/plain)
serveripc=$(wget -qO- --timeout=3 ipinfo.io/ip)
if [ "$serveripa" = "$serveripb" ] || [ "$serveripa" = "$serveripc" ]; then
serverip=$serveripa
else
echo "Select the IP address to use:"
echo "1.) "$serveripa
echo "2.) "$serveripb
echo "3.) "$serveripc
while true
do
read answer
case $answer in [1] ) serverip=$serveripa && break ;;
[2] ) serverip=$serveripb && break ;;
[3] ) serverip=$serveripc && break ;;
* ) echo "Enter 1, 2 or 3";;
esac
done
fi
echo "IP set to "$serverip
export logfile="/dev/null"
webpass=''
cronline1="@reboot sleep 10; /usr/local/bin/rtcheck irssi rtorrent"
cronline2="*/10 * * * * /usr/local/bin/rtcheck irssi rtorrent"
dlflag=1
portdefault=1
skip_rt=1
sshport=''
rudevflag=1
rurelease=master
passfile='/etc/nginx/.htpasswd'
package_list="sudo nano autoconf build-essential ca-certificates comerr-dev curl dtach htop irssi libcppunit-dev $libcver libncurses5-dev libterm-readline-gnu-perl libsigc++-2.0-dev libperl-dev libtool libxml2-dev ncurses-base ncurses-term ntp patch pkg-config $phpver-fpm $phpver $phpver-cli $phpver-dev $phpver-curl php-geoip $phpver-xmlrpc $phpver-xml $phpver-zip screen subversion texinfo unzip zlib1g-dev libcurl4-openssl-dev mediainfo software-properties-common $phpver-json nginx-full apache2-utils git libarchive-zip-perl libnet-ssleay-perl libhtml-parser-perl libxml-libxml-perl libjson-perl libjson-xs-perl libxml-libxslt-perl libjson-rpc-perl libarchive-zip-perl"
Install_list=""
unixpass=""
passflag=0
forceyes=1
selfsign=1
rut_add_users=1
############################### ###############################
### INITIAL SYSTEM CHECKS ### ### INITIAL SYSTEM CHECKS ###
############################### ###############################
@@ -301,11 +263,11 @@ if [ "$(id -u)" != "0" ]; then
fi fi
# determine system # determine system
if ([ "$osname" = "Ubuntu" ] && [ $relno -ge 16 ]) || ([ "$osname" = "Debian" ] && [ $relno -ge 9 ]) || ([ "$osname" = "Raspbian" ] && [ $relno -ge 9 ]) || ([ "$osname" = "Linuxmint" ] && [ $relno -ge 16 ]); then if ([ "$osname" = "Ubuntu" ] && [ $relno -ge 14 ] && [ $relno -le 15 ]) || ([ "$osname" = "Debian" ] && [ $relno -eq 8 ]) || ([ "$osname" = "Raspbian" ] && [ $relno -eq 8 ]); then
echo $fullrel echo $fullrel
else else
echo $fullrel echo $fullrel
echo "Only Ubuntu and Linux Mint release 16 and later, and Debian and Raspbian release 9 and later, are supported" echo "Only Ubuntu release 14 and 15, and Debian and Raspbian release 8 are supported"
echo "Your system does not appear to be supported" echo "Your system does not appear to be supported"
echo "Check https://github.com/arakasi72/rtinst/wiki/Installing-on-Older-OS to see if it is supported by an earlier rtinst release" echo "Check https://github.com/arakasi72/rtinst/wiki/Installing-on-Older-OS to see if it is supported by an earlier rtinst release"
exit exit
@@ -380,13 +342,12 @@ fi
echo echo
# check IP Address # check IP Address
[ $forceyes = 1 ] && serverip=$(enter_ip $serverip) [ $forceyes = 1 ] && enter_ip
echo "Your server's IP is set to $serverip" echo "Your server's IP is set to $serverip"
export serverip
# Determine domain name using server ip address # Determine domain name using server ip address
export serverdn=$(perl -MSocket -le "print((gethostbyaddr(inet_aton('$serverip'), AF_INET))[0])") serverdn=$(perl -MSocket -le "print((gethostbyaddr(inet_aton('$serverip'), AF_INET))[0])")
if [ -z "$serverdn" ]; then if [ -z "$serverdn" ]; then
echo "Unable to determine domain" echo "Unable to determine domain"
else else
@@ -424,39 +385,25 @@ if [ -z "$user" ]; then
echo "This will be your primary user" echo "This will be your primary user"
echo "It can be an existing user or a new user" echo "It can be an existing user or a new user"
echo echo
confirm_name=1 confirm_name=1
while [ $confirm_name = 1 ] while [ $confirm_name = 1 ]
do do
valid_name read -p "Enter user name: " answer
echo -n "Confirm that user name is $user y/n? " addname=$answer
echo -n "Confirm that user name is $answer y/n? "
if ask_user; then if ask_user; then
confirm_name=0 confirm_name=0
else
user=''
fi fi
done done
user=$addname
else else
user=$SUDO_USER user=$SUDO_USER
fi fi
else
if ! [[ $user =~ ^[a-z][-a-z0-9_]{2,31}$ ]]; then
echo "$user is not a valid user name please enter again"
confirm_name=1
while [ $confirm_name = 1 ]
do
valid_name
echo -n "Confirm that user name is $user y/n? "
if ask_user; then
confirm_name=0
else
user=''
fi
done
fi
fi fi
echo "User name is $user"
if id -u $user >/dev/null 2>&1; then if id -u $user >/dev/null 2>&1; then
echo "$user already exists" echo "$user already exists"
else else
@@ -464,16 +411,8 @@ else
adduser --gecos "" $user adduser --gecos "" $user
else else
adduser --gecos "" $user --disabled-password adduser --gecos "" $user --disabled-password
echo "$user:$unixpass" | chpasswd echo "$user:$unixpass" | sudo chpasswd
fi fi
if id -u $user >/dev/null 2>&1; then
echo "$user successfully created"
else
echo "create user failed - exiting process"
exit 1
fi
fi fi
home=$(eval echo "~$user") home=$(eval echo "~$user")
@@ -543,28 +482,30 @@ echo
if [[ $(systemctl list-units --all apt-daily.service | fgrep -c apt-daily.service) -gt 0 ]]; then if [[ $(systemctl list-units --all apt-daily.service | fgrep -c apt-daily.service) -gt 0 ]]; then
systemctl stop apt-daily.service >> $logfile 2>&1 systemctl stop apt-daily.service >> $logfile 2>&1
systemctl kill --kill-who=all apt-daily.service >> $logfile 2>&1 systemctl kill --kill-who=all apt-daily.service >> $logfile 2>&1
sleep 5
# wait until `apt-get updated` has been killed
while ! (systemctl list-units --all apt-daily.service | fgrep -q dead)
do
sleep 1;
done
fi fi
#update amd upgrade system #update amd upgrade system
echo "Updating package lists" | tee $logfile echo "Updating package lists" | tee $logfile
apt-get -qq update | tee -a $logfile apt-get -qq update | tee -a $logfile
# Installing Aptitude
apt-get -qqy install aptitude
echo "Upgrading packages" | tee -a $logfile echo "Upgrading packages" | tee -a $logfile
export DEBIAN_FRONTEND=noninteractive export DEBIAN_FRONTEND=noninteractive
aptitude -q=5 -y upgrade >> $logfile 2>&1 apt-get -qq upgrade >> $logfile 2>&1
if ! [ $? = 0 ]; then if ! [ $? = 0 ]; then
echo "Problem upgrading packages. Run 'aptitude upgrade' successfully and rerun the script" && exit echo "Problem upgrading packages. Run 'apt-get upgrade' successfully and rerun the script" && exit
fi fi
aptitude clean && aptitude autoclean >> $logfile 2>&1 apt-get clean && apt-get autoclean >> $logfile 2>&1
#install the packages needed #install the packsges needed
echo "Installing required packages" | tee -a $logfile echo "Installing required packages" | tee -a $logfile
aptitude -q=5 -y install libtool >> $logfile 2>&1
for package_name in $package_list for package_name in $package_list
do do
if [ $(apt-cache show -q=0 $package_name 2>&1 | grep -c "No packages found") -eq 0 ]; then if [ $(apt-cache show -q=0 $package_name 2>&1 | grep -c "No packages found") -eq 0 ]; then
@@ -576,18 +517,13 @@ for package_name in $package_list
fi fi
done done
# Installs a package needed to prevent arm64 architectures from "WARNING: Unable to start rtorrent" test -z "$install_list" || apt-get -qq install $install_list >> $logfile 2>&1
if [ "$(uname --m)" == "aarch64" ] || [ "$(dpkg --print-architecture)" == "arm64" ] ; then
aptitude -q=5 -y install libxmlrpc-core-c3-dev >> $logfile 2>&1
fi
test -z "$install_list" || aptitude -q=5 -y install $install_list >> $logfile 2>&1
if ! [ $? = 0 ]; then if ! [ $? = 0 ]; then
echo "Problem installing packages. Check log and rerun once it is resolved" && exit echo "Problem installing packages. Check log and rerun once it is resolved" && exit
fi fi
if [[ $phpver =~ php7.[0-9] ]]; then if [[ $phpver =~ php7.[0-9] ]]; then
aptitude -q=5 -y install $phpver-mbstring >> $logfile 2>&1 apt-get -qq install $phpver-mbstring >> $logfile 2>&1
fi fi
#install unrar package #install unrar package
@@ -599,13 +535,13 @@ if [ $osname = "Debian" ] && ! installed unrar; then
do do
attempts=$(( $attempts + 1 )) attempts=$(( $attempts + 1 ))
if [ "$(uname -m)" = "x86_64" ]; then if [ "$(uname -m)" = "x86_64" ]; then
wget http://www.rarlab.com/rar/rarlinux-x64-5.7.1.tar.gz >> $logfile 2>&1 wget http://www.rarlab.com/rar/rarlinux-x64-5.5.0.tar.gz >> $logfile 2>&1
tar xvzf rarlinux-x64-5.7.1.tar.gz >> $logfile 2>&1 tar xvzf rarlinux-x64-5.5.0.tar.gz >> $logfile 2>&1
rm rarlinux-x64-5.7.1.tar.gz rm rarlinux-x64-5.5.0.tar.gz
elif [ "$(uname -m)" = "x86_32" ]; then elif [ "$(uname -m)" = "x86_32" ]; then
wget http://www.rarlab.com/rar/rarlinux-5.7.1.tar.gz >> $logfile 2>&1 wget http://www.rarlab.com/rar/rarlinux-5.5.0.tar.gz >> $logfile 2>&1
tar xvzf rarlinux-5.7.1.tar.gz >> $logfile 2>&1 tar xvzf rarlinux-5.5.0.tar.gz >> $logfile 2>&1
rm rarlinux-5.7.1.tar.gz rm rarlinux-5.5.0.tar.gz
fi fi
done done
if [ -d rar ]; then if [ -d rar ]; then
@@ -613,8 +549,8 @@ if [ $osname = "Debian" ] && ! installed unrar; then
cp $home/rar/unrar /bin/unrar cp $home/rar/unrar /bin/unrar
rm -r $home/rar rm -r $home/rar
fi fi
elif [ $osname = "Ubuntu" || $osname = "Linuxmint" ]; then elif [ $osname = "Ubuntu" ]; then
aptitude -q=5 -y install unrar >> $logfile 2>&1 apt-get -qq install unrar >> $logfile 2>&1
fi fi
if installed unrar; then if installed unrar; then
@@ -626,7 +562,19 @@ fi
#install ffmpeg #install ffmpeg
if ! [ $osname = "Raspbian" ] && [ $(dpkg-query -W -f='${Status}' "ffmpeg" 2>/dev/null | grep -c "ok installed") = 0 ]; then if ! [ $osname = "Raspbian" ] && [ $(dpkg-query -W -f='${Status}' "ffmpeg" 2>/dev/null | grep -c "ok installed") = 0 ]; then
echo "Installing ffmpeg" echo "Installing ffmpeg"
aptitude -q=5 -y install ffmpeg >> $logfile 2>&1 if [ $relno = 14 ]; then
apt-add-repository -y ppa:mc3man/trusty-media >> $logfile 2>&1
apt-get -qq update >> $logfile 2>&1
apt-get -qq install ffmpeg >> $logfile 2>&1
elif [ $relno = 8 ]; then
grep "deb http://www.deb-multimedia.org jessie main" /etc/apt/sources.list >> /dev/null || echo "deb http://www.deb-multimedia.org jessie main" >> /etc/apt/sources.list
apt-get -qq update >> $logfile 2>&1
apt-get -qq --force-yes install deb-multimedia-keyring >> $logfile 2>&1
apt-get -qq update >> $logfile 2>&1
apt-get -qq --force-yes install ffmpeg >> $logfile 2>&1
else
apt-get -qq install ffmpeg >> $logfile 2>&1
fi
fi fi
echo "Completed installation of required packages " echo "Completed installation of required packages "
@@ -696,14 +644,7 @@ echo "SSH port set to $sshport"
############################### ###############################
# calls the script rtsslcert to generate the ssl certificated for vsftpd and nginx # calls the script rtsslcert to generate the ssl certificated for vsftpd and nginx
if rtletsencrypt ; then rtsslcert -d
leflag=0
echo "Lets Encrypt Certificates installed"
else
rtsslcert -d
leflag=1
echo "Self signed certificats installed"
fi
############################### ###############################
### INSTALL FTP ### ### INSTALL FTP ###
@@ -713,7 +654,7 @@ ftpport=$(random 41005 48995)
if [ $(dpkg-query -W -f='${Status}' "vsftpd" 2>/dev/null | grep -c "ok installed") -eq 0 ]; then if [ $(dpkg-query -W -f='${Status}' "vsftpd" 2>/dev/null | grep -c "ok installed") -eq 0 ]; then
echo "Installing vsftpd" | tee -a $logfile echo "Installing vsftpd" | tee -a $logfile
aptitude -q=5 -y install vsftpd >> $logfile 2>&1 apt-get -y install vsftpd >> $logfile 2>&1
fi fi
sed -i '/^\(\s\|#\)*anonymous_enable/ c\anonymous_enable=NO' /etc/vsftpd.conf sed -i '/^\(\s\|#\)*anonymous_enable/ c\anonymous_enable=NO' /etc/vsftpd.conf
@@ -746,11 +687,6 @@ grep -Pq "^\s*ssl_tlsv1" /etc/vsftpd.conf && sed -i '/^\s*ssl_tlsv1/ c\ssl_tlsv
grep -Pq "^\s*require_ssl_reuse" /etc/vsftpd.conf && sed -i '/^\s*require_ssl_reuse/ c\require_ssl_reuse=NO' /etc/vsftpd.conf || echo "require_ssl_reuse=NO" >> /etc/vsftpd.conf grep -Pq "^\s*require_ssl_reuse" /etc/vsftpd.conf && sed -i '/^\s*require_ssl_reuse/ c\require_ssl_reuse=NO' /etc/vsftpd.conf || echo "require_ssl_reuse=NO" >> /etc/vsftpd.conf
grep -Pq "^\s*ssl_ciphers" /etc/vsftpd.conf && sed -i '/^\s*ssl_ciphers/ c\ssl_ciphers=HIGH' /etc/vsftpd.conf || echo "ssl_ciphers=HIGH" >> /etc/vsftpd.conf grep -Pq "^\s*ssl_ciphers" /etc/vsftpd.conf && sed -i '/^\s*ssl_ciphers/ c\ssl_ciphers=HIGH' /etc/vsftpd.conf || echo "ssl_ciphers=HIGH" >> /etc/vsftpd.conf
if [ $leflag = 0 ]; then
sed -i "/^\(\s\|#\)*rsa_cert_file/ c\rsa_cert_file=/etc/letsencrypt/live/$serverdn/fullchain.pem" /etc/vsftpd.conf
sed -i "/^\(\s\|#\)*rsa_private_key_file/ c\rsa_private_key_file=/etc/letsencrypt/live/$serverdn/privkey.pem" /etc/vsftpd.conf
fi
service vsftpd restart 1>> $logfile service vsftpd restart 1>> $logfile
ftpport=$(grep 'listen_port=' /etc/vsftpd.conf | sed 's/[^0-9]*//g') ftpport=$(grep 'listen_port=' /etc/vsftpd.conf | sed 's/[^0-9]*//g')
@@ -823,14 +759,6 @@ echo "location ~* \.(jpg|jpeg|gif|css|png|js|woff|ttf|svg|eot)$ {" > /etc/nginx/
echo " expires 30d;" >> /etc/nginx/conf.d/cache echo " expires 30d;" >> /etc/nginx/conf.d/cache
echo "}" >> /etc/nginx/conf.d/cache echo "}" >> /etc/nginx/conf.d/cache
if [ $leflag = 0 ]; then
sed -i "/^\(\s\|#\)*server_name/ c\ server_name $serverdn;" /etc/nginx/sites-available/default
sed -i "/ssl_certificate / c\ ssl_certificate /etc/letsencrypt/live/$serverdn/fullchain.pem;" /etc/nginx/sites-available/default
sed -i "/ssl_certificate_key / c\ ssl_certificate_key /etc/letsencrypt/live/$serverdn/privkey.pem;" /etc/nginx/sites-available/default
else
sed -i "/^\(\s\|#\)*server_name/ c\ server_name $serverip;" /etc/nginx/sites-available/default
fi
service nginx restart && service $phpver-fpm restart service nginx restart && service $phpver-fpm restart
if [ $dlflag = 0 ]; then if [ $dlflag = 0 ]; then
@@ -878,7 +806,7 @@ if [ -d "/var/www/rutorrent" ]; then
fi fi
if [ $rudevflag = 1 ]; then if [ $rudevflag = 1 ]; then
rurelease=$(curl -s "https://api.github.com/repos/Novik/ruTorrent/releases/latest" | awk -F '"' '/tag_name/{print $4}') rurelease=$(git ls-remote -t https://github.com/Novik/ruTorrent v\* | cut -d/ -f3 | sort -V | tail -1)
fi fi
echo "Installing Rutorrent ($rurelease)" | tee -a $logfile echo "Installing Rutorrent ($rurelease)" | tee -a $logfile
@@ -921,7 +849,7 @@ adlpass=$(genpasswd $(random 12 16))
mkdir -p $home/.irssi/scripts/autorun mkdir -p $home/.irssi/scripts/autorun
cd $home/.irssi/scripts cd $home/.irssi/scripts
curl -sL http://git.io/vlcND | sed -n 's/.*browser_download_url": \?"\(.*zip\)".*/\1/p' | xargs wget --quiet -O autodl-irssi.zip curl -sL http://git.io/vlcND | grep -Po '(?<="browser_download_url": ")(.*-v[\d.]+.zip)' | xargs wget --quiet -O autodl-irssi.zip
unzip -qq -o autodl-irssi.zip | tee -a $logfile unzip -qq -o autodl-irssi.zip | tee -a $logfile
rm autodl-irssi.zip rm autodl-irssi.zip
cp autodl-irssi.pl autorun/ cp autodl-irssi.pl autorun/
@@ -1048,13 +976,7 @@ if [ -z $ru_current ]; then
echo " RuTorrent was not installed" | tee -a $home/rtinst.info echo " RuTorrent was not installed" | tee -a $home/rtinst.info
else else
echo " RuTorrent $ru_current installed" | tee -a $home/rtinst.info echo " RuTorrent $ru_current installed" | tee -a $home/rtinst.info
echo " rutorrent can be accessed at https://$serverip/rutorrent" | tee -a $home/rtinst.info
if [ $leflag = 0 ]; then
echo " rutorrent can be accessed at https://$serverdn/rutorrent" | tee -a $home/rtinst.info
else
echo " rutorrent can be accessed at https://$serverip/rutorrent" | tee -a $home/rtinst.info
fi
if [ $passflag = 1 ]; then if [ $passflag = 1 ]; then
echo " rutorrent password set to $webpass" | tee -a $home/rtinst.info echo " rutorrent password set to $webpass" | tee -a $home/rtinst.info
elif [ $passflag = 2 ]; then elif [ $passflag = 2 ]; then
@@ -1064,12 +986,7 @@ else
fi fi
echo " to change rutorrent password enter: rtpass" | tee -a $home/rtinst.info echo " to change rutorrent password enter: rtpass" | tee -a $home/rtinst.info
echo | tee -a $home/rtinst.info echo | tee -a $home/rtinst.info
echo " If enabled, access https downloads at https://$serverip/download/$user" | tee -a $home/rtinst.info
if [ $leflag = 0 ]; then
echo " If enabled, access https downloads at https://$serverdn/download/$user" | tee -a $home/rtinst.info
else
echo " If enabled, access https downloads at https://$serverip/download/$user" | tee -a $home/rtinst.info
fi
fi fi
echo | tee -a $home/rtinst.info echo | tee -a $home/rtinst.info
-114
View File
@@ -1,114 +0,0 @@
#!/bin/bash
#########################################################################################
#
# Copyright (c) 2015 arakasi72 (https://github.com/arakasi72)
#
# --> Licensed under the MIT license: http://www.opensource.org/licenses/mit-license.php
#
#########################################################################################
headless=0
osname=$(lsb_release -si)
releasename=$(lsb_release -cs)
[ -z $logfile ] && logfile="/dev/null"
if [ -z $serverip ]; then
headless=1
fi
#check it is being run as root
if [ "$(id -u)" != "0" ]; then
echo "Must be run from root or using sudo" && exit 1
fi
if [ $headless = 1 ]; then
serveripa=$(ip route get 8.8.8.8 | awk 'NR==1 {print $7}')
serveripb=$(wget -qO- ipecho.net/plain)
serveripc=$(wget -qO- --timeout=3 ipinfo.io/ip)
if [ "$serveripa" = "$serveripb" ] || [ "$serveripa" = "$serveripc" ]; then
serverip=$serveripa
else
echo "Select the IP address to use:"
echo "1.) "$serveripa
echo "2.) "$serveripb
echo "3.) "$serveripc
while true
do
read answer
case $answer in [1] ) serverip=$serveripa && break ;;
[2] ) serverip=$serveripb && break ;;
[3] ) serverip=$serveripc && break ;;
* ) echo "Enter 1, 2 or 3";;
esac
done
fi
serverdn=$(perl -MSocket -le "print((gethostbyaddr(inet_aton('$serverip'), AF_INET))[0])")
fi
echo "IP: $serverip"
echo "DN: $serverdn"
if [ -z $serverdn ]; then
echo "Unable to determine domain name cannot setup Lets Encypt"
exit 1
fi
# Remove apt version of Certbot if installed
if [ $(dpkg-query -W -f='${Status}' "certbot" 2>/dev/null | grep -c "ok installed") = 1 ]; then
echo "Removing apt version of Certbot"
aptitude -q=5 -y remove certbot python*-certbot-nginx >> $logfile 2>&1
fi
# Install Snapd service
aptitude -q=5 -y install snapd >> $logfile 2>&1
# Install the core snap in order to get the latest snapd for Debian
if [ $osname = "Debian" ]; then snap install core >> $logfile 2>&1; snap refresh core; fi
# Installing Certbot
if [ $(snap list | grep -c "certbot") = 0 ]; then
echo "Installing certbot"
snap -y install --classic certbot >> $logfile 2>&1
else
echo "certbot already installed"
fi
if [ $(snap list | grep -c "certbot") = 0 ]; then
echo "Install Failed"
exit 1
fi
#Generating Certificates
certbot -q --nginx --register-unsafely-without-email --agree-tos certonly -d $serverdn >> $logfile 2>&1
if [ $? = 1 ]; then
echo "unable to generate certificates"
exit 1
fi
echo "Certificates Generated"
if [ $headless = 0 ]; then
exit 0
fi
if [ -d "/etc/letsencrypt/live/$serverdn" ]; then
echo "Replacing certificates in nginx and vsftpd"
sed -i "/^\(\s\|#\)*server_name/ c\ server_name $serverdn;" /etc/nginx/sites-available/default
sed -i "/ssl_certificate / c\ ssl_certificate /etc/letsencrypt/live/$serverdn/fullchain.pem;" /etc/nginx/sites-available/default
sed -i "/ssl_certificate_key / c\ ssl_certificate_key /etc/letsencrypt/live/$serverdn/privkey.pem;" /etc/nginx/sites-available/default
service nginx restart
sed -i "/^\(\s\|#\)*rsa_cert_file/ c\rsa_cert_file=/etc/letsencrypt/live/$serverdn/fullchain.pem" /etc/vsftpd.conf
sed -i "/^\(\s\|#\)*rsa_private_key_file/ c\rsa_private_key_file=/etc/letsencrypt/live/$serverdn/privkey.pem" /etc/vsftpd.conf
service vsftpd restart
fi
+2 -6
View File
@@ -59,7 +59,6 @@ fi
if [ -f /etc/nginx/sites-available/default ]; then if [ -f /etc/nginx/sites-available/default ]; then
sed -i '/ssl_certificate / c\ ssl_certificate \/etc\/ssl\/ruweb\.crt;' /etc/nginx/sites-available/default sed -i '/ssl_certificate / c\ ssl_certificate \/etc\/ssl\/ruweb\.crt;' /etc/nginx/sites-available/default
sed -i '/ssl_certificate_key/ c\ ssl_certificate_key \/etc\/ssl\/private\/ruweb\.key;' /etc/nginx/sites-available/default sed -i '/ssl_certificate_key/ c\ ssl_certificate_key \/etc\/ssl\/private\/ruweb\.key;' /etc/nginx/sites-available/default
sed -i "/^\(\s\|#\)*server_name/ c\ server_name $serverip;" /etc/nginx/sites-available/default
service nginx restart >/dev/null 2>&1 service nginx restart >/dev/null 2>&1
fi fi
} }
@@ -97,22 +96,19 @@ fi
if [ -z $serverip ]; then if [ -z $serverip ]; then
serveripa=$(ip route get 8.8.8.8 | awk 'NR==1 {print $7}') serveripa=$(ip route get 8.8.8.8 | awk 'NR==1 {print $7}')
serveripb=$(wget -qO- ipecho.net/plain) serveripb=$(wget -qO- ipecho.net/plain)
serveripc=$(wget -qO- --timeout=3 ipinfo.io/ip) if [ "$serveripa" = "$serveripb" ]; then
if [ "$serveripa" = "$serveripb" ] || [ "$serveripa" = "$serveripc" ]; then
serverip=$serveripa serverip=$serveripa
else else
echo "Select the IP address to use:" echo "Select the IP address to use:"
echo "1.) "$serveripa echo "1.) "$serveripa
echo "2.) "$serveripb echo "2.) "$serveripb
echo "3.) "$serveripc
while true while true
do do
read answer read answer
case $answer in [1] ) serverip=$serveripa && break ;; case $answer in [1] ) serverip=$serveripa && break ;;
[2] ) serverip=$serveripb && break ;; [2] ) serverip=$serveripb && break ;;
[3] ) serverip=$serveripc && break ;; * ) echo "Enter 1 or 2";;
* ) echo "Enter 1, 2 or 3";;
esac esac
done done
fi fi
+16 -35
View File
@@ -12,41 +12,23 @@ PATH=/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/bin:/sbin
osname=$(lsb_release -si) osname=$(lsb_release -si)
relno=$(lsb_release -sr | cut -d. -f1) relno=$(lsb_release -sr | cut -d. -f1)
fullrelno=$(lsb_release -sr)
# Fallback if lsb_release -si returns nothing
if [ "$osname" = "" ]; then
osname=$(grep -oP '(?<=^ID=).+' /etc/os-release | tr -d '"')
osname=${osname^}
fi
# Fallback if lsb_release -sr returns nothing
if [ "$relno" = "" ]; then
relno=$(grep -oP '(?<=^VERSION_ID=).+' /etc/os-release | tr -d '"' | cut -d. -f1)
fi
if [ "$fullrelno" = "" ]; then
fullrelno=$(grep -oP '(?<=^VERSION_ID=).+' /etc/os-release | tr -d '"')
fi
sourcedir='http://rtorrent.net/downloads/' sourcedir='http://rtorrent.net/downloads/'
xmlrpc_url='https://svn.code.sf.net/p/xmlrpc-c/code/stable/' xmlrpc_url='https://svn.code.sf.net/p/xmlrpc-c/code/advanced/'
xmlrpcloc='svn://svn.code.sf.net/p/xmlrpc-c/code/stable/' xmlrpcloc='svn://svn.code.sf.net/p/xmlrpc-c/code/advanced/'
xmlrpc_url_alt='https://github.com/mirror/xmlrpc-c' xmlrpc_url_alt='https://github.com/mirror/xmlrpc-c'
xmlrpcloc_alt='https://github.com/mirror/xmlrpc-c/trunk/stable' xmlrpcloc_alt='https://github.com/mirror/xmlrpc-c/trunk/advanced'
rtdevrel=1 rtdevrel=1
if [ "$fullrelno" = "17.10" ]; then if [ $relno = 9 ] || [ $relno = 10 ] || [ $(lsb_release -sr) = 17.10 ] || [ $relno = 18 ]; then
rtdevrel=0 rtdevrel=0
fi fi
if ([ "$osname" = "Debian" ] || [ "$osname" = "Raspbian" ] && [ $relno -ge 9 ]) || ([ "$osname" = "Ubuntu" ] && [ $relno -ge 18 ]) || ([ "$osname" = "Linuxmint" ] && [ $relno -ge 18 ]); then #if [ $rtdevrel = 0 ]; then
rtdevrel=0 # sourcedir='https://github.com/rakshasa/'
fi #fi
listsize=6 listsize=6
duoversion='' duoversion=''
@@ -75,7 +57,7 @@ hash $1 2>/dev/null
#function to check if a web site is reachable #function to check if a web site is reachable
check_url() { check_url() {
if [[ `wget -S -T 3 --spider $1 2>&1 | grep 'HTTP/1.1 200 OK'` ]]; then return 0; else return 1; fi if [[ `wget -S --spider $1 2>&1 | grep 'HTTP/1.1 200 OK'` ]]; then return 0; else return 1; fi
} }
# function to create a list of versions to install # function to create a list of versions to install
@@ -157,7 +139,7 @@ if [ -z $passed_rtvers ]; then
# checks if the OS is debian 9, and forces the version to 0.9.7 of it is # checks if the OS is debian 9, and forces the version to 0.9.7 of it is
if [ $rtdevrel = 0 ]; then if [ $rtdevrel = 0 ]; then
echo "For Debian 9, Ubuntu 17.10 or later and Linux Mint 17 or later, libtorrent-0.13.7/rtorrent-0.9.7 or later is recommended" echo "For Debian 9, and Ubuntu 17.10 and later, recommend libtorrent-0.13.7/rtorrent-0.9.7 or later"
fi fi
list_version list_version
@@ -184,7 +166,7 @@ else
if [ $rtdevrel = 0 ]; then if [ $rtdevrel = 0 ]; then
libvers='0.13.8' libvers='0.13.8'
rtvers='0.9.8' rtvers='0.9.8'
echo "Debian 9, Ubuntu 17.10 or later and Linux Mint 17 or later are only supported by libtorrent-0.13.7/rtorrent-0.9.7 or later" echo "Debian 9, and Ubuntu 17.10 and later, are only supported by libtorrent-0.13.7/rtorrent-0.9.7 or later"
fi fi
fi fi
@@ -218,19 +200,16 @@ echo "Fetching source files"
if [ $xmlrpc_repo = 0 ]; then if [ $xmlrpc_repo = 0 ]; then
svn co $xmlrpcloc xmlrpc >> $logfile 2>&1 svn co $xmlrpcloc xmlrpc >> $logfile 2>&1
if [ ! -e xmlrpc ]; then
git clone $xmlrpc_url_alt xmlrpc >> $logfile 2>&1
cd xmlrpc/stable
else cd xmlrpc; fi
cd xmlrpc
echo "Installing xmlrpc" | tee -a $logfile echo "Installing xmlrpc" | tee -a $logfile
./configure --prefix=/usr --disable-cplusplus >> $logfile 2>&1 ./configure --prefix=/usr --disable-cplusplus >> $logfile 2>&1
make -j$(nproc) >> $logfile 2>&1 make -j$(nproc) >> $logfile 2>&1
make -s install >> $logfile 2>&1 make -s install >> $logfile 2>&1
cd $home/source cd ..
fi fi
cd libtorrent* cd libtorrent-$libvers
echo "Installing libtorrent" | tee -a $logfile echo "Installing libtorrent" | tee -a $logfile
./autogen.sh >> $logfile 2>&1 ./autogen.sh >> $logfile 2>&1
if [ $osname = "Raspbian" ]; then if [ $osname = "Raspbian" ]; then
@@ -241,7 +220,7 @@ fi
make -j$(nproc) >> $logfile 2>&1 make -j$(nproc) >> $logfile 2>&1
make -s install >> $logfile 2>&1 make -s install >> $logfile 2>&1
cd ../rtorrent* cd ../rtorrent-$rtvers
echo "Installing rtorrent" | tee -a $logfile echo "Installing rtorrent" | tee -a $logfile
./autogen.sh >> $logfile 2>&1 ./autogen.sh >> $logfile 2>&1
./configure --prefix=/usr --with-xmlrpc-c --enable-ipv6 >> $logfile 2>&1 ./configure --prefix=/usr --with-xmlrpc-c --enable-ipv6 >> $logfile 2>&1
@@ -249,6 +228,8 @@ make -j$(nproc) >> $logfile 2>&1
make -s install >> $logfile 2>&1 make -s install >> $logfile 2>&1
ldconfig >> $logfile 2>&1 ldconfig >> $logfile 2>&1
echo "$libvers/$rtvers installed"
echo
if [ -d /var/www/rutorrent/conf/users ]; then if [ -d /var/www/rutorrent/conf/users ]; then
cd /var/www/rutorrent/conf/users cd /var/www/rutorrent/conf/users
+3 -3
View File
@@ -9,7 +9,7 @@
###################################################################### ######################################################################
PATH=/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/bin:/sbin PATH=/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/bin:/sbin
serverip=$(ip route get 8.8.8.8 | awk 'NR==1 {print $7}') serverip=$(ip route get 8.8.8.8 | awk 'NR==1 {print $NF}')
if [ "$(id -u)" != "0" ]; then if [ "$(id -u)" != "0" ]; then
echo "Must be run as root, directly or with sudo" echo "Must be run as root, directly or with sudo"
@@ -20,8 +20,8 @@ if [ $(dpkg-query -W -f='${Status}' webmin 2>/dev/null | grep -c "ok installed")
echo "Installing Webmin" echo "Installing Webmin"
echo "deb http://download.webmin.com/download/repository sarge contrib" > /etc/apt/sources.list.d/webmin.list echo "deb http://download.webmin.com/download/repository sarge contrib" > /etc/apt/sources.list.d/webmin.list
wget -qO - http://www.webmin.com/jcameron-key.asc | apt-key add - wget -qO - http://www.webmin.com/jcameron-key.asc | apt-key add -
aptitude -q=5 update apt-get -qq update
aptitude -q=5 -y install webmin apt-get -qq install webmin
else else
echo 'Webmin is already installed' echo 'Webmin is already installed'
fi fi
+1 -1
View File
@@ -14,7 +14,7 @@ newvers=$(curl -s https://raw.githubusercontent.com/Novik/ruTorrent/master/js/we
oldvers=$(grep -m 1 version: /var/www/rutorrent/js/webui.js | cut -d \" -f2) oldvers=$(grep -m 1 version: /var/www/rutorrent/js/webui.js | cut -d \" -f2)
ruflag=0 ruflag=0
rurelease=$(curl -s "https://api.github.com/repos/Novik/ruTorrent/releases/latest" | awk -F '"' '/tag_name/{print $4}') rurelease=$(git ls-remote -t https://github.com/Novik/ruTorrent v\* | cut -d/ -f3 | sort -V | tail -1)
force_yes=1 force_yes=1
restore_old=1 restore_old=1
install_master=1 install_master=1