mirror of
https://github.com/elisspace/rtinst.git
synced 2026-08-29 23:52:13 +00:00
1087 lines
35 KiB
Bash
Executable File
1087 lines
35 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
#########################################################################################
|
|
#
|
|
# Copyright (c) 2015 arakasi72 (https://github.com/arakasi72)
|
|
#
|
|
# --> Licensed under the MIT license: http://www.opensource.org/licenses/mit-license.php
|
|
#
|
|
#########################################################################################
|
|
|
|
|
|
###############################
|
|
### FUNCTIONS ###
|
|
###############################
|
|
|
|
#function to check if a web site is reachable
|
|
check_url() {
|
|
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
|
|
installed() {
|
|
hash $1 2>/dev/null
|
|
}
|
|
|
|
#function to check if string is valid format for an ip address
|
|
valid_ip()
|
|
{
|
|
local ip=${1:-1.2.3.4}
|
|
local i
|
|
if expr "$ip" : '[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*$' >/dev/null; then
|
|
for i in 1 2 3 4; do
|
|
if [ $(echo "$ip" | cut -d. -f$i) -gt 255 ]; then
|
|
return 1
|
|
fi
|
|
done
|
|
return 0
|
|
else
|
|
return 1
|
|
fi
|
|
}
|
|
|
|
#function to determin if unix user name is valid
|
|
valid_name(){
|
|
until [[ $user =~ ^[a-z][-a-z0-9_]{2,31}$ ]]
|
|
do
|
|
echo "Enter user name (lowercase, numbers, dash and underscore):"
|
|
read user
|
|
done
|
|
}
|
|
|
|
|
|
|
|
|
|
#function to generate random password
|
|
genpasswd() {
|
|
local genln=$1
|
|
[ -z "$genln" ] && genln=8
|
|
tr -dc A-Za-z0-9 < /dev/urandom | head -c ${genln} | xargs
|
|
}
|
|
|
|
#function executed if the script finishes early
|
|
early_exit() {
|
|
local rt_ee_version
|
|
echo "Installation is incomplete. Run rtinst again to complete"
|
|
echo
|
|
if hash rtorrent >> /dev/null 2>&1; then
|
|
rt_ee_version=$(rtorrent -h | grep -om 1 "[0-9]\{1,2\}\.[0-9]\{1,2\}\.[0-9]\{1,2\}")
|
|
echo "rtorrent $rt_ee_version 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
|
|
local exitvalue=0
|
|
local password1
|
|
local password2
|
|
|
|
exec 3>&1 >/dev/tty
|
|
|
|
echo "Enter a password (6+ chars)"
|
|
echo "or leave blank to generate a random one"
|
|
|
|
while [ -z $localpass ]
|
|
do
|
|
echo "Please enter the new password:"
|
|
stty -echo
|
|
read password1
|
|
stty echo
|
|
|
|
# check that password is valid
|
|
if [ -z $password1 ]; then
|
|
echo "Random password generated, will be provided to user at end of script"
|
|
exitvalue=1
|
|
localpass=$(genpasswd)
|
|
elif [ ${#password1} -lt 6 ]; then
|
|
echo "password needs to be at least 6 chars long" && continue
|
|
else
|
|
echo "Enter the new password again:"
|
|
stty -echo
|
|
read password2
|
|
stty echo
|
|
|
|
# Check both passwords match
|
|
if [ $password1 != $password2 ]; then
|
|
echo "Passwords do not match"
|
|
else
|
|
localpass=$password1
|
|
fi
|
|
fi
|
|
done
|
|
|
|
exec >&3-
|
|
echo $localpass
|
|
return $exitvalue
|
|
}
|
|
|
|
#function to determine random number between 2 numbers
|
|
random()
|
|
{
|
|
local min=$1
|
|
local max=$2
|
|
local RAND=`od -t uI -N 4 /dev/urandom | awk '{print $2}'`
|
|
RAND=$((RAND%((($max-$min)+1))+$min))
|
|
echo $RAND
|
|
}
|
|
|
|
# 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
|
|
}
|
|
|
|
# function to enter IP address
|
|
enter_ip() {
|
|
local ip_address=$1
|
|
|
|
exec 3>&1 >/dev/tty
|
|
|
|
while true
|
|
do
|
|
if valid_ip $ip_address ; then
|
|
echo "Your Server IP is $ip_address"
|
|
echo -n "Is this correct y/n? "
|
|
ask_user && break
|
|
else
|
|
echo "Invalid IP address, please try again"
|
|
fi
|
|
|
|
echo "enter your server's IP address"
|
|
echo "e.g. 213.0.113.113"
|
|
read ip_address
|
|
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" ]; 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" ]; 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)
|
|
|
|
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 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
|
|
|
|
|
|
|
|
###############################
|
|
### INITIAL SYSTEM CHECKS ###
|
|
###############################
|
|
|
|
#check it is being run as root
|
|
if [ "$(id -u)" != "0" ]; then
|
|
echo "Must be run from root or using sudo" && exit 1
|
|
fi
|
|
|
|
# determine system
|
|
if ([ "$osname" = "Ubuntu" ] && [ $relno -ge 16 ]) || ([ "$osname" = "Debian" ] && [ $relno -ge 9 ]) || ([ "$osname" = "Raspbian" ] && [ $relno -ge 9 ]); then
|
|
echo $fullrel
|
|
else
|
|
echo $fullrel
|
|
echo "Only Ubuntu release 16 and later, and Debian and Raspbian release 9 and later, 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:" -- "$@")
|
|
|
|
eval set -- "$OPTS"
|
|
|
|
while true; do
|
|
case "$1" in
|
|
-d | --dload ) dlflag=0; shift ;;
|
|
-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;;
|
|
-- ) shift; break ;;
|
|
* ) break ;;
|
|
esac
|
|
done
|
|
|
|
# Check if there is more than 0 argument
|
|
if [ $# -gt 0 ]; then
|
|
echo "No arguments allowed $1 is not a valid argument"
|
|
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 ] && serverip=$(enter_ip $serverip)
|
|
|
|
echo "Your server's IP is set to $serverip"
|
|
export serverip
|
|
|
|
# Determine domain name using server ip address
|
|
export serverdn=$(perl -MSocket -le "print((gethostbyaddr(inet_aton('$serverip'), AF_INET))[0])")
|
|
if [ -z "$serverdn" ]; then
|
|
echo "Unable to determine domain"
|
|
else
|
|
echo "Your domain is set to $serverdn"
|
|
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 [ $forceyes = 1 ]; then
|
|
echo "rtorrent $rt_current has been detected."
|
|
echo -n "Do you wish to skip rtorrent compilation? "
|
|
if ask_user; then
|
|
skip_rt=0
|
|
echo "rtorrent installation will be skipped."
|
|
else
|
|
skip_rt=1
|
|
echo "rtorrent will be re-installed"
|
|
fi
|
|
else
|
|
skip_rt=0
|
|
echo "rtorrent $rt_current has been detected."
|
|
echo "rtorrent installation will be skipped."
|
|
fi
|
|
fi
|
|
|
|
###############################
|
|
### PREPARE SYSTEM ###
|
|
###############################
|
|
|
|
# set and prepare user
|
|
if [ -z "$user" ]; then
|
|
if [ "$SUDO_USER" = "root" ] || [ -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"
|
|
echo
|
|
confirm_name=1
|
|
while [ $confirm_name = 1 ]
|
|
do
|
|
valid_name
|
|
echo -n "Confirm that user name is $user y/n? "
|
|
if ask_user; then
|
|
confirm_name=0
|
|
else
|
|
user=''
|
|
fi
|
|
done
|
|
else
|
|
user=$SUDO_USER
|
|
fi
|
|
else
|
|
if ! [[ $user =~ ^[a-z][-a-z0-9_]{2,31}$ ]]; then
|
|
echo "$user is not a valid user name please enter again"
|
|
confirm_name=1
|
|
while [ $confirm_name = 1 ]
|
|
do
|
|
valid_name
|
|
echo -n "Confirm that user name is $user y/n? "
|
|
if ask_user; then
|
|
confirm_name=0
|
|
else
|
|
user=''
|
|
fi
|
|
done
|
|
fi
|
|
fi
|
|
|
|
echo "User name is $user"
|
|
|
|
if id -u $user >/dev/null 2>&1; then
|
|
echo "$user already exists"
|
|
else
|
|
if [ -z "$unixpass" ]; then
|
|
adduser --gecos "" $user
|
|
else
|
|
adduser --gecos "" $user --disabled-password
|
|
echo "$user:$unixpass" | chpasswd
|
|
fi
|
|
|
|
if id -u $user >/dev/null 2>&1; then
|
|
echo "$user successfully created"
|
|
else
|
|
echo "create user failed - exiting process"
|
|
exit 1
|
|
fi
|
|
|
|
fi
|
|
|
|
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
|
|
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
|
|
fi
|
|
|
|
#Interaction ended message
|
|
echo
|
|
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
|
|
sleep 5
|
|
fi
|
|
|
|
#update amd upgrade system
|
|
echo "Updating package lists" | tee $logfile
|
|
apt-get -qq update | tee -a $logfile
|
|
|
|
echo "Upgrading packages" | tee -a $logfile
|
|
export DEBIAN_FRONTEND=noninteractive
|
|
apt-get -qq upgrade >> $logfile 2>&1
|
|
if ! [ $? = 0 ]; then
|
|
echo "Problem upgrading packages. Run 'apt-get upgrade' successfully and rerun the script" && exit
|
|
fi
|
|
|
|
apt-get clean && apt-get autoclean >> $logfile 2>&1
|
|
|
|
#install the packsges needed
|
|
echo "Installing required packages" | tee -a $logfile
|
|
apt-get install libtool -y >> $logfile 2>&1
|
|
for package_name in $package_list
|
|
do
|
|
if [ $(apt-cache show -q=0 $package_name 2>&1 | grep -c "No packages found") -eq 0 ]; then
|
|
if [ $(dpkg-query -W -f='${Status}' $package_name 2>/dev/null | grep -c "ok installed") -eq 0 ]; then
|
|
install_list="$install_list $package_name"
|
|
fi
|
|
else
|
|
echo $package_name" not found, skipping"
|
|
fi
|
|
done
|
|
|
|
# Installs a package needed to prevent arm64 architectures from "WARNING: Unable to start rtorrent"
|
|
if [ "$(uname --m)" == "aarch64" ] || [ "$(dpkg --print-architecture)" == "arm64" ] ; then
|
|
sudo apt-get install libxmlrpc-core-c3-dev -y >> $logfile 2>&1
|
|
fi
|
|
|
|
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
|
|
|
|
#install unrar package
|
|
if [ $osname = "Debian" ] && ! installed unrar; then
|
|
echo "Installing rar/unrar"
|
|
cd $home
|
|
attempts=0
|
|
until [ -d rar ] || [ $attempts -gt 5 ]
|
|
do
|
|
attempts=$(( $attempts + 1 ))
|
|
if [ "$(uname -m)" = "x86_64" ]; then
|
|
wget http://www.rarlab.com/rar/rarlinux-x64-5.7.1.tar.gz >> $logfile 2>&1
|
|
tar xvzf rarlinux-x64-5.7.1.tar.gz >> $logfile 2>&1
|
|
rm rarlinux-x64-5.7.1.tar.gz
|
|
elif [ "$(uname -m)" = "x86_32" ]; then
|
|
wget http://www.rarlab.com/rar/rarlinux-5.7.1.tar.gz >> $logfile 2>&1
|
|
tar xvzf rarlinux-5.7.1.tar.gz >> $logfile 2>&1
|
|
rm rarlinux-5.7.1.tar.gz
|
|
fi
|
|
done
|
|
if [ -d rar ]; then
|
|
cp $home/rar/rar /bin/rar
|
|
cp $home/rar/unrar /bin/unrar
|
|
rm -r $home/rar
|
|
fi
|
|
elif [ $osname = "Ubuntu" ]; then
|
|
apt-get -qq install unrar >> $logfile 2>&1
|
|
fi
|
|
|
|
if installed unrar; then
|
|
echo "rar/unrar installed"
|
|
else
|
|
echo "rar/unrar install failed"
|
|
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
|
|
fi
|
|
|
|
echo "Completed installation of required packages "
|
|
|
|
#add user to sudo group if not already
|
|
if groups $user | grep -q -E ' sudo(\s|$)'; then
|
|
echo "$user already has sudo privileges"
|
|
else
|
|
adduser $user sudo
|
|
fi
|
|
|
|
cd $home
|
|
|
|
#raise file limits
|
|
sed -i '/hard nofile/ d' /etc/security/limits.conf
|
|
sed -i '/soft nofile/ d' /etc/security/limits.conf
|
|
sed -i '$ i\* hard nofile 32768\n* soft nofile 16384' /etc/security/limits.conf
|
|
|
|
|
|
###############################
|
|
### CONFIGURE SSH ###
|
|
###############################
|
|
|
|
echo "Configuring SSH" | tee -a $logfile
|
|
|
|
oldsshport=$(grep -P '^[#\s]*Port ' /etc/ssh/sshd_config | sed 's/[^0-9]*//g')
|
|
|
|
if [ "$portdefault" = "0" ]; then
|
|
sshport=22
|
|
elif [ "$oldsshport" = "22" ] && [ "$portdefault" = "1" ]; then
|
|
sshport=$(random 21000 29000)
|
|
else
|
|
sshport=$oldsshport
|
|
fi
|
|
|
|
sed -i "/^\(\s\|#\)*Port / c\Port $sshport" /etc/ssh/sshd_config
|
|
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
|
|
|
|
if [ -z "$(grep sshuser /etc/group)" ]; then
|
|
groupadd sshuser
|
|
fi
|
|
|
|
allowlist=$(grep ^AllowUsers /etc/ssh/sshd_config)
|
|
if ! [ -z "$allowlist" ]; then
|
|
for ssh_user in $allowlist
|
|
do
|
|
if [ ! "$ssh_user" = "AllowUsers" ] && [ "$(groups $ssh_user 2> /dev/null | grep -E ' sudo(\s|$)')" = "" ]; then
|
|
adduser $ssh_user sshuser
|
|
fi
|
|
done
|
|
sed -i "/$allowlist/ d" /etc/ssh/sshd_config
|
|
fi
|
|
grep "AllowGroups sudo sshuser" /etc/ssh/sshd_config > /dev/null || echo "AllowGroups sudo sshuser" >> /etc/ssh/sshd_config
|
|
|
|
service ssh restart 1>> $logfile
|
|
sshport=$(grep 'Port ' /etc/ssh/sshd_config | sed 's/[^0-9]*//g')
|
|
echo "SSH port set to $sshport"
|
|
|
|
###############################
|
|
### SSL CERTIFICATES ###
|
|
###############################
|
|
|
|
# calls the script rtsslcert to generate the ssl certificated for vsftpd and nginx
|
|
if rtletsencrypt ; then
|
|
leflag=0
|
|
echo "Lets Encrypt Certificates installed"
|
|
else
|
|
rtsslcert -d
|
|
leflag=1
|
|
echo "Self signed certificats installed"
|
|
fi
|
|
|
|
###############################
|
|
### INSTALL FTP ###
|
|
###############################
|
|
|
|
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
|
|
fi
|
|
|
|
sed -i '/^\(\s\|#\)*anonymous_enable/ c\anonymous_enable=NO' /etc/vsftpd.conf
|
|
sed -i '/^\(\s\|#\)*local_enable/ c\local_enable=YES' /etc/vsftpd.conf
|
|
sed -i '/^\(\s\|#\)*write_enable/ c\write_enable=YES' /etc/vsftpd.conf
|
|
sed -i '/^\(\s\|#\)*local_umask/ c\local_umask=022' /etc/vsftpd.conf
|
|
sed -i '/^\(\s\|#\)*listen=/ c\listen=YES' /etc/vsftpd.conf
|
|
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
|
|
|
|
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
|
|
grep -Pq "^\s*allow_anon_ssl" /etc/vsftpd.conf && sed -i '/^\s*allow_anon_ssl/ c\allow_anon_ssl=NO' /etc/vsftpd.conf || echo "allow_anon_ssl=NO" >> /etc/vsftpd.conf
|
|
grep -Pq "^\s*force_local_data_ssl" /etc/vsftpd.conf && sed -i '/^\s*force_local_data_ssl/ c\force_local_data_ssl=YES' /etc/vsftpd.conf || echo "force_local_data_ssl=YES" >> /etc/vsftpd.conf
|
|
grep -Pq "^\s*force_local_logins_ssl" /etc/vsftpd.conf && sed -i '/^\s*force_local_logins_ssl/ c\force_local_logins_ssl=YES' /etc/vsftpd.conf || echo "force_local_logins_ssl=YES" >> /etc/vsftpd.conf
|
|
grep -Pq "^\s*ssl_sslv2" /etc/vsftpd.conf && sed -i '/^\s*ssl_sslv2/ c\ssl_sslv2=YES' /etc/vsftpd.conf || echo "ssl_sslv2=YES" >> /etc/vsftpd.conf
|
|
grep -Pq "^\s*ssl_sslv3" /etc/vsftpd.conf && sed -i '/^\s*ssl_sslv3/ c\ssl_sslv3=YES' /etc/vsftpd.conf || echo "ssl_sslv3=YES" >> /etc/vsftpd.conf
|
|
grep -Pq "^\s*ssl_tlsv1" /etc/vsftpd.conf && sed -i '/^\s*ssl_tlsv1/ c\ssl_tlsv1=YES' /etc/vsftpd.conf || echo "ssl_tlsv1=YES" >> /etc/vsftpd.conf
|
|
grep -Pq "^\s*require_ssl_reuse" /etc/vsftpd.conf && sed -i '/^\s*require_ssl_reuse/ c\require_ssl_reuse=NO' /etc/vsftpd.conf || echo "require_ssl_reuse=NO" >> /etc/vsftpd.conf
|
|
grep -Pq "^\s*ssl_ciphers" /etc/vsftpd.conf && sed -i '/^\s*ssl_ciphers/ c\ssl_ciphers=HIGH' /etc/vsftpd.conf || echo "ssl_ciphers=HIGH" >> /etc/vsftpd.conf
|
|
|
|
if [ $leflag = 0 ]; then
|
|
sed -i "/^\(\s\|#\)*rsa_cert_file/ c\rsa_cert_file=/etc/letsencrypt/live/$serverdn/fullchain.pem" /etc/vsftpd.conf
|
|
sed -i "/^\(\s\|#\)*rsa_private_key_file/ c\rsa_private_key_file=/etc/letsencrypt/live/$serverdn/privkey.pem" /etc/vsftpd.conf
|
|
fi
|
|
|
|
service vsftpd restart 1>> $logfile
|
|
|
|
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
|
|
|
|
if [ $leflag = 0 ]; then
|
|
sed -i "/^\(\s\|#\)*server_name/ c\ server_name $serverdn;" /etc/nginx/sites-available/default
|
|
sed -i "/ssl_certificate / c\ ssl_certificate /etc/letsencrypt/live/$serverdn/fullchain.pem;" /etc/nginx/sites-available/default
|
|
sed -i "/ssl_certificate_key / c\ ssl_certificate_key /etc/letsencrypt/live/$serverdn/privkey.pem;" /etc/nginx/sites-available/default
|
|
else
|
|
sed -i "/^\(\s\|#\)*server_name/ c\ server_name $serverip;" /etc/nginx/sites-available/default
|
|
fi
|
|
|
|
service nginx restart && service $phpver-fpm restart
|
|
|
|
if [ $dlflag = 0 ]; then
|
|
rtdload enable
|
|
fi
|
|
|
|
###############################
|
|
### INSTALL RTORRENT ###
|
|
###############################
|
|
|
|
if [ $skip_rt = 1 ]; then
|
|
if [ -z $rtorrentrel ]; then
|
|
rtorrentrel='latest'
|
|
fi
|
|
export home
|
|
# call the script rtupdate to install lib/rtorrent
|
|
rtupdate $rtorrentrel || early_exit
|
|
export -n home
|
|
else
|
|
echo "skiping rtorrent installation" | tee -a $logfile
|
|
fi
|
|
|
|
echo "Configuring rtorrent" | tee -a $logfile
|
|
cd $home
|
|
|
|
mkdir -p rtorrent/.session
|
|
mkdir -p rtorrent/download
|
|
mkdir -p rtorrent/watch
|
|
|
|
cp -f /etc/rtinst/conf/rtorrent.rc $home/.rtorrent.rc
|
|
sed -i "s|<user home>|${home}|g" $home/.rtorrent.rc
|
|
sed -i "s/<user name>/$user/g" $home/.rtorrent.rc
|
|
|
|
###############################
|
|
### INSTALL RUTORRENT ###
|
|
###############################
|
|
|
|
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
|
|
|
|
echo "Configuring Rutorrent" | tee -a $logfile
|
|
rm rutorrent/conf/config.php
|
|
cp -f /etc/rtinst/conf/ru.config /var/www/rutorrent/conf/config.php
|
|
mkdir -p /var/www/rutorrent/conf/users/$user/plugins
|
|
|
|
echo "<?php" > /var/www/rutorrent/conf/users/$user/config.php
|
|
echo >> /var/www/rutorrent/conf/users/$user/config.php
|
|
echo "\$homeDirectory = \"$home\";" >> /var/www/rutorrent/conf/users/$user/config.php
|
|
echo "\$topDirectory = \"$home\";" >> /var/www/rutorrent/conf/users/$user/config.php
|
|
echo "\$scgi_port = 5000;" >> /var/www/rutorrent/conf/users/$user/config.php
|
|
echo "\$XMLRPCMountPoint = \"/RPC2\";" >> /var/www/rutorrent/conf/users/$user/config.php
|
|
echo >> /var/www/rutorrent/conf/users/$user/config.php
|
|
echo "?>" >> /var/www/rutorrent/conf/users/$user/config.php
|
|
|
|
cp -f /etc/rtinst/conf/ru.ini /var/www/rutorrent/conf/plugins.ini
|
|
if [ $osname = "Raspbian" ]; then
|
|
sed -i '/\[screenshots\]/,+1d' /var/www/rutorrent/conf/plugins.ini
|
|
sed -i '/\[unpack\]/,+1d' /var/www/rutorrent/conf/plugins.ini
|
|
echo '[screenshots]' >> /var/www/rutorrent/conf/plugins.ini
|
|
echo 'enabled = no' >> /var/www/rutorrent/conf/plugins.ini
|
|
echo '[unpack]' >> /var/www/rutorrent/conf/plugins.ini
|
|
echo 'enabled = no' >> /var/www/rutorrent/conf/plugins.ini
|
|
fi
|
|
|
|
###############################
|
|
### INSTALL AUTODL-IRSSI ###
|
|
###############################
|
|
|
|
echo "Installing autodl-irssi" | tee -a $logfile
|
|
adlport=$(random 36001 36100)
|
|
adlpass=$(genpasswd $(random 12 16))
|
|
|
|
mkdir -p $home/.irssi/scripts/autorun
|
|
cd $home/.irssi/scripts
|
|
curl -sL http://git.io/vlcND | sed -n 's/.*browser_download_url": \?"\(.*zip\)".*/\1/p' | xargs wget --quiet -O autodl-irssi.zip
|
|
unzip -qq -o autodl-irssi.zip | tee -a $logfile
|
|
rm autodl-irssi.zip
|
|
cp autodl-irssi.pl autorun/
|
|
mkdir -p $home/.autodl
|
|
|
|
cd /var/www/rutorrent/plugins
|
|
git clone -q https://github.com/autodl-community/autodl-rutorrent.git autodl-irssi | tee -a $home/rtinst.info
|
|
|
|
mkdir /var/www/rutorrent/conf/users/$user/plugins/autodl-irssi
|
|
|
|
touch /var/www/rutorrent/conf/users/$user/plugins/autodl-irssi/conf.php
|
|
|
|
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
|
|
echo "\$autodlPort = $adlport;" >> /var/www/rutorrent/conf/users/$user/plugins/autodl-irssi/conf.php
|
|
echo "\$autodlPassword = \"$adlpass\";" >> /var/www/rutorrent/conf/users/$user/plugins/autodl-irssi/conf.php
|
|
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
|
|
|
|
###############################
|
|
### FINAL TASKS ###
|
|
###############################
|
|
|
|
# set permissions
|
|
echo "Setting permissions, Starting services" | tee -a $logfile
|
|
chown -R www-data:www-data /var/www
|
|
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
|
|
if [ -z "$(grep "ALL ALL = NOPASSWD: /usr/local/bin/rtsetpass" /etc/sudoers)" ]; then
|
|
echo "ALL ALL = NOPASSWD: /usr/local/bin/rtsetpass" | (EDITOR="tee -a" visudo) > /dev/null 2>&1
|
|
fi
|
|
|
|
# restart rtorrent and irssi
|
|
su $user -c '/usr/local/bin/rt restart'
|
|
su $user -c '/usr/local/bin/rt -i restart'
|
|
|
|
# set up crontab entries
|
|
if [ -z "$(crontab -u $user -l | grep "$cronline1")" ]; then
|
|
(crontab -u $user -l; echo "$cronline1" ) | crontab -u $user - >> $logfile 2>&1
|
|
fi
|
|
|
|
if [ -z "$(crontab -u $user -l | grep "\*/10 \* \* \* \* /usr/local/bin/rtcheck irssi rtorrent")" ]; then
|
|
(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
|
|
echo "Summary of Installation (Important Information, please read" | tee $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
|
|
else
|
|
echo " vsftpd is not installed" | 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
|
|
|
|
if [ $leflag = 0 ]; then
|
|
echo " rutorrent can be accessed at https://$serverdn/rutorrent" | tee -a $home/rtinst.info
|
|
else
|
|
echo " rutorrent can be accessed at https://$serverip/rutorrent" | tee -a $home/rtinst.info
|
|
fi
|
|
|
|
if [ $passflag = 1 ]; then
|
|
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
|
|
|
|
if [ $leflag = 0 ]; then
|
|
echo " If enabled, access https downloads at https://$serverdn/download/$user" | tee -a $home/rtinst.info
|
|
else
|
|
echo " If enabled, access https downloads at https://$serverip/download/$user" | tee -a $home/rtinst.info
|
|
fi
|
|
fi
|
|
|
|
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
|
|
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
|