mirror of
https://github.com/elisspace/rtinst.git
synced 2026-10-06 17:16:22 +00:00
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b5f79c2440 | ||
|
|
9014d9ef10 | ||
|
|
f0798b4dc4 | ||
|
|
6829186ef9 | ||
|
|
feb4286136 | ||
|
|
3970a528dd |
@@ -1,12 +1,15 @@
|
||||
## rtinst
|
||||
|
||||
### NOTE: THIS IS RELEASE DEB7UBU12 - Installs rtinst on OS's Ubu12, Ubu13, and Deb7 which are no longer supported in the main rtinst releases
|
||||
|
||||
#### 30 Second Guide
|
||||
|
||||
Ubuntu and Debian Seedbox Installation
|
||||
|
||||
Download and run setup (if logged in directly as root, do not need to use sudo)
|
||||
Download and run setup (if logged in as root, do not need to use sudo)
|
||||
|
||||
sudo bash -c "$(wget --no-check-certificate -qO - https://raw.githubusercontent.com/arakasi72/rtinst/master/rtsetup)"
|
||||
wget --no-check-certificate https://raw.githubusercontent.com/arakasi72/rtinst/master/rtsetup
|
||||
sudo bash rtsetup deb7ubu12
|
||||
|
||||
and then to run the main script, ([check the options you can use](https://github.com/arakasi72/rtinst/wiki/Guide#21-main-script-options)):
|
||||
|
||||
@@ -14,9 +17,7 @@ and then to run the main script, ([check the options you can use](https://github
|
||||
|
||||
It takes about 10 minutes to run, depending on your server setup. After you have run the script and everything is working, I suggest a reboot, the script does not automate this reboot, you need to do it manually using the reboot command.
|
||||
|
||||
[A detailed installation guide](https://github.com/arakasi72/rtinst/wiki/Installing-rtinst)
|
||||
|
||||
[A detailed user guide](https://github.com/arakasi72/rtinst/wiki/Guide)
|
||||
[A detailed installation guide](https://github.com/arakasi72/rtinst/wiki/Guide)
|
||||
|
||||
**IMPORTANT: NOTE THE NEW SSH PORT AND MAKE SURE YOU CAN SSH INTO YOUR SERVER BEFORE CLOSING THE EXISTING SESSION**
|
||||
|
||||
@@ -25,16 +26,13 @@ It has been tested with clean installs of:
|
||||
|
||||
Ubuntu 12 (unsupported)
|
||||
Ubuntu 13 (unsupported)
|
||||
Ubuntu 14 (unsupported)
|
||||
Ubuntu 15 (unsupported)
|
||||
Ubuntu 14
|
||||
Ubuntu 15
|
||||
Ubuntu 16
|
||||
Ubuntu 17
|
||||
Ubuntu 18
|
||||
Ubuntu 19
|
||||
Debian 7 "Wheezy" (unsupported)
|
||||
Debian 8 "Jessie" (unsupported)
|
||||
Debian 8 "Jessie"
|
||||
Debian 9 "Stretch"
|
||||
Debian 10 "Buster"
|
||||
|
||||
Services that will be installed and configured are
|
||||
|
||||
@@ -46,9 +44,7 @@ Services that will be installed and configured are
|
||||
6. webmin (optional see section 3.7 in main guide)
|
||||
|
||||
|
||||
[rtinst installation guide](https://github.com/arakasi72/rtinst/wiki/Installing-rtinst)
|
||||
|
||||
[Additional information on all the features](https://github.com/arakasi72/rtinst/wiki/Guide)
|
||||
[A detailed installation guide, and 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)
|
||||
|
||||
|
||||
+1
-2
@@ -1,6 +1,5 @@
|
||||
server {
|
||||
listen 80;
|
||||
#server_name <Domain Name>;
|
||||
root /var/www;
|
||||
|
||||
index index.html index.php index.htm;
|
||||
@@ -36,7 +35,7 @@ server {
|
||||
|
||||
server {
|
||||
listen 443 ssl;
|
||||
#server_name <Domain Name>;
|
||||
|
||||
root /var/www;
|
||||
index index.html index.php index.htm;
|
||||
|
||||
|
||||
+1
-1
@@ -8,7 +8,7 @@ method.insert = cfg.basedir, private|const|string, (cat,"<user home>/rtorren
|
||||
method.insert = cfg.watch, private|const|string, (cat,(cfg.basedir),"watch/")
|
||||
|
||||
#method.insert = cfg.logs, private|const|string, (cat,(cfg.basedir),"log/")
|
||||
#method.insert = cfg.logfile, private|const|string, (cat,(cfg.logs),"rtorrent-",(system.time),".log")
|
||||
#method.insert = cfg.logfile, private|const|string, (cat,(c fg.logs),"rtorrent-",(system.time),".log")
|
||||
|
||||
session.path.set = (cat,(cfg.basedir),".session")
|
||||
directory.default.set = (cat,(cfg.basedir),"download")
|
||||
|
||||
@@ -43,7 +43,6 @@ $pathToExternals = array(
|
||||
"gzip" => '/bin/gzip', // Something like /usr/bin/gzip. If empty, will be found in PATH.
|
||||
"id" => '/usr/bin/id', // Something like /usr/bin/id. If empty, will be found in PATH.
|
||||
"stat" => '/usr/bin/stat', // Something like /usr/bin/stat. If empty, will be found in PATH.
|
||||
"pgrep" => '/usr/bin/pgrep', // Something like /usr/bin/pgrep. If empty, will be found in PATH.
|
||||
);
|
||||
|
||||
$localhosts = array( // list of local interfaces
|
||||
|
||||
@@ -100,8 +100,6 @@ enabled = yes
|
||||
enabled = yes
|
||||
|
||||
;; Disabled
|
||||
[_cloudflare]
|
||||
enabled = no
|
||||
[check_port]
|
||||
enabled = no
|
||||
[chunks]
|
||||
@@ -122,7 +120,5 @@ enabled = no
|
||||
enabled = no
|
||||
[scheduler]
|
||||
enabled = no
|
||||
[spectrogram]
|
||||
enabled = no
|
||||
[xmpp]
|
||||
enabled = no
|
||||
|
||||
@@ -0,0 +1,56 @@
|
||||
# See http://help.ubuntu.com/community/UpgradeNotes for how to upgrade to
|
||||
# newer versions of the distribution.
|
||||
deb http://de.archive.ubuntu.com/ubuntu/ precise main restricted
|
||||
deb-src http://de.archive.ubuntu.com/ubuntu/ precise main restricted
|
||||
|
||||
## Major bug fix updates produced after the final release of the
|
||||
## distribution.
|
||||
deb http://de.archive.ubuntu.com/ubuntu/ precise-updates main restricted
|
||||
deb-src http://de.archive.ubuntu.com/ubuntu/ precise-updates main restricted
|
||||
|
||||
## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu
|
||||
## team. Also, please note that software in universe WILL NOT receive any
|
||||
## review or updates from the Ubuntu security team.
|
||||
deb http://de.archive.ubuntu.com/ubuntu/ precise universe
|
||||
deb-src http://de.archive.ubuntu.com/ubuntu/ precise universe
|
||||
deb http://de.archive.ubuntu.com/ubuntu/ precise-updates universe
|
||||
deb-src http://de.archive.ubuntu.com/ubuntu/ precise-updates universe
|
||||
|
||||
## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu
|
||||
## team, and may not be under a free licence. Please satisfy yourself as to
|
||||
## your rights to use the software. Also, please note that software in
|
||||
## multiverse WILL NOT receive any review or updates from the Ubuntu
|
||||
## security team.
|
||||
deb http://de.archive.ubuntu.com/ubuntu/ precise multiverse
|
||||
deb-src http://de.archive.ubuntu.com/ubuntu/ precise multiverse
|
||||
deb http://de.archive.ubuntu.com/ubuntu/ precise-updates multiverse
|
||||
deb-src http://de.archive.ubuntu.com/ubuntu/ precise-updates multiverse
|
||||
|
||||
## N.B. software from this repository may not have been tested as
|
||||
## extensively as that contained in the main release, although it includes
|
||||
## newer versions of some applications which may provide useful features.
|
||||
## Also, please note that software in backports WILL NOT receive any review
|
||||
## or updates from the Ubuntu security team.
|
||||
deb http://de.archive.ubuntu.com/ubuntu/ precise-backports main restricted universe multiverse
|
||||
deb-src http://de.archive.ubuntu.com/ubuntu/ precise-backports main restricted universe multiverse
|
||||
|
||||
deb http://security.ubuntu.com/ubuntu precise-security main restricted
|
||||
deb-src http://security.ubuntu.com/ubuntu precise-security main restricted
|
||||
deb http://security.ubuntu.com/ubuntu precise-security universe
|
||||
deb-src http://security.ubuntu.com/ubuntu precise-security universe
|
||||
deb http://security.ubuntu.com/ubuntu precise-security multiverse
|
||||
deb-src http://security.ubuntu.com/ubuntu precise-security multiverse
|
||||
|
||||
## Uncomment the following two lines to add software from Canonical's
|
||||
## 'partner' repository.
|
||||
## This software is not part of Ubuntu, but is offered by Canonical and the
|
||||
## respective vendors as a service to Ubuntu users.
|
||||
# deb http://archive.canonical.com/ubuntu precise partner
|
||||
# deb-src http://archive.canonical.com/ubuntu precise partner
|
||||
|
||||
## Uncomment the following two lines to add software from Ubuntu's
|
||||
## 'extras' repository.
|
||||
## This software is not part of Ubuntu, but is offered by third-party
|
||||
## developers who want to ship their latest software.
|
||||
# deb http://extras.ubuntu.com/ubuntu precise main
|
||||
# deb-src http://extras.ubuntu.com/ubuntu precise main
|
||||
@@ -13,38 +13,11 @@ PATH=/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/bin:/sbin
|
||||
rundir=$(dirname $(readlink -f $0))
|
||||
branch=$1
|
||||
|
||||
# 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
|
||||
}
|
||||
|
||||
if [ "$(id -u)" != "0" ]; then
|
||||
echo "Must be run as root, directly or with sudo"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# kill apt-daily.service if running
|
||||
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 kill --kill-who=all apt-daily.service > /dev/null 2>&1
|
||||
|
||||
# wait until `apt-get updated` has been killed
|
||||
while ! (systemctl list-units --all apt-daily.service | fgrep -q dead)
|
||||
do
|
||||
sleep 1;
|
||||
done
|
||||
fi
|
||||
|
||||
apt-get -qq update
|
||||
|
||||
if [ $(dpkg-query -W -f='${Status}' git 2>/dev/null | grep -c "ok installed") -eq 0 ]; then
|
||||
echo "Installing git"
|
||||
apt-get -yqq install git 2>&1 >> /dev/null
|
||||
@@ -61,19 +34,6 @@ if [ -d /etc/rtinst ] && [ -z $branch ]; then
|
||||
branch=$(basename "$(git symbolic-ref -q HEAD)")
|
||||
if [ -z $branch ]; then
|
||||
branch=$(git describe --tags --exact-match)
|
||||
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)")
|
||||
if [ $branch != $latest ]; then
|
||||
echo "Updating from $branch to $latest"
|
||||
branch=$latest
|
||||
else
|
||||
echo "Already using the latest version, rtinst $branch"
|
||||
echo -n "Do you wish to reinstall rtinst y/n? "
|
||||
if ! ask_user; then
|
||||
exit
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
if [ $(git ls-remote --tags --heads https://github.com/arakasi72/rtinst.git $branch | wc -l) -eq 0 ]; then
|
||||
echo "$branch has been deleted, using latest numbered release instead"
|
||||
@@ -94,20 +54,15 @@ if [ $(git ls-remote --tags --heads https://github.com/arakasi72/rtinst.git $bra
|
||||
exit
|
||||
fi
|
||||
|
||||
echo "Installing rtinst $branch"
|
||||
cd
|
||||
rm -fr /etc/rtinst
|
||||
git clone -q https://github.com/arakasi72/rtinst.git /etc/rtinst
|
||||
cd /etc/rtinst
|
||||
git checkout $branch > /dev/null 2>&1
|
||||
git checkout $branch
|
||||
cd
|
||||
ln -sf /etc/rtinst/scripts/* /usr/local/bin
|
||||
ln -sf /etc/rtinst/rtsetup /usr/local/bin
|
||||
|
||||
echo "Installation complete"
|
||||
echo
|
||||
echo "You can now run rtinst and the additional supporting scripts"
|
||||
|
||||
if [ "$rundir" != "/etc/rtinst" ]; then
|
||||
rm -f $rundir/rtsetup
|
||||
fi
|
||||
|
||||
+8
-26
@@ -287,13 +287,11 @@ if ! [ -d "$home/rtorrent/watch" ]; then
|
||||
mkdir $home/rtorrent/watch
|
||||
fi
|
||||
|
||||
if [ -z "$webpass" ] && [ -z $(grep -s $user $passfile) ]; then
|
||||
if [ -z "$webpass" ]; then
|
||||
webpass=$(genpasswd)
|
||||
fi
|
||||
|
||||
if [ ! -z "$webpass" ]; then
|
||||
htpasswd -b $passfile $user $webpass
|
||||
fi
|
||||
htpasswd -b $passfile $user $webpass
|
||||
|
||||
cp -f /etc/rtinst/conf/rtorrent.rc $home/.rtorrent.rc
|
||||
|
||||
@@ -323,6 +321,7 @@ unzip -o autodl-irssi.zip >> /dev/null 2>&1
|
||||
rm autodl-irssi.zip
|
||||
cp autodl-irssi.pl autorun/
|
||||
mkdir -p $home/.autodl
|
||||
touch $home/.autodl/autodl.cfg && touch $home/.autodl/autodl2.cfg
|
||||
|
||||
echo "<?php" > /var/www/rutorrent/conf/users/$user/plugins/autodl-irssi/conf.php
|
||||
echo >> /var/www/rutorrent/conf/users/$user/plugins/autodl-irssi/conf.php
|
||||
@@ -332,25 +331,13 @@ echo >> /var/www/rutorrent/conf/users/$user/plugins/autodl-irssi/conf.php
|
||||
echo "?>" >> /var/www/rutorrent/conf/users/$user/plugins/autodl-irssi/conf.php
|
||||
|
||||
cd $home/.autodl
|
||||
|
||||
if [ -f "autodl.cfg" ]; then
|
||||
if (grep -sq gui-server-port autodl.cfg) && (grep -sq gui-server-password autodl.cfg); then
|
||||
sed -i "/gui-server-port/ c\gui-server-port = $adlport" autodl.cfg
|
||||
sed -i "/gui-server-password/ c\gui-server-password = $adlpass" autodl.cfg
|
||||
else
|
||||
sed -i '/gui-server-port/ d' autodl.cfg
|
||||
sed -i '/gui-server-password/ d' autodl.cfg
|
||||
echo >> autodl.cfg
|
||||
sed -i "1s/^/[options]\ngui-server-port = $adlport\ngui-server-password = $adlpass\n/" autodl.cfg
|
||||
fi
|
||||
else
|
||||
echo "[options]" > autodl.cfg
|
||||
echo "gui-server-port = $adlport" >> autodl.cfg
|
||||
echo "gui-server-password = $adlpass" >> autodl.cfg
|
||||
fi
|
||||
echo "[options]" > autodl2.cfg
|
||||
echo "gui-server-port = $adlport" >> autodl2.cfg
|
||||
echo "gui-server-password = $adlpass" >> autodl2.cfg
|
||||
|
||||
chown -R $user:$user $home
|
||||
chown -R www-data:www-data /var/www/rutorrent
|
||||
chmod -R 755 /var/www/rutorrent
|
||||
|
||||
if [ -z "$(crontab -u $user -l | grep "$cronline1")" ]; then
|
||||
(crontab -u $user -l; echo "$cronline1" ) | crontab -u $user -
|
||||
@@ -384,7 +371,6 @@ echo
|
||||
### WRITE RTINST.INFO ###
|
||||
###############################
|
||||
|
||||
echo > $home/rtinst.info
|
||||
if groups $user | grep -q -E ' sshuser(\s|$)' || groups $user | grep -q -E ' sudo(\s|$)'; then
|
||||
echo "$user has SSH access on port $sshport" | tee -a $home/rtinst.info
|
||||
echo
|
||||
@@ -396,11 +382,7 @@ echo "https downloads can be accessed at https://$serverip/download/$user" | tee
|
||||
echo
|
||||
fi
|
||||
echo "rutorrent can be accessed at https://$serverip/rutorrent" | tee -a $home/rtinst.info
|
||||
if [ -z $webpass ]; then
|
||||
echo "rutorrent password has not been changed" | tee -a $home/rtinst.info
|
||||
else
|
||||
echo "rutorrent password set to $webpass" | tee -a $home/rtinst.info
|
||||
fi
|
||||
echo "rutorrent password set to $webpass" | tee -a $home/rtinst.info
|
||||
echo "to change rutorrent password enter: rtpass" | tee -a $home/rtinst.info
|
||||
echo
|
||||
echo "The above info is stored at $home/rtinst.info"
|
||||
|
||||
+3
-3
@@ -16,7 +16,7 @@ select_task(){
|
||||
while true
|
||||
do
|
||||
read answer
|
||||
case $answer in [1] ) rtsetup && return 0 ;;
|
||||
case $answer in [1] ) rtgetscripts && return 0 ;;
|
||||
[2] ) rtadduser && return 0 ;;
|
||||
[3] ) rtremove && return 0 ;;
|
||||
[4] ) rtdload $rtdaction && return 0 ;;
|
||||
@@ -46,10 +46,10 @@ clear
|
||||
echo "For more information go to:"
|
||||
echo "https://github.com/arakasi72/rtinst/blob/master/README.md"
|
||||
echo "Select from the following options:"
|
||||
echo "1.) rtsetup - update the rtinst scripts"
|
||||
echo "1.) rtgetscripts - update the rtinst scripts"
|
||||
echo "2.) rtadduser - add new user"
|
||||
echo "3.) rtremove - delete a user"
|
||||
echo "4.) rtdload $rtdaction - $rtdaction https downloads"
|
||||
echo "4.) rtdload $rtdaction - $rtdaction http downloads"
|
||||
echo "5.) rtupdate - up/down-grade rtorent/libtorrent"
|
||||
echo "6.) rutupgrade - upgrade to latest version of RuTorrent"
|
||||
echo "7.) rtwebmin - install webmin"
|
||||
|
||||
Executable
+66
@@ -0,0 +1,66 @@
|
||||
#!/bin/bash
|
||||
|
||||
######################################################################
|
||||
#
|
||||
# Copyright (c) 2015 arakasi72 (https://github.com/arakasi72)
|
||||
#
|
||||
# --> Licensed under the MIT license: http://www.opensource.org/licenses/mit-license.php
|
||||
#
|
||||
######################################################################
|
||||
|
||||
PATH=/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/bin:/sbin
|
||||
|
||||
if [ "$(id -u)" != "0" ]; then
|
||||
echo "Must be run as root, directly or with sudo"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ ! -d /etc/rtinst ]; then
|
||||
git clone https://github.com/arakasi72/rtinst.git /etc/rtinst
|
||||
fi
|
||||
|
||||
cd /etc/rtinst
|
||||
|
||||
branch=$(basename "$(git symbolic-ref -q HEAD)")
|
||||
|
||||
# if branch is empty then it is a tag
|
||||
if [ -z $branch ]; then
|
||||
branch=$(git describe --tags --exact-match)
|
||||
if [ ${branch:0:1} = v ]; then
|
||||
git fetch origin
|
||||
latest=$(git tag | sort -V | grep ^v | tail -1)
|
||||
if [ $branch = $latest ]; then
|
||||
echo "Already using the latest release: $branch"
|
||||
exit
|
||||
fi
|
||||
# update to latest release
|
||||
echo "rtinst updating from $branch to $latest"
|
||||
cd
|
||||
rm -fr /etc/rtinst
|
||||
git clone -q https://github.com/arakasi72/rtinst.git /etc/rtinst
|
||||
cd /etc/rtinst
|
||||
git checkout -q $latest
|
||||
branch=$(git describe --tags --exact-match)
|
||||
echo "rtinst $branch installed"
|
||||
cd
|
||||
ln -sf /etc/rtinst/scripts/* /usr/local/bin
|
||||
ln -sf /etc/rtinst/rtsetup /usr/local/bin
|
||||
exit
|
||||
else
|
||||
echo "$branch is not a branch, or a numbered release"
|
||||
echo "Run rtsetup if you want to switch to another build"
|
||||
exit
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ $(git ls-remote --heads https://github.com/arakasi72/rtinst.git $branch | wc -l) -eq 0 ]; then
|
||||
echo "$branch no longer appears to exist"
|
||||
echo "run rtsetup to reset branch"
|
||||
else
|
||||
git fetch --all
|
||||
git reset --hard origin/$branch 2>&1 >> /dev/null
|
||||
git pull origin $branch
|
||||
|
||||
ln -sf /etc/rtinst/scripts/* /usr/local/bin
|
||||
ln -sf /etc/rtinst/rtsetup /usr/local/bin
|
||||
fi
|
||||
+229
-415
@@ -14,17 +14,11 @@
|
||||
|
||||
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/"
|
||||
libtorrentrel='0.13.6'
|
||||
rtorrentloc='http://rtorrent.net/downloads/rtorrent-'$rtorrentrel'.tar.gz'
|
||||
libtorrentloc='http://rtorrent.net/downloads/libtorrent-'$libtorrentrel'.tar.gz'
|
||||
xmlrpcloc='https://svn.code.sf.net/p/xmlrpc-c/code/stable'
|
||||
|
||||
if [ $(dpkg-query -W -f='${Status}' lsb-release 2>/dev/null | grep -c "ok installed") -eq 0 ]; then
|
||||
echo "Installing lsb-release"
|
||||
@@ -38,82 +32,45 @@ relno=$(lsb_release -sr | cut -d. -f1)
|
||||
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
|
||||
export serverip=$serveripa
|
||||
geoipver=php-geoip
|
||||
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
|
||||
phpver=php5
|
||||
phploc=/etc/php5
|
||||
geoipver=php5-geoip
|
||||
fi
|
||||
|
||||
echo "IP set to "$serverip
|
||||
|
||||
|
||||
export logfile="/dev/null"
|
||||
serverip=$(ip route get 8.8.8.8 | awk 'NR==1 {print $NF}')
|
||||
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
|
||||
logfile="/dev/null"
|
||||
install_rt=0
|
||||
sshport=''
|
||||
rudevflag=1
|
||||
rurelease=masterlibterm-readline-gnu-pe
|
||||
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 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"
|
||||
package_list="sudo nano autoconf build-essential ca-certificates comerr-dev curl cfv dtach htop irssi libcloog-ppl-dev libcppunit-dev libcurl3 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-mcrypt $phpver-xmlrpc python-scgi screen subversion texinfo unzip zlib1g-dev libcurl4-openssl-dev mediainfo python-software-properties 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 ###
|
||||
###############################
|
||||
|
||||
#function to check if a web site is reachable
|
||||
check_url() {
|
||||
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
|
||||
installed() {
|
||||
hash $1 2>/dev/null
|
||||
#exit on error function
|
||||
error_exit() {
|
||||
echo "Error: $1"
|
||||
echo "This is most likely a network error, if your network is working, then it is likely a temporary issue with the relevant file server"
|
||||
echo "Run 'bash rtinst.sh -l' for detailed output to rtinst.log"
|
||||
echo "Once issue is resolved the script can be run again to complete installation"
|
||||
if ! [ -z "$sshport" ]; then
|
||||
echo "SSH Port was set before script was stopped to $sshport"
|
||||
echo "make sure you can login before closing this session"
|
||||
fi
|
||||
exit 1
|
||||
}
|
||||
|
||||
#function to check if string is valid format for an ip address
|
||||
@@ -140,25 +97,6 @@ local genln=$1
|
||||
tr -dc A-Za-z0-9 < /dev/urandom | head -c ${genln} | xargs
|
||||
}
|
||||
|
||||
#function executed if the script finishes early
|
||||
early_exit() {
|
||||
echo "Installation is incomplete. Run rtinst again to complete"
|
||||
echo
|
||||
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\}")
|
||||
echo "rtorrent $rt_current installed"
|
||||
else
|
||||
echo "rtorrent was not installed"
|
||||
fi
|
||||
echo
|
||||
echo "FTP Port set to $ftpport"
|
||||
echo
|
||||
echo "IMPORTANT - SSH Port has been set to: $sshport"
|
||||
echo "IMPORTANT - SSH Port has been set to: $sshport"
|
||||
echo "IMPORTANT - SSH Port has been set to: $sshport"
|
||||
exit 1
|
||||
}
|
||||
|
||||
#function to set a user input password
|
||||
set_pass() {
|
||||
local localpass
|
||||
@@ -256,18 +194,17 @@ if [ "$(id -u)" != "0" ]; then
|
||||
fi
|
||||
|
||||
# determine system
|
||||
if ([ "$osname" = "Ubuntu" ] && [ $relno -ge 16 ]) || ([ "$osname" = "Debian" ] && [ $relno -ge 9 ]) || ([ "$osname" = "Raspbian" ] && [ $relno -ge 9 ]); then
|
||||
if ([ "$osname" = "Ubuntu" ] && [ $relno -ge 12 ] && [ $relno -le 17 ]) || ([ "$osname" = "Debian" ] && [ $relno -ge 7 ] && [ $relno -le 9 ]) || ([ "$osname" = "Raspbian" ] && [ $relno -ge 7 ] && [ $relno -le 8 ]); then
|
||||
echo $fullrel
|
||||
else
|
||||
echo $fullrel
|
||||
echo "Only Ubuntu release 16 and later, and Debian and Raspbian release 9 and later, are supported"
|
||||
echo "Only Ubuntu releases 12 to 17, and Debian and Raspbian releases 7 to 9, are 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"
|
||||
exit
|
||||
fi
|
||||
|
||||
# get options
|
||||
OPTS=$(getopt -n "$0" -o dltrmysu:p:w: --long "dload,log,ssh-default,rutorrent-stable,rutorrent-master,force-yes,self-signed,user:,password:,webpass:" -- "$@")
|
||||
OPTS=$(getopt -n "$0" -o dltryu:p:w: --long "dload,log,ssh-default,rutorrent-stable,force-yes,user:,password:,webpass:" -- "$@")
|
||||
|
||||
eval set -- "$OPTS"
|
||||
|
||||
@@ -277,9 +214,7 @@ while true; do
|
||||
-l | --log ) logfile="$HOME/rtinst.log"; shift ;;
|
||||
-t | --ssh-default ) portdefault=0; shift;;
|
||||
-r | --rutorrent-stable ) rudevflag=1; shift;;
|
||||
-m | --rutorrent-master ) rudevflag=0; shift;;
|
||||
-y | --force-yes ) forceyes=0; shift;;
|
||||
-s | --self-signed ) selfsign=0; shift;;
|
||||
-u | --user ) user="$2"; shift; shift;;
|
||||
-p | --password ) unixpass="$2"; shift; shift;;
|
||||
-w | --webpass ) webpass="$2"; shift; shift;;
|
||||
@@ -294,46 +229,6 @@ if [ $# -gt 0 ]; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# check required web repos are accessible
|
||||
os_repo=0
|
||||
major_repo=0
|
||||
|
||||
sed -i "s/\/debian\s/\/debian\/ /g" /etc/apt/sources.list
|
||||
|
||||
echo
|
||||
echo "Checking the web sites we will need are accessible"
|
||||
echo "Checking $osname mirrors"
|
||||
for i in $(cat /etc/apt/sources.list | grep "^deb http" | cut -d' ' -f2 | uniq ); do
|
||||
echo -n $i": "
|
||||
check_url $i && echo "OK" || { echo "FAIL"; os_repo=1; }
|
||||
done
|
||||
|
||||
echo
|
||||
echo "Checking major 3rd party components"
|
||||
echo -n "Rtorrent: "; check_url $rt_url && echo "OK" || { echo "FAIL"; major_repo=1; }
|
||||
|
||||
echo -n "xmlrpc-c: "; check_url $xmlrpc_url && echo "OK" || xmlrpc_repo=1
|
||||
|
||||
if [[ $xmlrpc_repo = 1 ]]; then
|
||||
xmlrpc_url=$xmlrpc_url_alt
|
||||
check_url $xmlrpc_url && echo "OK" || { echo "FAIL"; major_repo=1; }
|
||||
fi
|
||||
|
||||
echo -n "RuTorrent: ";check_url $ru_url && echo "OK" || { echo "FAIL"; major_repo=1; }
|
||||
echo -n "Autodl-irssi: "; check_url $adl_url && echo "OK" || { echo "FAIL"; major_repo=1; }
|
||||
|
||||
if [ $os_repo = 1 ]; then
|
||||
echo "Some of your $osname mirrors are down, try again later"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ $major_repo = 1 ]; then
|
||||
echo "Some of the repositories we need are not currently available."
|
||||
echo "We will continue for now, but may not be able to finish"
|
||||
echo "You can rerun rtinst later to complete the installation if needed"
|
||||
fi
|
||||
echo
|
||||
|
||||
# check IP Address
|
||||
[ $forceyes = 1 ] && enter_ip
|
||||
|
||||
@@ -348,21 +243,22 @@ else
|
||||
fi
|
||||
|
||||
#check rtorrent installation
|
||||
if installed rtorrent; then
|
||||
rt_current=$(rtorrent -h | grep -om 1 "[0-9]\{1,2\}\.[0-9]\{1,2\}\.[0-9]\{1,2\}")
|
||||
if hash rtorrent >> /dev/null 2>&1; then
|
||||
rtorrent_current=$(rtorrent -h | grep -m 1 'version')
|
||||
rtorrent_current=${rtorrent_current#*version }
|
||||
if [ $forceyes = 1 ]; then
|
||||
echo "rtorrent $rt_current has been detected."
|
||||
echo "rtorrent $rtorrent_current has been detected."
|
||||
echo -n "Do you wish to skip rtorrent compilation? "
|
||||
if ask_user; then
|
||||
skip_rt=0
|
||||
install_rt=1
|
||||
echo "rtorrent installation will be skipped."
|
||||
else
|
||||
skip_rt=1
|
||||
install_rt=0
|
||||
echo "rtorrent will be re-installed"
|
||||
fi
|
||||
else
|
||||
skip_rt=0
|
||||
echo "rtorrent $rt_current has been detected."
|
||||
install_rt=1
|
||||
echo "rtorrent $rtorrent_current has been detected."
|
||||
echo "rtorrent installation will be skipped."
|
||||
fi
|
||||
fi
|
||||
@@ -373,7 +269,7 @@ fi
|
||||
|
||||
# set and prepare user
|
||||
if [ -z "$user" ]; then
|
||||
if [ "$SUDO_USER" = "root" ] || [ -z "$SUDO_USER" ]; then
|
||||
if [ -z "$SUDO_USER" ]; then
|
||||
echo "Enter the name of the user to install to"
|
||||
echo "This will be your primary user"
|
||||
echo "It can be an existing user or a new user"
|
||||
@@ -412,57 +308,14 @@ home=$(eval echo "~$user")
|
||||
|
||||
#set password for rutorrent
|
||||
if [ -z "$webpass" ] && [ $forceyes = 0 ]; then
|
||||
if [ -z $(grep -s $user $passfile) ]; then
|
||||
webpass=$(genpasswd)
|
||||
passflag=1
|
||||
else
|
||||
passflag=2
|
||||
fi
|
||||
webpass=$(genpasswd)
|
||||
passflag=1
|
||||
fi
|
||||
|
||||
|
||||
|
||||
if [ -z "$webpass" ] && [ $passflag != 2 ]; then
|
||||
if [ ! -z $(grep -s $user $passfile) ]; then
|
||||
echo "There is an existing RuTorrent password for $user"
|
||||
echo -n "Use existing password y/n ? "
|
||||
if ask_user; then
|
||||
passflag=2
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ $passflag != 2 ]; then
|
||||
echo "Set Password for RuTorrent web client"
|
||||
webpass=$(set_pass)
|
||||
passflag=$?
|
||||
fi
|
||||
fi
|
||||
|
||||
rut_user_list=$(ls /var/www/rutorrent/conf/users 2>/dev/null | sed "s/$user//g")
|
||||
|
||||
for rut_user in $rut_user_list; do
|
||||
if ! id -u $rut_user >/dev/null 2>&1; then
|
||||
rut_user_list=$(echo $rut_user_list | sed "s/$rut_user//g")
|
||||
fi
|
||||
done
|
||||
|
||||
if [ -z "$rut_user_list" ]; then
|
||||
echo "No additional users to add"
|
||||
else
|
||||
echo "These users have been detected:"
|
||||
for rut_user in $rut_user_list; do
|
||||
echo $rut_user
|
||||
done
|
||||
|
||||
if [ $forceyes = 0 ]; then
|
||||
echo "Users will be added"
|
||||
rut_add_users=0
|
||||
else
|
||||
echo -n "Add them to rutorrent y/n ? "
|
||||
if ask_user; then
|
||||
rut_add_users=0
|
||||
fi
|
||||
fi
|
||||
if [ -z "$webpass" ]; then
|
||||
echo "Set Password for RuTorrent web client"
|
||||
webpass=$(set_pass)
|
||||
passflag=$?
|
||||
fi
|
||||
|
||||
#Interaction ended message
|
||||
@@ -471,28 +324,23 @@ echo "No more user input required, you can complete unattended"
|
||||
echo "It will take approx 10 minutes for the script to complete"
|
||||
echo
|
||||
|
||||
# kill apt-daily.service if running
|
||||
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 kill --kill-who=all apt-daily.service >> $logfile 2>&1
|
||||
|
||||
# wait until `apt-get updated` has been killed
|
||||
while ! (systemctl list-units --all apt-daily.service | fgrep -q dead)
|
||||
do
|
||||
sleep 1;
|
||||
done
|
||||
|
||||
#update amd upgrade system
|
||||
if [ "$fullrel" = "Ubuntu 12.04.5 LTS" ]; then
|
||||
cp /etc/apt/sources.list /etc/apt/sources.list.bak
|
||||
cp -f /etc/rtinst/conf/sources1204 /etc/apt/sources.list
|
||||
fi
|
||||
|
||||
#update amd upgrade system
|
||||
echo "Updating package lists" | tee $logfile
|
||||
apt-get -qq update | tee -a $logfile
|
||||
apt-get update 2>&1 >>$logfile | tee -a $logfile
|
||||
if ! [ $? = 0 ]; then
|
||||
error_exit "Problem updating packages."
|
||||
fi
|
||||
|
||||
echo "Upgrading packages" | tee -a $logfile
|
||||
export DEBIAN_FRONTEND=noninteractive
|
||||
apt-get -qq upgrade >> $logfile 2>&1
|
||||
apt-get -y upgrade 2>&1 >>$logfile | tee -a $logfile
|
||||
if ! [ $? = 0 ]; then
|
||||
echo "Problem upgrading packages. Run 'apt-get upgrade' successfully and rerun the script" && exit
|
||||
error_exit "Problem upgrading packages."
|
||||
fi
|
||||
|
||||
apt-get clean && apt-get autoclean >> $logfile 2>&1
|
||||
@@ -510,31 +358,20 @@ for package_name in $package_list
|
||||
fi
|
||||
done
|
||||
|
||||
test -z "$install_list" || apt-get -qq install $install_list >> $logfile 2>&1
|
||||
if ! [ $? = 0 ]; then
|
||||
echo "Problem installing packages. Check log and rerun once it is resolved" && exit
|
||||
fi
|
||||
|
||||
if [[ $phpver =~ php7.[0-9] ]]; then
|
||||
apt-get -qq install $phpver-mbstring >> $logfile 2>&1
|
||||
fi
|
||||
test -z "$install_list" || apt-get -y install $install_list 2>&1 >>$logfile | tee -a $logfile
|
||||
|
||||
#install unrar package
|
||||
if [ $osname = "Debian" ] && ! installed unrar; then
|
||||
if [ $osname = "Debian" ] && ! hash unrar >> /dev/null 2>&1; then
|
||||
echo "Installing rar/unrar"
|
||||
cd $home
|
||||
attempts=0
|
||||
until [ -d rar ] || [ $attempts -gt 5 ]
|
||||
do
|
||||
attempts=$(( $attempts + 1 ))
|
||||
attempts=$(( $attempts + 1 ))
|
||||
if [ "$(uname -m)" = "x86_64" ]; then
|
||||
wget http://www.rarlab.com/rar/rarlinux-x64-5.5.0.tar.gz >> $logfile 2>&1
|
||||
tar xvzf rarlinux-x64-5.5.0.tar.gz >> $logfile 2>&1
|
||||
rm rarlinux-x64-5.5.0.tar.gz
|
||||
curl -s --connect-timeout 10 http://www.rarlab.com/rar/rarlinux-x64-5.4.0.tar.gz | tar xz 2>/dev/null
|
||||
elif [ "$(uname -m)" = "x86_32" ]; then
|
||||
wget http://www.rarlab.com/rar/rarlinux-5.5.0.tar.gz >> $logfile 2>&1
|
||||
tar xvzf rarlinux-5.5.0.tar.gz >> $logfile 2>&1
|
||||
rm rarlinux-5.5.0.tar.gz
|
||||
curl -s --connect-timeout 10 http://www.rarlab.com/rar/rarlinux-5.4.0.tar.gz | tar xz 2>/dev/null
|
||||
fi
|
||||
done
|
||||
if [ -d rar ]; then
|
||||
@@ -543,10 +380,10 @@ if [ $osname = "Debian" ] && ! installed unrar; then
|
||||
rm -r $home/rar
|
||||
fi
|
||||
elif [ $osname = "Ubuntu" ]; then
|
||||
apt-get -qq install unrar >> $logfile 2>&1
|
||||
apt-get -y install unrar >> $logfile 2>&1
|
||||
fi
|
||||
|
||||
if installed unrar; then
|
||||
if hash unrar >> /dev/null 2>&1; then
|
||||
echo "rar/unrar installed"
|
||||
else
|
||||
echo "rar/unrar install failed"
|
||||
@@ -555,7 +392,18 @@ fi
|
||||
#install ffmpeg
|
||||
if ! [ $osname = "Raspbian" ] && [ $(dpkg-query -W -f='${Status}' "ffmpeg" 2>/dev/null | grep -c "ok installed") = 0 ]; then
|
||||
echo "Installing ffmpeg"
|
||||
apt-get -qq install ffmpeg >> $logfile 2>&1
|
||||
if [ $relno = 14 ]; then
|
||||
apt-add-repository -y ppa:mc3man/trusty-media >> $logfile 2>&1 || error_exit "Problem adding to repository from - https://launchpad.net/~mc3man/+archive/ubuntu/ppa"
|
||||
apt-get update >> $logfile 2>&1 || error_exit "problem updating package lists"
|
||||
apt-get -y 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 update >> $logfile 2>&1 || error_exit "problem updating package lists"
|
||||
apt-get -y --force-yes install deb-multimedia-keyring >> $logfile 2>&1
|
||||
apt-get -y --force-yes install ffmpeg >> $logfile 2>&1
|
||||
else
|
||||
apt-get -y install ffmpeg >> $logfile 2>&1
|
||||
fi
|
||||
fi
|
||||
|
||||
echo "Completed installation of required packages "
|
||||
@@ -596,7 +444,6 @@ sed -i "/^\(\s\|#\)*X11Forwarding /c\X11Forwarding no" /etc/ssh/sshd_config
|
||||
sed -i '/^\s*PermitRootLogin/ c\PermitRootLogin no' /etc/ssh/sshd_config
|
||||
sed -i '/^\s*PasswordAuthentication no/ c\#PasswordAuthentication no' /etc/ssh/sshd_config
|
||||
|
||||
echo >> /etc/ssh/sshd_config
|
||||
grep -Pq "^[#\s]*UsePAM" /etc/ssh/sshd_config && sed -i '/^\(\s\|#\)*UsePAM/ c\UsePAM yes' /etc/ssh/sshd_config || echo "UsePAM yes" >> /etc/ssh/sshd_config
|
||||
grep -Pq "^[#\s]*UseDNS" /etc/ssh/sshd_config && sed -i '/^\(\s\|#\)*UseDNS/ c\UseDNS no' /etc/ssh/sshd_config || echo "UseDNS no" >> /etc/ssh/sshd_config
|
||||
|
||||
@@ -624,8 +471,7 @@ echo "SSH port set to $sshport"
|
||||
### SSL CERTIFICATES ###
|
||||
###############################
|
||||
|
||||
# calls the script rtsslcert to generate the ssl certificated for vsftpd and nginx
|
||||
rtsslcert -d
|
||||
rtsslcert -d $serverip
|
||||
|
||||
###############################
|
||||
### INSTALL FTP ###
|
||||
@@ -635,7 +481,19 @@ ftpport=$(random 41005 48995)
|
||||
|
||||
if [ $(dpkg-query -W -f='${Status}' "vsftpd" 2>/dev/null | grep -c "ok installed") -eq 0 ]; then
|
||||
echo "Installing vsftpd" | tee -a $logfile
|
||||
apt-get -y install vsftpd >> $logfile 2>&1
|
||||
|
||||
if [ $relno = 12 ]; then
|
||||
add-apt-repository -y ppa:thefrontiergroup/vsftpd >> $logfile 2>&1
|
||||
apt-get update >> $logfile 2>&1
|
||||
apt-get -y install vsftpd >> $logfile 2>&1
|
||||
elif [ $relno = 7 ]; then
|
||||
echo "deb http://ftp.cyconet.org/debian wheezy-updates main non-free contrib" >> /etc/apt/sources.list.d/wheezy-updates.cyconet2.list
|
||||
aptitude update >> $logfile 2>&1 || error_exit "problem updating package lists"
|
||||
aptitude -o Aptitude::Cmdline::ignore-trust-violations=true -y install -t wheezy-updates debian-cyconet-archive-keyring vsftpd >> $logfile 2>&1 || error_exit "Unable to download vsftpd"
|
||||
else
|
||||
apt-get -y install vsftpd >> $logfile 2>&1
|
||||
fi
|
||||
|
||||
fi
|
||||
|
||||
sed -i '/^\(\s\|#\)*anonymous_enable/ c\anonymous_enable=NO' /etc/vsftpd.conf
|
||||
@@ -650,12 +508,6 @@ sed -i 's/^\s*listen_ipv6/#listen_ipv6/g' /etc/vsftpd.conf
|
||||
|
||||
grep ^listen_port /etc/vsftpd.conf > /dev/null || echo "listen_port=$ftpport" >> /etc/vsftpd.conf
|
||||
|
||||
if [[ $LANG =~ .*[Uu][Tt][Ff]-?8.* ]]; then
|
||||
grep -Pq "utf8_filesystem=" /etc/vsftpd.conf && sed -i '/^\(\s\|#\)*utf8_filesystem=/ c\utf8_filesystem=YES' /etc/vsftpd.conf || echo "utf8_filesystem=YES" >> /etc/vsftpd.conf
|
||||
fi
|
||||
|
||||
|
||||
grep -Pq "use_sendfile=" /etc/vsftpd.conf && sed -i '/^\(\s\|#\)*use_sendfile=/ c\use_sendfile=NO' /etc/vsftpd.conf || echo "use_sendfile=NO" >> /etc/vsftpd.conf
|
||||
grep -Pq "^\s*ssl_enable" /etc/vsftpd.conf && sed -i '/^\s*ssl_enable/ c\ssl_enable=YES' /etc/vsftpd.conf || echo "ssl_enable=YES" >> /etc/vsftpd.conf
|
||||
grep -Pq "^\s*chroot_local_user" /etc/vsftpd.conf && sed -i '/^\s*chroot_local_user/ c\chroot_local_user=YES' /etc/vsftpd.conf || echo "chroot_local_user=YES" >> /etc/vsftpd.conf
|
||||
grep -Pq "^\s*allow_writeable_chroot" /etc/vsftpd.conf && sed -i '/^\s*allow_writeable_chroot/ c\allow_writeable_chroot=YES' /etc/vsftpd.conf || echo "allow_writeable_chroot=YES" >> /etc/vsftpd.conf
|
||||
@@ -673,93 +525,53 @@ service vsftpd restart 1>> $logfile
|
||||
ftpport=$(grep 'listen_port=' /etc/vsftpd.conf | sed 's/[^0-9]*//g')
|
||||
echo "FTP port set to $ftpport"
|
||||
|
||||
###############################
|
||||
### INSTALL NGINX ###
|
||||
###############################
|
||||
|
||||
cd $home
|
||||
|
||||
if [ -f "/etc/apache2/ports.conf" ]; then
|
||||
echo "Detected apache2. Changing apache2 port to 81 in /etc/apache2/ports.conf" | tee -a $logfile
|
||||
sed -i "s/Listen 80/Listen 81/g" /etc/apache2/ports.conf
|
||||
service apache2 stop >> $logfile 2>&1
|
||||
fi
|
||||
|
||||
echo "Installing nginx" | tee -a $logfile
|
||||
|
||||
if [ $passflag != 2 ]; then
|
||||
if [ -f $passfile ]; then
|
||||
htpasswd -b $passfile $user $webpass >> $logfile 2>&1
|
||||
else
|
||||
htpasswd -c -b $passfile $user $webpass >> $logfile 2>&1
|
||||
fi
|
||||
fi
|
||||
|
||||
chown www-data:www-data $passfile
|
||||
chmod 640 $passfile
|
||||
|
||||
sed -i "s/user www-data;/user www-data www-data;/g" /etc/nginx/nginx.conf
|
||||
sed -i "s/worker_processes 4;/worker_processes 1;/g" /etc/nginx/nginx.conf
|
||||
sed -i "s/pid \/run\/nginx\.pid;/pid \/var\/run\/nginx\.pid;/g" /etc/nginx/nginx.conf
|
||||
sed -i "s/# server_tokens off;/server_tokens off;/g" /etc/nginx/nginx.conf
|
||||
sed -i "s/access_log \/var\/log\/nginx\/access\.log;/access_log off;/g" /etc/nginx/nginx.conf
|
||||
sed -i "s/error\.log;/error\.log crit;/g" /etc/nginx/nginx.conf
|
||||
grep client_max_body_size /etc/nginx/nginx.conf > /dev/null 2>&1 || sed -i "/server_tokens off;/ a\ client_max_body_size 40m;\n" /etc/nginx/nginx.conf
|
||||
sed -i "/upload_max_filesize/ c\upload_max_filesize = 40M" $phploc/fpm/php.ini
|
||||
sed -i '/^;\?listen.owner/ c\listen.owner = www-data' $phploc/fpm/pool.d/www.conf
|
||||
sed -i '/^;\?listen.group/ c\listen.group = www-data' $phploc/fpm/pool.d/www.conf
|
||||
sed -i '/^;\?listen.mode/ c\listen.mode = 0660' $phploc/fpm/pool.d/www.conf
|
||||
|
||||
mkdir -p /var/www
|
||||
if [ -d "/usr/share/nginx/www" ]; then
|
||||
cp /usr/share/nginx/www/* /var/www
|
||||
elif [ -d "/usr/share/nginx/html" ]; then
|
||||
cp /usr/share/nginx/html/* /var/www
|
||||
fi
|
||||
|
||||
mv -n /etc/nginx/sites-available/default /etc/nginx/sites-available/default.original
|
||||
|
||||
cp -f /etc/rtinst/conf/nginxsite /etc/nginx/sites-available/default
|
||||
cp -f /etc/rtinst/conf/nginxsitedl /etc/nginx/sites-available/dload-loc
|
||||
|
||||
echo "location ~ \.php$ {" > /etc/nginx/conf.d/php
|
||||
echo " fastcgi_split_path_info ^(.+\.php)(/.+)$;" >> /etc/nginx/conf.d/php
|
||||
|
||||
if [ "$phpver" = "php5" ]; then
|
||||
echo " fastcgi_pass unix:/var/run/php5-fpm.sock;" >> /etc/nginx/conf.d/php
|
||||
else
|
||||
echo " fastcgi_pass unix:/var/run/php/$phpver-fpm.sock;" >> /etc/nginx/conf.d/php
|
||||
fi
|
||||
|
||||
echo " fastcgi_param SCRIPT_FILENAME \$document_root\$fastcgi_script_name;" >> /etc/nginx/conf.d/php
|
||||
echo " fastcgi_index index.php;" >> /etc/nginx/conf.d/php
|
||||
echo " include fastcgi_params;" >> /etc/nginx/conf.d/php
|
||||
echo "}" >> /etc/nginx/conf.d/php
|
||||
|
||||
echo "location ~* \.(jpg|jpeg|gif|css|png|js|woff|ttf|svg|eot)$ {" > /etc/nginx/conf.d/cache
|
||||
echo " expires 30d;" >> /etc/nginx/conf.d/cache
|
||||
echo "}" >> /etc/nginx/conf.d/cache
|
||||
|
||||
service nginx restart && service $phpver-fpm restart
|
||||
|
||||
if [ $dlflag = 0 ]; then
|
||||
rtdload enable
|
||||
fi
|
||||
|
||||
###############################
|
||||
### INSTALL RTORRENT ###
|
||||
###############################
|
||||
|
||||
if [ $skip_rt = 1 ]; then
|
||||
if [ -z $rtorrentrel ]; then
|
||||
rtorrentrel='latest'
|
||||
if [ $install_rt = 0 ]; then
|
||||
cd $home
|
||||
mkdir -p source
|
||||
cd source
|
||||
echo "Downloading rtorrent source files" | tee -a $logfile
|
||||
rm -rf xmlrpc libtorrent-$libtorrentrel rtorrent-$rtorrentrel
|
||||
|
||||
svn co $xmlrpcloc xmlrpc >> $logfile 2>&1 || error_exit "Unable to download xmlrpc source files from https://svn.code.sf.net/p/xmlrpc-c/code/stable"
|
||||
|
||||
if [ $relno -eq 9 ]; then
|
||||
git clone -q -b feature-bind --single-branch https://github.com/rakshasa/libtorrent.git libtorrent-$libtorrentrel
|
||||
git clone -q -b feature-bind --single-branch https://github.com/rakshasa/rtorrent.git rtorrent-$rtorrentrel
|
||||
else
|
||||
curl -# $libtorrentloc | tar xz >> $logfile 2>&1 || error_exit "Unable to download libtorrent source files from http://libtorrent.rakshasa.no/downloads"
|
||||
curl -# $rtorrentloc | tar xz >> $logfile 2>&1 || error_exit "Unable to download rtorrent source files from http://libtorrent.rakshasa.no/downloads"
|
||||
fi
|
||||
export home
|
||||
# call the script rtupdate to install lib/rtorrent
|
||||
rtupdate $rtorrentrel || early_exit
|
||||
export -n home
|
||||
|
||||
cd xmlrpc
|
||||
echo "Installing xmlrpc" | tee -a $logfile
|
||||
./configure --prefix=/usr --disable-cplusplus >> $logfile 2>&1
|
||||
make >> $logfile 2>&1
|
||||
make install >> $logfile 2>&1
|
||||
|
||||
cd ../libtorrent-$libtorrentrel
|
||||
echo "Installing libtorrent" | tee -a $logfile
|
||||
./autogen.sh >> $logfile 2>&1
|
||||
if [ $osname = "Raspbian" ]; then
|
||||
./configure --prefix=/usr --disable-instrumentation >> $logfile 2>&1
|
||||
else
|
||||
./configure --prefix=/usr >> $logfile 2>&1
|
||||
fi
|
||||
make -j2 >> $logfile 2>&1
|
||||
make install >> $logfile 2>&1
|
||||
|
||||
cd ../rtorrent-$rtorrentrel
|
||||
echo "Installing rtorrent" | tee -a $logfile
|
||||
./autogen.sh >> $logfile 2>&1
|
||||
./configure --prefix=/usr --with-xmlrpc-c >> $logfile 2>&1
|
||||
make -j2 >> $logfile 2>&1
|
||||
make install >> $logfile 2>&1
|
||||
ldconfig >> $logfile 2>&1
|
||||
else
|
||||
echo "skiping rtorrent installation" | tee -a $logfile
|
||||
echo "skiping rtorrent installation" | tee -a $logfile
|
||||
fi
|
||||
|
||||
echo "Configuring rtorrent" | tee -a $logfile
|
||||
@@ -780,21 +592,24 @@ sed -i "s/<user name>/$user/g" $home/.rtorrent.rc
|
||||
mkdir -p /var/www
|
||||
cd /var/www
|
||||
|
||||
echo -n "RuTorrent: "; check_url $ru_url && echo "OK" || { echo "FAIL"; early_exit; }
|
||||
|
||||
if [ -d "/var/www/rutorrent" ]; then
|
||||
rm -r /var/www/rutorrent
|
||||
fi
|
||||
|
||||
if [ $rudevflag = 1 ]; then
|
||||
rurelease=$(git ls-remote -t https://github.com/Novik/ruTorrent v\* | cut -d/ -f3 | sort -V | tail -1)
|
||||
fi
|
||||
|
||||
echo "Installing Rutorrent ($rurelease)" | tee -a $logfile
|
||||
wget -q https://github.com/Novik/ruTorrent/archive/$rurelease.tar.gz | tee -a $logfile
|
||||
tar -xzf $rurelease.tar.gz
|
||||
mv $(tar -tzf $rurelease.tar.gz | head -1) rutorrent
|
||||
rm $rurelease.tar.gz
|
||||
if [ $rudevflag = 1 ]; then
|
||||
echo "Installing Rutorrent (stable)" | tee -a $logfile
|
||||
wget --no-check-certificate https://bintray.com/artifact/download/novik65/generic/rutorrent-3.6.tar.gz >> $logfile 2>&1 || error_exit "Unable to download rutorrent files from https://bintray.com/artifact/download/novik65/generic/rutorrent-3.6.tar.gz"
|
||||
wget --no-check-certificate https://bintray.com/artifact/download/novik65/generic/plugins-3.6.tar.gz >> $logfile 2>&1 || error_exit "Unable to download rutorrent plugin files from https://bintray.com/artifact/download/novik65/generic/plugins-3.6.tar.gz"
|
||||
tar -xzf rutorrent-3.6.tar.gz
|
||||
tar -xzf plugins-3.6.tar.gz
|
||||
rm rutorrent-3.6.tar.gz
|
||||
rm plugins-3.6.tar.gz
|
||||
rm -r rutorrent/plugins
|
||||
mv plugins rutorrent
|
||||
else
|
||||
echo "Installing Rutorrent (latest build)" | tee -a $logfile
|
||||
git clone https://github.com/Novik/ruTorrent.git rutorrent >> $logfile 2>&1
|
||||
fi
|
||||
|
||||
echo "Configuring Rutorrent" | tee -a $logfile
|
||||
rm rutorrent/conf/config.php
|
||||
@@ -820,6 +635,73 @@ if [ $osname = "Raspbian" ]; then
|
||||
echo 'enabled = no' >> /var/www/rutorrent/conf/plugins.ini
|
||||
fi
|
||||
|
||||
###############################
|
||||
### INSTALL NGINX ###
|
||||
###############################
|
||||
|
||||
cd $home
|
||||
|
||||
if [ -f "/etc/apache2/ports.conf" ]; then
|
||||
echo "Detected apache2. Changing apache2 port to 81 in /etc/apache2/ports.conf" | tee -a $logfile
|
||||
sed -i "s/Listen 80/Listen 81/g" /etc/apache2/ports.conf
|
||||
service apache2 stop >> $logfile 2>&1
|
||||
fi
|
||||
|
||||
echo "Installing nginx" | tee -a $logfile
|
||||
|
||||
htpasswd -c -b $passfile $user $webpass >> $logfile 2>&1
|
||||
chown www-data:www-data $passfile
|
||||
chmod 640 $passfile
|
||||
|
||||
sed -i "s/user www-data;/user www-data www-data;/g" /etc/nginx/nginx.conf
|
||||
sed -i "s/worker_processes 4;/worker_processes 1;/g" /etc/nginx/nginx.conf
|
||||
sed -i "s/pid \/run\/nginx\.pid;/pid \/var\/run\/nginx\.pid;/g" /etc/nginx/nginx.conf
|
||||
sed -i "s/# server_tokens off;/server_tokens off;/g" /etc/nginx/nginx.conf
|
||||
sed -i "s/access_log \/var\/log\/nginx\/access\.log;/access_log off;/g" /etc/nginx/nginx.conf
|
||||
sed -i "s/error\.log;/error\.log crit;/g" /etc/nginx/nginx.conf
|
||||
grep client_max_body_size /etc/nginx/nginx.conf > /dev/null 2>&1 || sed -i "/server_tokens off;/ a\ client_max_body_size 40m;\n" /etc/nginx/nginx.conf
|
||||
sed -i "/upload_max_filesize/ c\upload_max_filesize = 40M" $phploc/fpm/php.ini
|
||||
sed -i '/^;\?listen.owner/ c\listen.owner = www-data' $phploc/fpm/pool.d/www.conf
|
||||
sed -i '/^;\?listen.group/ c\listen.group = www-data' $phploc/fpm/pool.d/www.conf
|
||||
sed -i '/^;\?listen.mode/ c\listen.mode = 0660' $phploc/fpm/pool.d/www.conf
|
||||
|
||||
if [ -d "/usr/share/nginx/www" ]; then
|
||||
cp /usr/share/nginx/www/* /var/www
|
||||
elif [ -d "/usr/share/nginx/html" ]; then
|
||||
cp /usr/share/nginx/html/* /var/www
|
||||
fi
|
||||
|
||||
mv /etc/nginx/sites-available/default /etc/nginx/sites-available/default.old
|
||||
|
||||
cp -f /etc/rtinst/conf/nginxsite /etc/nginx/sites-available/default
|
||||
cp -f /etc/rtinst/conf/nginxsitedl /etc/nginx/sites-available/dload-loc
|
||||
|
||||
echo "location ~ \.php$ {" > /etc/nginx/conf.d/php
|
||||
echo " fastcgi_split_path_info ^(.+\.php)(/.+)$;" >> /etc/nginx/conf.d/php
|
||||
|
||||
if [ $relno = 12 ]; then
|
||||
echo " fastcgi_pass 127.0.0.1:9000;" >> /etc/nginx/conf.d/php
|
||||
elif [ "$phpver" = "php7.0" ]; then
|
||||
echo " fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;" >> /etc/nginx/conf.d/php
|
||||
else
|
||||
echo " fastcgi_pass unix:/var/run/php5-fpm.sock;" >> /etc/nginx/conf.d/php
|
||||
fi
|
||||
|
||||
echo " fastcgi_param SCRIPT_FILENAME \$document_root\$fastcgi_script_name;" >> /etc/nginx/conf.d/php
|
||||
echo " fastcgi_index index.php;" >> /etc/nginx/conf.d/php
|
||||
echo " include fastcgi_params;" >> /etc/nginx/conf.d/php
|
||||
echo "}" >> /etc/nginx/conf.d/php
|
||||
|
||||
echo "location ~* \.(jpg|jpeg|gif|css|png|js|woff|ttf|svg|eot)$ {" > /etc/nginx/conf.d/cache
|
||||
echo " expires 30d;" >> /etc/nginx/conf.d/cache
|
||||
echo "}" >> /etc/nginx/conf.d/cache
|
||||
|
||||
service nginx restart && service $phpver-fpm restart
|
||||
|
||||
if [ $dlflag = 0 ]; then
|
||||
rtdload enable
|
||||
fi
|
||||
|
||||
###############################
|
||||
### INSTALL AUTODL-IRSSI ###
|
||||
###############################
|
||||
@@ -831,13 +713,14 @@ adlpass=$(genpasswd $(random 12 16))
|
||||
mkdir -p $home/.irssi/scripts/autorun
|
||||
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
|
||||
unzip -qq -o autodl-irssi.zip | tee -a $logfile
|
||||
unzip -o autodl-irssi.zip >> $logfile 2>&1
|
||||
rm autodl-irssi.zip
|
||||
cp autodl-irssi.pl autorun/
|
||||
mkdir -p $home/.autodl
|
||||
touch $home/.autodl/autodl.cfg && touch $home/.autodl/autodl2.cfg
|
||||
|
||||
cd /var/www/rutorrent/plugins
|
||||
git clone -q https://github.com/autodl-community/autodl-rutorrent.git autodl-irssi | tee -a $home/rtinst.info
|
||||
git clone https://github.com/autodl-community/autodl-rutorrent.git autodl-irssi >> $logfile 2>&1 || error_exit "Unable to download autodl plugin files from https://github.com/autodl-community/autodl-irssi"
|
||||
|
||||
mkdir /var/www/rutorrent/conf/users/$user/plugins/autodl-irssi
|
||||
|
||||
@@ -851,23 +734,9 @@ echo >> /var/www/rutorrent/conf/users/$user/plugins/autodl-irssi/conf.php
|
||||
echo "?>" >> /var/www/rutorrent/conf/users/$user/plugins/autodl-irssi/conf.php
|
||||
|
||||
cd $home/.autodl
|
||||
rm -f autodl2.cfg
|
||||
|
||||
if [ -f "autodl.cfg" ]; then
|
||||
if (grep -sq gui-server-port autodl.cfg) && (grep -sq gui-server-password autodl.cfg); then
|
||||
sed -i "/gui-server-port/ c\gui-server-port = $adlport" autodl.cfg
|
||||
sed -i "/gui-server-password/ c\gui-server-password = $adlpass" autodl.cfg
|
||||
else
|
||||
sed -i '/gui-server-port/ d' autodl.cfg
|
||||
sed -i '/gui-server-password/ d' autodl.cfg
|
||||
echo >> autodl.cfg
|
||||
sed -i "1s/^/[options]\ngui-server-port = $adlport\ngui-server-password = $adlpass\n/" autodl.cfg
|
||||
fi
|
||||
else
|
||||
echo "[options]" > autodl.cfg
|
||||
echo "gui-server-port = $adlport" >> autodl.cfg
|
||||
echo "gui-server-password = $adlpass" >> autodl.cfg
|
||||
fi
|
||||
echo "[options]" > autodl2.cfg
|
||||
echo "gui-server-port = $adlport" >> autodl2.cfg
|
||||
echo "gui-server-password = $adlpass" >> autodl2.cfg
|
||||
|
||||
###############################
|
||||
### FINAL TASKS ###
|
||||
@@ -876,12 +745,9 @@ fi
|
||||
# set permissions
|
||||
echo "Setting permissions, Starting services" | tee -a $logfile
|
||||
chown -R www-data:www-data /var/www
|
||||
chmod -R 755 /var/www/rutorrent
|
||||
chown -R $user:$user $home
|
||||
|
||||
if [ $dlflag = 0 ]; then
|
||||
find $home -type d -print0 | xargs -0 chmod 755
|
||||
fi
|
||||
|
||||
cd $home
|
||||
|
||||
#allows users to change their rutorrent passwords
|
||||
@@ -902,89 +768,37 @@ if [ -z "$(crontab -u $user -l | grep "\*/10 \* \* \* \* /usr/local/bin/rtcheck
|
||||
(crontab -u $user -l; echo "$cronline2" ) | crontab -u $user - >> $logfile 2>&1
|
||||
fi
|
||||
|
||||
# add aditional users if any
|
||||
if [ $rut_add_users = 0 ]; then
|
||||
for rut_user in $rut_user_list; do
|
||||
echo "Adding $rut_user"
|
||||
rtadduser -n -u $rut_user >> $logfile 2>&1
|
||||
done
|
||||
fi
|
||||
|
||||
###############################
|
||||
### WRITE RTINST.INFO ###
|
||||
###############################
|
||||
|
||||
ftp_current=$(apt-cache policy vsftpd | grep -o Installed.* | cut -d ' ' -f2)
|
||||
rt_current=$(rtorrent -h | grep -om 1 "[0-9]\{1,2\}\.[0-9]\{1,2\}\.[0-9]\{1,2\}")
|
||||
ru_current=$(grep -m 1 version: /var/www/rutorrent/js/webui.js | cut -d \" -f2)
|
||||
|
||||
echo
|
||||
echo "crontab entries made. rtorrent and irssi will start on boot for $user"
|
||||
echo
|
||||
echo "Summary of Installation (Important Information, please read" | tee $home/rtinst.info
|
||||
echo "ftp client should be set to explicit ftp over tls using port $ftpport" | tee $home/rtinst.info
|
||||
echo
|
||||
if [ $dlflag = 0 ]; then
|
||||
find $home -type d -print0 | xargs -0 chmod 755
|
||||
fi
|
||||
echo "If enabled, access https downloads at https://$serverip/download/$user" | tee -a $home/rtinst.info
|
||||
echo
|
||||
echo "rutorrent can be accessed at https://$serverip/rutorrent" | tee -a $home/rtinst.info
|
||||
|
||||
echo | tee $home/rtinst.info
|
||||
|
||||
echo "SSH Configured" | tee -a $home/rtinst.info
|
||||
echo " SSH port set to $sshport" | tee -a $home/rtinst.info
|
||||
echo " root login directly from SSH disabled"
|
||||
echo " login with $user and switch to root using: sudo su"
|
||||
|
||||
echo | tee -a $home/rtinst.info
|
||||
|
||||
echo "FTP Server" | tee -a $home/rtinst.info
|
||||
if installed vsftpd; then
|
||||
echo " vsftpd $ftp_current installed" | tee -a $home/rtinst.info
|
||||
echo " ftp port set to $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
|
||||
if [ $passflag = 1 ]; then
|
||||
echo "rutorrent password set to $webpass" | tee -a $home/rtinst.info
|
||||
else
|
||||
echo " vsftpd is not installed" | tee -a $home/rtinst.info
|
||||
echo "rutorrent password as set by user" | tee -a $home/rtinst.info
|
||||
fi
|
||||
|
||||
echo | tee -a $home/rtinst.info
|
||||
|
||||
echo "rtorrent torrent client" | tee -a $home/rtinst.info
|
||||
if installed rtorrent; then
|
||||
echo " rtorrent $rt_current installed" | tee -a $home/rtinst.info
|
||||
echo " crontab entries made. rtorrent and irssi will start on boot for $user" | tee -a $home/rtinst.info
|
||||
else
|
||||
echo " rtorrent was not installed" | tee -a $home/rtinst.info
|
||||
fi
|
||||
|
||||
echo | tee -a $home/rtinst.info
|
||||
|
||||
echo "RuTorrent Web GUI" | tee -a $home/rtinst.info
|
||||
if [ -z $ru_current ]; then
|
||||
echo " RuTorrent was not installed" | tee -a $home/rtinst.info
|
||||
else
|
||||
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 [ $passflag = 1 ]; then
|
||||
echo " rutorrent password set to $webpass" | tee -a $home/rtinst.info
|
||||
elif [ $passflag = 2 ]; then
|
||||
echo " rutorrent password has not been changed" | tee -a $home/rtinst.info
|
||||
else
|
||||
echo " rutorrent password as set by user" | tee -a $home/rtinst.info
|
||||
fi
|
||||
echo " to change rutorrent password enter: rtpass" | 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
|
||||
fi
|
||||
|
||||
echo | tee -a $home/rtinst.info
|
||||
|
||||
echo "IMPORTANT: SSH Port set to $sshport" | tee -a $home/rtinst.info
|
||||
echo "IMPORTANT: SSH Port set to $sshport"
|
||||
echo "IMPORTANT: SSH Port set to $sshport"
|
||||
echo "Please ensure you can login BEFORE closing this session"
|
||||
echo "to change rutorrent password enter: rtpass" | tee -a $home/rtinst.info
|
||||
echo
|
||||
echo "IMPORTANT: SSH Port set to $sshport - Ensure you can login before closing this session"
|
||||
echo "ssh port changed to $sshport" | tee -a $home/rtinst.info > /dev/null
|
||||
echo
|
||||
echo "The above information is stored in rtinst.info in your home directory."
|
||||
echo "To see contents enter: cat $home/rtinst.info"
|
||||
echo
|
||||
echo "To install webmin enter: sudo rtwebmin"
|
||||
echo
|
||||
echo "SCROLL UP IF NEEDED TO READ ALL THE SUMMARY INFO"
|
||||
echo "PLEASE REBOOT YOUR SYSTEM ONCE YOU HAVE NOTED THE ABOVE INFORMATION"
|
||||
echo | tee -a $home/rtinst.info
|
||||
echo "Thank You for choosing rtinst" | tee -a $home/rtinst.info
|
||||
echo
|
||||
chown $user rtinst.info
|
||||
|
||||
+14
-29
@@ -8,9 +8,9 @@
|
||||
#
|
||||
#########################################################################################
|
||||
|
||||
|
||||
forceyes=1
|
||||
headless=1
|
||||
selfsign=1
|
||||
|
||||
#function to check if string is valid format for an ip address
|
||||
valid_ip()
|
||||
@@ -53,13 +53,13 @@ echo ": done"
|
||||
if [ -f /etc/vsftpd.conf ]; then
|
||||
sed -i '/^\(\s\|#\)*rsa_private_key_file/ c\rsa_private_key_file=\/etc\/ssl\/private\/ruweb\.key' /etc/vsftpd.conf
|
||||
sed -i '/^\(\s\|#\)*rsa_cert_file/ c\rsa_cert_file=\/etc\/ssl\/ruweb\.crt' /etc/vsftpd.conf
|
||||
service vsftpd restart >/dev/null 2>&1
|
||||
service vsftpd restart
|
||||
fi
|
||||
|
||||
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_key/ c\ ssl_certificate_key \/etc\/ssl\/private\/ruweb\.key;' /etc/nginx/sites-available/default
|
||||
service nginx restart >/dev/null 2>&1
|
||||
service nginx restart
|
||||
fi
|
||||
}
|
||||
|
||||
@@ -71,13 +71,12 @@ fi
|
||||
# options -y and -d take away the user interaction so can be called from another script
|
||||
# option -y will force the creation of new certificates
|
||||
# option -d will not unless it determines they are needed
|
||||
while getopts ":yds" optname
|
||||
while getopts ":yd" optname
|
||||
do
|
||||
case $optname in
|
||||
"y" ) forceyes=0 ;;
|
||||
"d" ) headless=0 ;;
|
||||
"s" ) selfsign=0 ;;
|
||||
* ) echo "-y, -d, and -s only options allowed" && exit ;;
|
||||
* ) echo "-y or -d only options allowed" && exit ;;
|
||||
esac
|
||||
done
|
||||
|
||||
@@ -88,33 +87,19 @@ if [ $forceyes = 0 ] && [ $headless = 0 ]; then
|
||||
exit
|
||||
fi
|
||||
|
||||
if [ $# -gt 0 ]; then
|
||||
echo "No arguments allowed"
|
||||
if [ $# -gt 1 ]; then
|
||||
echo "Only one argument allowed"
|
||||
exit
|
||||
fi
|
||||
|
||||
serverip=$1
|
||||
|
||||
if [ -z $serverip ]; then
|
||||
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
|
||||
echo
|
||||
serverip=$(ip route get 8.8.8.8 | awk 'NR==1 {print $NF}')
|
||||
elif ! valid_ip $serverip; then
|
||||
echo "$serverip is not a valid IP address"
|
||||
serverip=$(ip route get 8.8.8.8 | awk 'NR==1 {print $NF}')
|
||||
echo "will use $serverip instead"
|
||||
fi
|
||||
|
||||
serverdn=$(perl -MSocket -le "print((gethostbyaddr(inet_aton('$serverip'), AF_INET))[0])")
|
||||
|
||||
+55
-181
@@ -10,59 +10,17 @@
|
||||
|
||||
PATH=/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/bin:/sbin
|
||||
|
||||
osname=$(lsb_release -si)
|
||||
relno=$(lsb_release -sr | cut -d. -f1)
|
||||
sourcedir='http://rtorrent.net/downloads/'
|
||||
RTFILE=/usr/local/bin/rt
|
||||
|
||||
xmlrpc_url='https://svn.code.sf.net/p/xmlrpc-c/code/advanced/'
|
||||
xmlrpcloc='svn://svn.code.sf.net/p/xmlrpc-c/code/advanced/'
|
||||
duoversion="0.13.2/0.9.2 0.13.3/0.9.3 0.13.4/0.9.4 0.13.5/0.9.5 0.13.6/0.9.6"
|
||||
OSNAME=$(cat /etc/issue.net | cut -d' ' -f1)
|
||||
|
||||
xmlrpc_url_alt='https://github.com/mirror/xmlrpc-c'
|
||||
xmlrpcloc_alt='https://github.com/mirror/xmlrpc-c/trunk/advanced'
|
||||
|
||||
rtdevrel=1
|
||||
|
||||
if [ $(lsb_release -sr) = 17.10 ]; then
|
||||
rtdevrel=0
|
||||
fi
|
||||
|
||||
if ([ "$osname" = "Debian" ] || [ "$osname" = "Raspbian" ] && [ $relno -ge 9 ]) || ([ "$osname" = "Ubuntu" ] && [ $relno -ge 18 ]); then
|
||||
rtdevrel=0
|
||||
fi
|
||||
|
||||
listsize=6
|
||||
duoversion=''
|
||||
passed_rtvers=$1
|
||||
[ -z $logfile ] && logfile="/dev/null"
|
||||
|
||||
# get a list of the most recent releases
|
||||
rt_releases=$(wget -q -O - $sourcedir | grep -o "rtorrent-[0-9]\{1,2\}\.[0-9]\{1,2\}\.[0-9]\{1,2\}\.tar.gz" | sort -uV | tail -$listsize | grep -o "[0-9]\{1,2\}\.[0-9]\{1,2\}\.[0-9]\{1,2\}")
|
||||
|
||||
# extract the release numbers from the list of most recent releases
|
||||
for rtversion in $rt_releases
|
||||
do
|
||||
libversion=$(echo $rtversion | awk -F. -v OFS=. '{$2='$(( $(echo $rtversion | cut -d. -f2) + 4 ))'; print }')
|
||||
duoversion="$duoversion $libversion/$rtversion"
|
||||
done
|
||||
|
||||
# get the most recent release version number
|
||||
latest_duo=$(echo $duoversion | rev | cut -d' ' -f1 | rev)
|
||||
latest_libvers=$(echo $latest_duo | cut -d/ -f1)
|
||||
latest_rtvers=$(echo $latest_duo | cut -d/ -f2)
|
||||
|
||||
# checks if an application is installed
|
||||
installed() {
|
||||
hash $1 2>/dev/null
|
||||
}
|
||||
|
||||
#function to check if a web site is reachable
|
||||
check_url() {
|
||||
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
|
||||
list_version() {
|
||||
local verschoice
|
||||
ask_version() {
|
||||
while [ -z "$verschoice" ]
|
||||
do
|
||||
echo "Please select libtorrent/rtorrent version."
|
||||
@@ -75,16 +33,16 @@ do
|
||||
done
|
||||
}
|
||||
|
||||
ask_user(){
|
||||
local answer
|
||||
confirm_answer() {
|
||||
while true
|
||||
do
|
||||
read answer
|
||||
case $answer in [Yy]* ) return 0 ;;
|
||||
[Nn]* ) return 1 ;;
|
||||
* ) echo "Enter y or n";;
|
||||
esac
|
||||
done
|
||||
do
|
||||
read -p "Sure you wish to install libtorrent-"$libvers" and rtorrent-"$rtvers"?" answer
|
||||
case $answer in [Yy]* ) return 0 ;;
|
||||
[Nn]* ) exit ;;
|
||||
* ) echo "Enter y or n";;
|
||||
esac
|
||||
done
|
||||
|
||||
}
|
||||
|
||||
if [ "$(id -u)" != "0" ]; then
|
||||
@@ -92,153 +50,69 @@ if [ "$(id -u)" != "0" ]; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Check the libtorrent/rtorrent and xmlrpc sites are available
|
||||
xmlrpc_repo=0
|
||||
rt_repo=0
|
||||
echo
|
||||
echo "Checking File Repositories"
|
||||
|
||||
echo -n "xmlrpc-c: "; check_url $xmlrpc_url && echo "OK" || xmlrpc_repo=1
|
||||
|
||||
if [[ $xmlrpc_repo = 1 ]]; then
|
||||
xmlrpc_url=$xmlrpc_url_alt
|
||||
xmlrpcloc=$xmlrpcloc_alt
|
||||
check_url $xmlrpc_url && { echo "OK"; xmlrpc_repo=0; } || { echo "FAIL"; xmlrpc_repo=1; }
|
||||
fi
|
||||
|
||||
echo -n "rtorrent: "; check_url $sourcedir && echo "OK" || { echo "FAIL"; rt_repo=1; }
|
||||
|
||||
if [ $rt_repo = 1 ]; then
|
||||
echo "The libtorrent/rtorrent file repositoy is offline"
|
||||
echo "Try again later, you can check if the following address is online in your browser:"
|
||||
echo $sourcedir
|
||||
if ( installed rtorrent ); then
|
||||
rtorrent_current=$(rtorrent -h | grep -m 1 'version')
|
||||
rtorrent_current=${rtorrent_current#*version }
|
||||
echo "rtorrent $rtorrent_current detected"
|
||||
echo
|
||||
else
|
||||
echo "rtorrent NOT installed"
|
||||
echo "This script is for upgrading/downgrading only, not for initial install"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ $xmlrpc_repo = 1 ]; then
|
||||
if [ -d /usr/include/xmlrpc-c ]; then
|
||||
echo "xmlrpc repository is off line, but looks like it has already beed installed."
|
||||
echo "We will try and install rtorrent"
|
||||
else
|
||||
echo "The xmlrpc-c file repositoy is offline"
|
||||
echo "Try again later, you can check if the following address is online in your browser:"
|
||||
echo $xmlrpcloc
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ -z $passed_rtvers ]; then
|
||||
if ( installed rtorrent ); then
|
||||
rt_current=$(rtorrent -h | grep -om 1 "[0-9]\{1,2\}\.[0-9]\{1,2\}\.[0-9]\{1,2\}")
|
||||
echo "rtorrent $rt_current detected"
|
||||
else
|
||||
echo "rtorrent NOT installed"
|
||||
echo "This script is for upgrading/downgrading only, not for initial install"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# checks if the OS is debian 9, and forces the version to 0.9.7 of it is
|
||||
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"
|
||||
fi
|
||||
|
||||
list_version
|
||||
|
||||
echo "Install libtorrent-$libvers and rtorrent-$rtvers"
|
||||
echo "Your rtorrent config, torrents, and data will not be lost or changed"
|
||||
echo -n "Continue? "
|
||||
if ! ask_user; then
|
||||
exit
|
||||
fi
|
||||
else
|
||||
if [ "$passed_rtvers" = "latest" ] || [ $(wget -q -O - $sourcedir | grep -o "rtorrent-$passed_rtvers.tar.gz" | wc -l) -eq 0 ]; then
|
||||
if [ "$passed_rtvers" != "latest" ]; then
|
||||
echo " Could not find $passed_rtvers so using latest version instead"
|
||||
fi
|
||||
libvers=$latest_libvers
|
||||
rtvers=$latest_rtvers
|
||||
else
|
||||
libvers=$(echo $passed_rtvers | awk -F. -v OFS=. '{$2='$(( $(echo $rtversion | cut -d. -f2) + 4 ))'; print }')
|
||||
rtvers=$passed_rtvers
|
||||
fi
|
||||
|
||||
# checks if the OS is debian 9, and forces the version to 0.9.7 of it is
|
||||
if [ $rtdevrel = 0 ]; then
|
||||
libvers='0.13.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"
|
||||
fi
|
||||
|
||||
fi
|
||||
|
||||
if [ -z "$home" ]; then
|
||||
home=$HOME
|
||||
fi
|
||||
ask_version
|
||||
confirm_answer
|
||||
|
||||
echo
|
||||
echo "Installing libtorrent-$libvers/rtorrent-$rtvers"
|
||||
echo "Installing $libvers/$rtvers"
|
||||
|
||||
cd $home
|
||||
cd $HOME
|
||||
|
||||
if [ -d source ]; then
|
||||
cd source
|
||||
else
|
||||
mkdir source && cd source
|
||||
fi
|
||||
rm -rf xmlrpc libtorrent* rtorrent*
|
||||
rm -r -f libtorrent* rtorrent*
|
||||
|
||||
echo "Fetching source files"
|
||||
curl -# http://rtorrent.net/downloads/libtorrent-$libvers.tar.gz | tar xz
|
||||
curl -# http://rtorrent.net/downloads/rtorrent-$rtvers.tar.gz | tar xz
|
||||
|
||||
|
||||
#if [ $rtdevrel = 0 ]; then
|
||||
# git clone -q -b feature-bind --single-branch https://github.com/rakshasa/libtorrent.git libtorrent-$libvers
|
||||
# git clone -q -b feature-bind --single-branch https://github.com/rakshasa/rtorrent.git rtorrent-$rtvers
|
||||
#else
|
||||
curl -# http://rtorrent.net/downloads/libtorrent-$libvers.tar.gz | tar xz
|
||||
curl -# http://rtorrent.net/downloads/rtorrent-$rtvers.tar.gz | tar xz
|
||||
#fi
|
||||
|
||||
if [ $xmlrpc_repo = 0 ]; then
|
||||
svn co $xmlrpcloc xmlrpc >> $logfile 2>&1
|
||||
|
||||
cd xmlrpc
|
||||
echo "Installing xmlrpc" | tee -a $logfile
|
||||
./configure --prefix=/usr --disable-cplusplus >> $logfile 2>&1
|
||||
make -j$(nproc) >> $logfile 2>&1
|
||||
make -s install >> $logfile 2>&1
|
||||
cd ..
|
||||
echo "Compiling libtorrent"
|
||||
cd $HOME/source/libtorrent-$libvers
|
||||
./autogen.sh >> /dev/null 2>&1
|
||||
if [ "$OSNAME" = "Raspbian" ]; then
|
||||
./configure --prefix=/usr --disable-instrumentation >> /dev/null 2>&1
|
||||
else
|
||||
./configure --prefix=/usr >> /dev/null 2>&1
|
||||
fi
|
||||
make -j2 >> /dev/null 2>&1
|
||||
make install >> /dev/null 2>&1
|
||||
|
||||
cd libtorrent-$libvers
|
||||
echo "Installing libtorrent" | tee -a $logfile
|
||||
./autogen.sh >> $logfile 2>&1
|
||||
if [ $osname = "Raspbian" ]; then
|
||||
./configure --prefix=/usr --disable-instrumentation >> $logfile 2>&1
|
||||
else
|
||||
./configure --prefix=/usr >> $logfile 2>&1
|
||||
fi
|
||||
make -j$(nproc) >> $logfile 2>&1
|
||||
make -s install >> $logfile 2>&1
|
||||
echo "Compiling rtorrent"
|
||||
cd $HOME/source/rtorrent-$rtvers
|
||||
./autogen.sh >> /dev/null 2>&1
|
||||
./configure --prefix=/usr --with-xmlrpc-c >> /dev/null 2>&1
|
||||
make -j2 >> /dev/null 2>&1
|
||||
make install >> /dev/null 2>&1
|
||||
ldconfig
|
||||
|
||||
cd ../rtorrent-$rtvers
|
||||
echo "Installing rtorrent" | tee -a $logfile
|
||||
./autogen.sh >> $logfile 2>&1
|
||||
./configure --prefix=/usr --with-xmlrpc-c --enable-ipv6 >> $logfile 2>&1
|
||||
make -j$(nproc) >> $logfile 2>&1
|
||||
make -s install >> $logfile 2>&1
|
||||
ldconfig >> $logfile 2>&1
|
||||
cd /var/www/rutorrent/conf/users
|
||||
user_list=*
|
||||
|
||||
echo "$libvers/$rtvers installed"
|
||||
echo
|
||||
|
||||
if [ -d /var/www/rutorrent/conf/users ]; then
|
||||
cd /var/www/rutorrent/conf/users
|
||||
user_list=*
|
||||
for user in $user_list; do
|
||||
for user in $user_list
|
||||
do
|
||||
if [ ! "$user" = '*' ]; then
|
||||
echo "Restarting rtorrent for $user"
|
||||
su $user -c 'rt restart >> /dev/null 2>&1'
|
||||
fi
|
||||
done
|
||||
echo
|
||||
fi
|
||||
|
||||
cd $HOME
|
||||
|
||||
echo
|
||||
echo "$libvers/$rtvers installed"
|
||||
echo
|
||||
echo "Your .rtorrent.rc file, and download, watch, and .session directories have not been altered in any way"
|
||||
|
||||
@@ -1,57 +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
|
||||
#
|
||||
######################################################################
|
||||
|
||||
sourcedir='http://rtorrent.net/downloads/'
|
||||
rt_latest=$(wget -q -O - $sourcedir | grep -o "rtorrent-[0-9]\{1,2\}\.[0-9]\{1,2\}\.[0-9]\{1,2\}" | sort -uV | tail -1 | grep -o "[0-9]\{1,2\}\.[0-9]\{1,2\}\.[0-9]\{1,2\}")
|
||||
ru_latest=$(curl -s https://raw.githubusercontent.com/Novik/ruTorrent/master/js/webui.js | grep -m 1 version: | cut -d \" -f2)
|
||||
|
||||
# checks if an application is installed
|
||||
installed() {
|
||||
hash $1 2>/dev/null
|
||||
}
|
||||
|
||||
if ( installed rtorrent ); then
|
||||
rt_current=$(rtorrent -h | grep -om 1 "[0-9]\{1,2\}\.[0-9]\{1,2\}\.[0-9]\{1,2\}")
|
||||
echo "rtorrent installed: $rt_current"
|
||||
echo "rtorrent available: $rt_latest"
|
||||
else
|
||||
echo "rtorrent: not installed"
|
||||
fi
|
||||
|
||||
echo
|
||||
|
||||
if [ -d /var/www/rutorrent ]; then
|
||||
ru_current=$(grep -m 1 version: /var/www/rutorrent/js/webui.js | cut -d \" -f2)
|
||||
echo "RuTorrent installed: $ru_current"
|
||||
echo "RuTorrent available: $ru_latest"
|
||||
else
|
||||
echo "RuTorrent: not installed"
|
||||
fi
|
||||
|
||||
echo
|
||||
|
||||
echo "rtinst"
|
||||
cd /etc/rtinst
|
||||
branch=$(basename "$(git symbolic-ref -q HEAD)")
|
||||
if [ -z $branch ]; then
|
||||
branch=$(git describe --tags --exact-match)
|
||||
echo "Current Release: rtinst $branch"
|
||||
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)")
|
||||
if [ $branch = $latest ]; then
|
||||
echo "This is the latest release"
|
||||
else
|
||||
echo "Use rtsetup to update to rtinst $latest"
|
||||
fi
|
||||
fi
|
||||
else
|
||||
echo "Current Branch: $branch"
|
||||
echo "Use rtsetup to update branch"
|
||||
fi
|
||||
+2
-2
@@ -20,8 +20,8 @@ if [ $(dpkg-query -W -f='${Status}' webmin 2>/dev/null | grep -c "ok installed")
|
||||
echo "Installing Webmin"
|
||||
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 -
|
||||
apt-get -qq update
|
||||
apt-get -qq install webmin
|
||||
apt-get update >> /dev/null 2>&1
|
||||
apt-get -y install webmin >> /dev/null 2>&1
|
||||
else
|
||||
echo 'Webmin is already installed'
|
||||
fi
|
||||
|
||||
+24
-75
@@ -14,45 +14,19 @@ 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)
|
||||
|
||||
ruflag=0
|
||||
rurelease=$(git ls-remote -t https://github.com/Novik/ruTorrent v\* | cut -d/ -f3 | sort -V | tail -1)
|
||||
force_yes=1
|
||||
restore_old=1
|
||||
install_master=1
|
||||
|
||||
ask_restore() {
|
||||
if [ $force_yes = 0 ]; then
|
||||
return $restore_old
|
||||
else
|
||||
while true
|
||||
do
|
||||
echo "1. Restore rutorrent_old"
|
||||
echo "2. Upgrade to latest version"
|
||||
read -p "Select 1 or 2: " answer
|
||||
case $answer in [1]* ) return 0 ;;
|
||||
[2]* ) return 1 ;;
|
||||
ask_option() {
|
||||
while true
|
||||
do
|
||||
echo "1. Restore rutorrent_old"
|
||||
echo "2. Upgrade to latest version"
|
||||
read -p "Select 1 or 2: " answer
|
||||
case $answer in [1]* ) return 0 ;;
|
||||
[2]* ) return 1 ;;
|
||||
esac
|
||||
done
|
||||
fi
|
||||
}
|
||||
|
||||
ask_version() {
|
||||
if [ $force_yes = 0 ]; then
|
||||
return $install_master
|
||||
else
|
||||
echo "Choose which build to install, (if you are not sure select 1)"
|
||||
while true
|
||||
do
|
||||
echo "1. Use the latest stable release"
|
||||
echo "2. Use the most recent master build"
|
||||
read -p "Select 1 or 2: " answer
|
||||
case $answer in [1]* ) return 1 ;;
|
||||
[2]* ) return 0 ;;
|
||||
esac
|
||||
done
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
check_user() {
|
||||
while true
|
||||
do
|
||||
@@ -69,21 +43,6 @@ if [ "$(id -u)" != "0" ]; then
|
||||
echo "Must be run from root or using sudo" && exit 1
|
||||
fi
|
||||
|
||||
# get options
|
||||
OPTS=$(getopt -n "$0" -o myo --long "rutorrent-master,force-yes,restore-old" -- "$@")
|
||||
|
||||
eval set -- "$OPTS"
|
||||
|
||||
while true; do
|
||||
case "$1" in
|
||||
-m | --rutorrent-master ) install_master=0; shift;;
|
||||
-y | --force-yes ) force_yes=0; shift;;
|
||||
-o | --restore-old ) restore_old=0; shift;;
|
||||
-- ) shift; break ;;
|
||||
* ) break ;;
|
||||
esac
|
||||
done
|
||||
|
||||
#check rutorrent folder exists
|
||||
if ! [ -d '/var/www/rutorrent' ]; then
|
||||
echo 'Could not find /var/www/rutorrent, exiting script'
|
||||
@@ -91,33 +50,31 @@ exit
|
||||
fi
|
||||
|
||||
#check versions
|
||||
echo "Installed version: "$oldvers
|
||||
echo " Latest version: "$newvers
|
||||
|
||||
if [ -d $HOME'/rutorrent_old' ]; then
|
||||
echo
|
||||
echo "A previous backup is available to restore"
|
||||
echo
|
||||
if [ '$newvers' = '$oldvers' ]; then
|
||||
echo "You have the latest version: "$newvers
|
||||
else
|
||||
echo "Installed version: "$oldvers
|
||||
echo " Latest version: "$newvers
|
||||
fi
|
||||
|
||||
if [ $restore_old = 0 ] && ! [ -d $HOME'/rutorrent_old' ]; then
|
||||
echo "No backup available to do a restore"
|
||||
if ! ( check_user ); then
|
||||
exit
|
||||
fi
|
||||
|
||||
#check to see if rutorrent_old exists, offer restore or upgrade options
|
||||
if [ -d $HOME'/rutorrent_old' ];then
|
||||
echo 'Detected '$HOME'/rutorrent_old'
|
||||
if ( ask_restore ); then
|
||||
if ( ask_option ); then
|
||||
echo "Restoring Old version of rutorrent"
|
||||
echo "WARNING: The current rutorrent will be overwitten by older backup"
|
||||
ruflag=1
|
||||
if [ $force_yes = 0 ] || ( check_user ); then
|
||||
if ( check_user ); then
|
||||
echo "Restoring"
|
||||
rm -r /var/www/rutorrent
|
||||
mv -f $HOME/rutorrent_old /var/www/rutorrent
|
||||
echo "Setting permissions, Starting services"
|
||||
chown -R www-data:www-data /var/www
|
||||
chmod -R 755 /var/www/rutorrent
|
||||
echo "Done"
|
||||
else
|
||||
exit
|
||||
@@ -125,8 +82,8 @@ echo 'Detected '$HOME'/rutorrent_old'
|
||||
else
|
||||
echo "Rutorrent will be upgraded"
|
||||
echo "WARNING: rutorrent_old will be deleted"
|
||||
echo "If you wish to retain this older version you should exit this script, and rename or move it"
|
||||
if [ $force_yes = 0 ] || ( check_user ); then
|
||||
echo "If you wish to retain this older version you should exit this script, and rename or move it"
|
||||
if ( check_user ); then
|
||||
ruflag=0
|
||||
else
|
||||
exit
|
||||
@@ -136,13 +93,9 @@ fi
|
||||
|
||||
if [ $ruflag = 0 ]; then
|
||||
|
||||
if ( ask_version ); then
|
||||
rurelease=master
|
||||
fi
|
||||
|
||||
if [ -d $HOME'/rutorrent_old' ]; then
|
||||
rm -r $HOME/rutorrent_old
|
||||
echo "rutorrent_old has been deleted"
|
||||
echo "rutorrent_old has been deleted"
|
||||
fi
|
||||
|
||||
echo
|
||||
@@ -153,13 +106,10 @@ if [ $ruflag = 0 ]; then
|
||||
echo
|
||||
|
||||
mv -f /var/www/rutorrent $HOME/rutorrent_old
|
||||
echo "Installing Rutorrent ($rurelease)"
|
||||
wget -q https://github.com/Novik/ruTorrent/archive/$rurelease.tar.gz
|
||||
tar -xzf $rurelease.tar.gz
|
||||
mv -f $(tar -tzf $rurelease.tar.gz | head -1) /var/www/rutorrent
|
||||
rm $rurelease.tar.gz
|
||||
|
||||
git clone -q https://github.com/autodl-community/autodl-rutorrent.git /var/www/rutorrent/plugins/autodl-irssi
|
||||
echo "Installing Rutorrent "$newvers
|
||||
git clone https://github.com/Novik/ruTorrent.git /var/www/rutorrent >> /dev/null 2>&1
|
||||
git clone https://github.com/autodl-community/autodl-rutorrent.git /var/www/rutorrent/plugins/autodl-irssi >> /dev/null 2>&1
|
||||
|
||||
rm -r /var/www/rutorrent/conf >> /dev/null 2>&1
|
||||
cp -r $HOME/rutorrent_old/conf /var/www/rutorrent/conf >> /dev/null 2>&1
|
||||
@@ -167,6 +117,5 @@ if [ $ruflag = 0 ]; then
|
||||
cp -r $HOME/rutorrent_old/share /var/www/rutorrent/share >> /dev/null 2>&1
|
||||
echo "Setting permissions, Starting services"
|
||||
chown -R www-data:www-data /var/www
|
||||
echo
|
||||
echo "Installation of RuTorrent complete"
|
||||
chmod -R 755 /var/www/rutorrent
|
||||
fi
|
||||
|
||||
Reference in New Issue
Block a user