Compare commits

..
Author SHA1 Message Date
V33m 16ddfa0325 Added support for Linux Mint
Request: https://github.com/arakasi72/rtinst/issues/535
2020-10-14 12:34:10 +02:00
V33m 14c270f096 Update rtupdate - Typo 2020-09-10 23:19:54 +02:00
V33m 5452c98799 Update rtupdate
Added fallback to svn when installing xmlrpc
2020-09-10 23:17:38 +02:00
V33m 016299230e Update rtletsencrypt
Should solve Issue: https://github.com/arakasi72/rtinst/issues/528
2020-09-10 23:09:25 +02:00
V33m 763d2efdeb Update rtletsencrypt to use snapd for certbot
Solves Issue: https://github.com/arakasi72/rtinst/issues/526.

Snapd is the recommended way to install certbot and it is a service that manages and maintains your snaps. A snap is a bundle of an app and its dependencies that works without modification across Linux distributions.
2020-09-03 12:40:45 +02:00
V33m 1f1ec0ad3a Update rtinst - add '-y' to aptitude upgrade 2020-08-30 09:39:44 +02:00
V33m b18b5718fe Update rtsetup
Use latest release instead of tag
2020-08-27 22:23:32 +02:00
V33m deff019f56 Use Aptitude to install packages 2020-08-27 21:42:52 +02:00
V33m 11a019cd16 Update README.md 2020-08-25 19:20:53 +02:00
V33m 0a8b21b8f3 Verify if PPA is available for current distribution
Added checking to verify if current distribution (release name, ex. focal) has available PPA packages. If not, packages will be installed from Ubuntu Package archive.

Solves Issue https://github.com/arakasi72/rtinst/issues/518 and https://github.com/arakasi72/rtinst/issues/522.
2020-08-25 19:12:33 +02:00
V33m c3cde97a74 Add fallback for fetching external ip (ipinfo.io)
If ipecho is down or the ISP is blocking it, there are no other ways to get external ip. Adding another fallback to ipinfo.io makes the issue that rtinst can't figure out the external ip less likely.

Issue: https://github.com/arakasi72/rtinst/issues/448
2020-08-15 00:11:41 +02:00
V33m 18dd935f18 Add correct php version for Debian 11
Debian 11, codename bullseye, is currently using the same versions as Ubuntu 20.
2020-08-14 16:24:51 +02:00
V33m 6935c58e6a Add php-zip module for multi-torrent downloading
Solves the issue "PHP module 'zip' is not installed." when selecting two or more items with "Get .torrent". Issue: https://github.com/arakasi72/rtinst/issues/516
2020-08-13 10:55:22 +02:00
V33m f9063b89d4 Update fetching latest ruTorrent release
Updates the method for how latest ruTorrent releases are found. Prior method sorted by name, which made suffixes such as -beta prioritised over stable (v3.10-beta over v3.10 etc.).
2020-07-05 10:34:31 +02:00
arakasi72 d2869bf416 Merge pull request #505 from V33m/patch-4
Update rutupgrade - Fetch latest release
2020-07-04 18:09:40 +01:00
arakasi72 e6523c1956 Merge pull request #496 from V33m/patch-3
Fallback if lsb_release -si does not return Ubuntu, Debian or Raspbian
2020-07-04 18:08:58 +01:00
arakasi72 3df3171d5c Merge pull request #494 from V33m/patch-2
Add support for Ubuntu 20.04
2020-07-04 18:07:24 +01:00
V33m 227eb998f2 Update rutupgrade - Fetch latest release
Updates the method for how latest releases are found. Prior method sorted by name, which made suffixes such as -beta prioritised over stable (v3.10-beta over v3.10 etc.).
2020-07-02 19:01:41 +02:00
V33m 3613eae1d9 Fallback if lsb_release -si does not return Ubuntu, Debian or Raspbian
Adds a fallback if lsb_release -si returns anything else than Ubuntu, Debian or Raspbian.

Should solve https://github.com/arakasi72/rtinst/issues/495. Needs testing and confirmation.
2020-04-26 11:25:46 +02:00
V33m 6c5191a144 Add support for Ubuntu 20.04
I've removed the package "python-scgi" which is for python2, however, we need to figure out if any packages are dependent on it for older OSes and if we need a supplement to it for python3 and future releases. PS: I've not tested this by myself. 

https://github.com/arakasi72/rtinst/issues/493
2020-04-25 10:14:41 +02:00
arakasi72 eef6d04d9d Merge pull request #486 from KaffeMyers/master
fix autodl-irrsi url extract
2020-03-31 09:42:34 +01:00
Simon "Kaffe" Wagemyr bde4bb2492 small fix for safety (account for possible whitespace, which probably was the original issue) 2020-03-31 04:01:42 +02:00
Simon "Kaffe" Wagemyr e7679d897b fix autodl-irrsi url extract 2020-03-31 03:46:13 +02:00
arakasi72 ba2a315b37 Update rtinst 2019-12-18 16:41:57 +00:00
arakasi72 a0be8c3278 Update rtinst 2019-12-18 16:31:45 +00:00
arakasi72 16d2f1d310 Update rtinst 2019-11-21 03:42:23 +00:00
arakasi72 11ff99f684 Update rtupdate 2019-11-20 20:05:49 +00:00
arakasi72 6def26dc46 Update rtinst 2019-11-20 20:05:20 +00:00
arakasi72 ff43cb7ccf Update rtupdate 2019-11-20 19:49:05 +00:00
arakasi72 1d8116d622 Update rtinst 2019-11-20 19:45:33 +00:00
arakasi72 c38c565211 Update rtinst 2019-11-18 23:06:48 +00:00
arakasi72 15dd6d5b19 Update rtinst 2019-11-18 23:05:22 +00:00
arakasi72 e4bfaf4322 Update rtinst 2019-10-24 08:24:02 +01:00
arakasi72 30ac8a1efb Update rtinst 2019-10-22 09:48:03 +01:00
arakasi72 658e2d3937 Update rtinst 2019-10-18 23:50:56 +01:00
arakasi72 f885123bab Update rtsetup 2019-10-18 23:48:06 +01:00
arakasi72 24b3ca1d44 Update rtinst 2019-10-16 10:16:34 +01:00
arakasi72 c094ea145e Merge pull request #447 from V33m/patch-3
Minor update to rtinst for arm64
2019-10-15 22:51:24 +01:00
V33m 0da4c80b62 Minor update to rtinst for arm64
Add “-y” so the user doesn't need to agree to continue to install the package which is needed for arm64 devices
2019-10-15 23:21:33 +02:00
arakasi72 2068d3a45c Update rtupdate 2019-10-06 20:25:38 +01:00
arakasi72 f8eea44834 Merge pull request #443 from V33m/patch-2
[rtupdate] Adds fallback for lsb_release
2019-10-06 20:22:40 +01:00
V33m 2cb8ba306d Use defined relno variable
Fixes
/usr/local/bin/rtupdate: line 37: [: =: unary operator expected
2019-10-06 15:13:44 +02:00
V33m c96e68e2b5 [rtupdate] Adds fallback for lsb_release
As (lsb_release -si) or (lsb_release -sr | cut -d. -f1) might not return any name or value, one should add a fallback to prevent the script from not finding the proper OS name or version ID.
2019-10-06 14:40:14 +02:00
arakasi72 e32810d684 Update README.md 2019-09-18 23:20:28 +01:00
arakasi72 72291ecd6f Update README.md 2019-09-18 23:20:07 +01:00
arakasi72 b802e761ae Update README.md 2019-09-18 23:19:19 +01:00
arakasi72 64e998b2de Update rtletsencrypt 2019-09-18 14:22:04 +01:00
9 changed files with 230 additions and 187 deletions
+10 -8
View File
@@ -23,18 +23,13 @@ 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**
It has been tested with clean installs of: Current release has been tested with clean installs of:
Ubuntu 12 (old release)
Ubuntu 13 (old release)
Ubuntu 14 (old release)
Ubuntu 15 (old release)
Ubuntu 16 Ubuntu 16
Ubuntu 17 Ubuntu 17
Ubuntu 18 Ubuntu 18
Ubuntu 19 Ubuntu 19
Debian 7 "Wheezy" (old release) Ubuntu 20
Debian 8 "Jessie" (old release)
Debian 9 "Stretch" Debian 9 "Stretch"
Debian 10 "Buster" Debian 10 "Buster"
@@ -52,7 +47,14 @@ 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 listed above see the [Older OS Installation Guide](https://github.com/arakasi72/rtinst/wiki/Installing-on-Older-OS) For older unssuported OS [Older OS Installation Guide](https://github.com/arakasi72/rtinst/wiki/Installing-on-Older-OS). These include:
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 -7
View File
@@ -35,12 +35,7 @@ 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
@@ -62,7 +57,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=$(basename "$(git ls-remote --tags https://github.com/arakasi72/rtinst.git | grep -o 'refs/tags/v.*' | sort -V | tail -1)") latest=$(curl -s "https://api.github.com/repos/arakasi72/rtinst/releases/latest" | awk -F '"' '/tag_name/{print $4}')
if [ $branch != $latest ]; then if [ $branch != $latest ]; then
echo "Updating from $branch to $latest" echo "Updating from $branch to $latest"
branch=$latest branch=$latest
+1 -1
View File
@@ -353,7 +353,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 | grep -Po '(?<="browser_download_url": ")(.*-v[\d.]+.zip)' | xargs wget --quiet -O autodl-irssi.zip curl -sL http://git.io/vlcND | sed -n 's/.*browser_download_url": \?"\(.*zip\)".*/\1/p' | 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/
+154 -134
View File
@@ -8,110 +8,6 @@
# #
######################################################################################### #########################################################################################
###############################
### 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 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 '"')
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" ]; then
phpver=php7.3
phploc=/etc/php/7.3
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
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] ) serverip=$serveripa && break ;;
[2] ) 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 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 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 ###
@@ -119,7 +15,7 @@ rut_add_users=1
#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 --spider $1 2>&1 | grep 'HTTP/1.1 200 OK'` ]]; then return 0; else return 1; fi if [[ `wget -S -T 3 --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
@@ -165,11 +61,12 @@ 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_current=$(rtorrent -h | grep -om 1 "[0-9]\{1,2\}\.[0-9]\{1,2\}\.[0-9]\{1,2\}") rt_ee_version=$(rtorrent -h | grep -om 1 "[0-9]\{1,2\}\.[0-9]\{1,2\}\.[0-9]\{1,2\}")
echo "rtorrent $rt_current installed" echo "rtorrent $rt_ee_version installed"
else else
echo "rtorrent was not installed" echo "rtorrent was not installed"
fi fi
@@ -253,22 +150,147 @@ 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 $serverip ; then if valid_ip $ip_address ; then
echo "Your Server IP is $serverip" echo "Your Server IP is $ip_address"
echo -n "Is this correct y/n? " echo -n "Is this correct y/n? "
ask_user && return 0 ask_user && break
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 serverip read ip_address
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 ###
############################### ###############################
@@ -279,11 +301,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 ]); then if ([ "$osname" = "Ubuntu" ] && [ $relno -ge 16 ]) || ([ "$osname" = "Debian" ] && [ $relno -ge 9 ]) || ([ "$osname" = "Raspbian" ] && [ $relno -ge 9 ]) || ([ "$osname" = "Linuxmint" ] && [ $relno -ge 16 ]); then
echo $fullrel echo $fullrel
else else
echo $fullrel echo $fullrel
echo "Only Ubuntu release 16 and later, and Debian and Raspbian release 9 and later, are supported" echo "Only Ubuntu and Linux Mint release 16 and later, and Debian and Raspbian release 9 and later, 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
@@ -358,7 +380,7 @@ fi
echo echo
# check IP Address # check IP Address
[ $forceyes = 1 ] && enter_ip [ $forceyes = 1 ] && serverip=$(enter_ip $serverip)
echo "Your server's IP is set to $serverip" echo "Your server's IP is set to $serverip"
export serverip export serverip
@@ -521,30 +543,28 @@ 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
apt-get -qq upgrade >> $logfile 2>&1 aptitude -q=5 -y upgrade >> $logfile 2>&1
if ! [ $? = 0 ]; then if ! [ $? = 0 ]; then
echo "Problem upgrading packages. Run 'apt-get upgrade' successfully and rerun the script" && exit echo "Problem upgrading packages. Run 'aptitude upgrade' successfully and rerun the script" && exit
fi fi
apt-get clean && apt-get autoclean >> $logfile 2>&1 aptitude clean && aptitude autoclean >> $logfile 2>&1
#install the packsges needed #install the packages 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
@@ -558,16 +578,16 @@ for package_name in $package_list
# Installs a package needed to prevent arm64 architectures from "WARNING: Unable to start rtorrent" # Installs a package needed to prevent arm64 architectures from "WARNING: Unable to start rtorrent"
if [ "$(uname --m)" == "aarch64" ] || [ "$(dpkg --print-architecture)" == "arm64" ] ; then if [ "$(uname --m)" == "aarch64" ] || [ "$(dpkg --print-architecture)" == "arm64" ] ; then
sudo apt-get install libxmlrpc-core-c3-dev aptitude -q=5 -y install libxmlrpc-core-c3-dev >> $logfile 2>&1
fi fi
test -z "$install_list" || apt-get -qq install $install_list >> $logfile 2>&1 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
apt-get -qq install $phpver-mbstring >> $logfile 2>&1 aptitude -q=5 -y install $phpver-mbstring >> $logfile 2>&1
fi fi
#install unrar package #install unrar package
@@ -593,8 +613,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" ]; then elif [ $osname = "Ubuntu" || $osname = "Linuxmint" ]; then
apt-get -qq install unrar >> $logfile 2>&1 aptitude -q=5 -y install unrar >> $logfile 2>&1
fi fi
if installed unrar; then if installed unrar; then
@@ -606,7 +626,7 @@ 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"
apt-get -qq install ffmpeg >> $logfile 2>&1 aptitude -q=5 -y install ffmpeg >> $logfile 2>&1
fi fi
echo "Completed installation of required packages " echo "Completed installation of required packages "
@@ -693,7 +713,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
apt-get -y install vsftpd >> $logfile 2>&1 aptitude -q=5 -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
@@ -858,7 +878,7 @@ if [ -d "/var/www/rutorrent" ]; then
fi fi
if [ $rudevflag = 1 ]; then if [ $rudevflag = 1 ]; then
rurelease=$(git ls-remote -t https://github.com/Novik/ruTorrent v\* | cut -d/ -f3 | sort -V | tail -1) rurelease=$(curl -s "https://api.github.com/repos/Novik/ruTorrent/releases/latest" | awk -F '"' '/tag_name/{print $4}')
fi fi
echo "Installing Rutorrent ($rurelease)" | tee -a $logfile echo "Installing Rutorrent ($rurelease)" | tee -a $logfile
@@ -901,7 +921,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 | grep -Po '(?<="browser_download_url": ")(.*-v[\d.]+.zip)' | xargs wget --quiet -O autodl-irssi.zip curl -sL http://git.io/vlcND | sed -n 's/.*browser_download_url": \?"\(.*zip\)".*/\1/p' | 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/
+22 -18
View File
@@ -11,6 +11,8 @@
headless=0 headless=0
osname=$(lsb_release -si) osname=$(lsb_release -si)
releasename=$(lsb_release -cs)
[ -z $logfile ] && logfile="/dev/null" [ -z $logfile ] && logfile="/dev/null"
if [ -z $serverip ]; then if [ -z $serverip ]; then
headless=1 headless=1
@@ -24,19 +26,22 @@ fi
if [ $headless = 1 ]; then if [ $headless = 1 ]; 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)
if [ "$serveripa" = "$serveripb" ]; then serveripc=$(wget -qO- --timeout=3 ipinfo.io/ip)
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 ;;
* ) echo "Enter 1 or 2";; [3] ) serverip=$serveripc && break ;;
* ) echo "Enter 1, 2 or 3";;
esac esac
done done
fi fi
@@ -51,27 +56,26 @@ if [ -z $serverdn ]; then
exit 1 exit 1
fi fi
#Installing Certbot # Remove apt version of Certbot if installed
if [ $(dpkg-query -W -f='${Status}' "certbot" 2>/dev/null | grep -c "ok installed") = 0 ]; then if [ $(dpkg-query -W -f='${Status}' "certbot" 2>/dev/null | grep -c "ok installed") = 1 ]; then
echo "Installing certbot" echo "Removing apt version of Certbot"
aptitude -q=5 -y remove certbot python*-certbot-nginx >> $logfile 2>&1
fi
if [ "$osname" = "Ubuntu" ]; then # Install Snapd service
apt-get -q update >> $logfile 2>&1 aptitude -q=5 -y install snapd >> $logfile 2>&1
add-apt-repository -y universe >> $logfile 2>&1 # Install the core snap in order to get the latest snapd for Debian
add-apt-repository -y ppa:certbot/certbot >> $logfile 2>&1 if [ $osname = "Debian" ]; then snap install core >> $logfile 2>&1; snap refresh core; fi
apt-get -q update >> $logfile 2>&1
apt-get install -y certbot python-certbot-nginx >> $logfile 2>&1 # Installing Certbot
else if [ $(snap list | grep -c "certbot") = 0 ]; then
deb_name=$(lsb_release --codename --short) echo "Installing certbot"
grep "^deb http\:\/\/deb\.debian\.org\/debian $deb_name-backports main" /etc/apt/sources.list > /dev/null || echo "deb http://deb.debian.org/debian $deb_name-backports main" >> /etc/apt/sources.list snap -y install --classic certbot >> $logfile 2>&1
apt-get -q update >> $logfile 2>&1
apt-get install -y certbot python-certbot-nginx -t stretch-backports >> $logfile 2>&1
fi
else else
echo "certbot already installed" echo "certbot already installed"
fi fi
if [ $(dpkg-query -W -f='${Status}' "certbot" 2>/dev/null | grep -c "ok installed") = 0 ]; then if [ $(snap list | grep -c "certbot") = 0 ]; then
echo "Install Failed" echo "Install Failed"
exit 1 exit 1
fi fi
+5 -2
View File
@@ -97,19 +97,22 @@ 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)
if [ "$serveripa" = "$serveripb" ]; then serveripc=$(wget -qO- --timeout=3 ipinfo.io/ip)
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 ;;
* ) echo "Enter 1 or 2";; [3] ) serverip=$serveripc && break ;;
* ) echo "Enter 1, 2 or 3";;
esac esac
done done
fi fi
+33 -14
View File
@@ -12,21 +12,39 @@ 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/advanced/' xmlrpc_url='https://svn.code.sf.net/p/xmlrpc-c/code/stable/'
xmlrpcloc='svn://svn.code.sf.net/p/xmlrpc-c/code/advanced/' xmlrpcloc='svn://svn.code.sf.net/p/xmlrpc-c/code/stable/'
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/advanced' xmlrpcloc_alt='https://github.com/mirror/xmlrpc-c/trunk/stable'
rtdevrel=1 rtdevrel=1
if [ $(lsb_release -sr) = 17.10 ]; then if [ "$fullrelno" = "17.10" ]; then
rtdevrel=0 rtdevrel=0
fi fi
if ([ "$osname" = "Debian" ] || [ "$osname" = "Raspbian" ] && [ $relno -ge 9 ]) || ([ "$osname" = "Ubuntu" ] && [ $relno -ge 18 ]); then if ([ "$osname" = "Debian" ] || [ "$osname" = "Raspbian" ] && [ $relno -ge 9 ]) || ([ "$osname" = "Ubuntu" ] && [ $relno -ge 18 ]) || ([ "$osname" = "Linuxmint" ] && [ $relno -ge 18 ]); then
rtdevrel=0 rtdevrel=0
fi fi
@@ -57,7 +75,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 --spider $1 2>&1 | grep 'HTTP/1.1 200 OK'` ]]; then return 0; else return 1; fi if [[ `wget -S -T 3 --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
@@ -139,7 +157,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, and Ubuntu 17.10 and later, recommend libtorrent-0.13.7/rtorrent-0.9.7 or later" 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"
fi fi
list_version list_version
@@ -166,7 +184,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, and Ubuntu 17.10 and later, are only supported by libtorrent-0.13.7/rtorrent-0.9.7 or later" 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"
fi fi
fi fi
@@ -200,16 +218,19 @@ 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 .. cd $home/source
fi fi
cd libtorrent-$libvers cd libtorrent*
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
@@ -220,7 +241,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-$rtvers cd ../rtorrent*
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
@@ -228,8 +249,6 @@ 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
+2 -2
View File
@@ -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 -
apt-get -qq update aptitude -q=5 update
apt-get -qq install webmin aptitude -q=5 -y 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=$(git ls-remote -t https://github.com/Novik/ruTorrent v\* | cut -d/ -f3 | sort -V | tail -1) rurelease=$(curl -s "https://api.github.com/repos/Novik/ruTorrent/releases/latest" | awk -F '"' '/tag_name/{print $4}')
force_yes=1 force_yes=1
restore_old=1 restore_old=1
install_master=1 install_master=1