Compare commits

...
17 Commits
Author SHA1 Message Date
arakasi72 bfee5f27fe Merge pull request #432 from V33m/patch-1
Fixes issues #246 and #431
2019-09-12 21:44:33 +01:00
V33m 2f7ad34e5b [arm64] Fixes "WARNING: Unable to start rtorrent"
If the package libxmlrpc-core-c3-dev is not installed on an arm64 system, rTorrent won't be able to run and you'll get the following error - WARNING: Unable to start rtorrent

Fixes the issue: https://github.com/arakasi72/rtinst/issues/246
2019-09-11 11:45:37 +02:00
V33m 0652fe19eb Adds fallback to lsb_release if output is empty
As (lsb_release -si) or (lsb_release -sr | cut -d. -f1) might not return any name or value, one should add a fallback to prevent the script from not finding the proper OS name or version ID. 

Fixes the issue: https://github.com/arakasi72/rtinst/issues/431
2019-09-11 11:36:02 +02:00
arakasi72 90072e5226 Update rtinst 2019-09-09 00:50:10 +01:00
arakasi72 ab34ec9fd4 Update nginxsite 2019-09-02 22:26:14 +01:00
arakasi72 4ca8cbc9a4 Update rtinst 2019-08-12 22:38:59 +01:00
arakasi72 2dd915d800 Update README.md 2019-08-10 00:30:31 +01:00
arakasi72 2ecf699e9d Update rtwebmin 2019-08-08 08:43:44 +01:00
arakasi72 3b2b6789a2 Develop (#424)
* Update rtinst

* Update rtinst

* Update rtinst

* Update rtorrent.rc

* Update rtadduser

* Update rtadduser

* Update rtadduser

* Update rtadduser

* Update rtadduser

* Update rtadduser

* Update rtadduser

* Update rtletsencrypt
2019-08-07 19:00:54 +01:00
arakasi72 bb7e6bf87b Update nginxsite 2019-08-04 15:14:45 +01:00
arakasi72 2d2d1dff59 Update rtinst 2019-08-04 13:43:22 +01:00
arakasi72 1f2a1b1f29 Update rtsslcert 2019-08-04 13:34:52 +01:00
arakasi72 334659eb40 Update nginxsite 2019-08-04 13:26:53 +01:00
arakasi72 6a8bbafe95 Update nginxsite 2019-08-04 13:25:44 +01:00
arakasi72 78d70f57cd Update nginxsite 2019-08-04 13:23:37 +01:00
arakasi72 060a4b7660 Update rtinst 2019-08-02 22:33:55 +01:00
arakasi72 4ead4b71e1 Update rtinst 2019-08-02 14:33:57 +01:00
8 changed files with 154 additions and 56 deletions
+6 -6
View File
@@ -25,16 +25,16 @@ It takes about 10 minutes to run, depending on your server setup. After you have
It has been tested with clean installs of:
Ubuntu 12 (unsupported)
Ubuntu 13 (unsupported)
Ubuntu 14 (unsupported)
Ubuntu 15 (unsupported)
Ubuntu 12 (old release)
Ubuntu 13 (old release)
Ubuntu 14 (old release)
Ubuntu 15 (old release)
Ubuntu 16
Ubuntu 17
Ubuntu 18
Ubuntu 19
Debian 7 "Wheezy" (unsupported)
Debian 8 "Jessie" (unsupported)
Debian 7 "Wheezy" (old release)
Debian 8 "Jessie" (old release)
Debian 9 "Stretch"
Debian 10 "Buster"
+6 -2
View File
@@ -1,5 +1,6 @@
server {
listen 80;
listen [::]:80;
#server_name <Domain Name>;
root /var/www;
@@ -35,8 +36,11 @@ server {
}
server {
listen 443 ssl;
#server_name <Domain Name>;
listen 443 ssl http2 default_server;
listen [::]:443 ssl http2 default_server;
#server_name <Domain Name>;
root /var/www;
index index.html index.php index.htm;
+2
View File
@@ -15,6 +15,8 @@ directory.default.set = (cat,(cfg.basedir),"download")
schedule = watch_directory,5,5,((load.start,(cat,(cfg.watch),"*.torrent")))
#system.umask.set = 0000
### BitTorrent
# Global upload and download rate in KiB, `0` for unlimited
throttle.global_down.max_rate.set = 0
+56 -29
View File
@@ -22,8 +22,9 @@ sshport=$(grep 'Port ' /etc/ssh/sshd_config | sed 's/[^0-9]*//g')
ftpport=$(grep 'listen_port=' /etc/vsftpd.conf | sed 's/[^0-9]*//g')
cronline1="@reboot sleep 10; /usr/local/bin/rtcheck irssi rtorrent"
cronline2="*/10 * * * * /usr/local/bin/rtcheck irssi rtorrent"
serverip=$(ip route get 8.8.8.8 | awk 'NR==1 {print $NF}')
serverip=$(ip route get 8.8.8.8 | awk 'NR==1 {print $7}')
check_ssh=1
rtdstatus=$(rtdload)
#get user list
cd /var/www/rutorrent/conf/users
@@ -33,6 +34,28 @@ user_list=*
### FUNCTIONS ###
###############################
#function to determin if unix user name is valid
valid_name(){
until [[ $user =~ ^[a-z][-a-z0-9_]{2,31}$ ]]
do
echo "Enter user name (lowercase, numbers, dash and underscore):"
read user
done
}
# function to ask user for y/n response
ask_user(){
local answer
while true
do
read answer
case $answer in [Yy]* ) return 0 ;;
[Nn]* ) return 1 ;;
* ) echo "Enter y or n";;
esac
done
}
genpasswd() {
local genln=$1
[ -z "$genln" ] && genln=8
@@ -183,34 +206,39 @@ fi
###############################
if [ -z "$user" ]; then
echo "Enter the name of the user to add"
echo "Enter the name of the user"
echo "It can be an existing user or a new user"
echo
confirm_name=1
while [ $confirm_name = 1 ]
do
read -p "Enter user name: " answer
addname=$answer
check_name=1
if [ "$addname" = "root" ]; then
echo "Cannot create root"
exit
valid_name
echo -n "Confirm that user name is $user y/n? "
if ask_user; then
confirm_name=0
else
user=''
fi
while [ $check_name = 1 ]
do
read -p "Is $addname correct? " answer
case $answer in [Yy]* ) confirm_name=0 && check_name=0 ;;
[Nn]* ) confirm_name=1 && check_name=0 ;;
* ) echo "Enter y or n";;
esac
done
done
user=$addname
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
@@ -220,6 +248,13 @@ else
adduser --gecos "" $user --disabled-password
echo "$user:$unixpass" | sudo 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")
@@ -363,14 +398,6 @@ fi
su $user -c '/usr/local/bin/rt restart'
su $user -c '/usr/local/bin/rt -i restart'
dload_line=$(grep "include /etc/nginx/conf.d/rtdload;" /etc/nginx/sites-available/default)
dload_hash=$(echo $dload_line | sed 's/[^#]*//g')
if [ ! -z "$dload_line" -a -z "$dload_hash" ]; then
dload_flag=0
else
dload_flag=1
fi
echo "$user setup complete"
echo "SCGI Port: $newscgi"
echo "RPC Mount: $newrpc"
@@ -391,7 +418,7 @@ echo
fi
echo "ftp client should be set to explicit ftp over tls using port $ftpport" | tee -a $home/rtinst.info
echo
if [ $dload_flag = 0 ]; then
if [ "$rtdstatus" = "enabled" ]; then
echo "https downloads can be accessed at https://$serverip/download/$user" | tee -a $home/rtinst.info
echo
fi
+80 -17
View File
@@ -35,13 +35,24 @@ fullrel=$(lsb_release -sd)
osname=$(lsb_release -si)
relno=$(lsb_release -sr | cut -d. -f1)
# Fallback if lsb_release -si returns nothing
if [ "$osname" = "" ]; then
osname=$(grep -oP '(?<=^ID=).+' /etc/os-release | tr -d '"')
osname=${osname^}
fi
# Fallback if lsb_release -sr returns nothing
if [ "$relno" = "" ]; then
relno=$(grep -oP '(?<=^VERSION_ID=).+' /etc/os-release | tr -d '"')
fi
if [ "$relno" = "16" ] || [ "$relno" = "17" ] || [ "$relno" = "9" ]; then
phpver=php7.0
phploc=/etc/php/7.0
libcver=libcurl3
fi
if [ $(lsb_release -sr) = "17.10" ]; then
if [ "$(lsb_release -sr)" = "17.10" ]; then
phpver=php7.1
phploc=/etc/php/7.1
libcver=libcurl3
@@ -92,7 +103,7 @@ portdefault=1
skip_rt=1
sshport=''
rudevflag=1
rurelease=masterlibterm-readline-gnu-pe
rurelease=master
passfile='/etc/nginx/.htpasswd'
package_list="sudo nano autoconf build-essential ca-certificates comerr-dev curl dtach htop irssi libcppunit-dev $libcver libncurses5-dev libterm-readline-gnu-perl libsigc++-2.0-dev libperl-dev libtool libxml2-dev ncurses-base ncurses-term ntp patch pkg-config $phpver-fpm $phpver $phpver-cli $phpver-dev $phpver-curl php-geoip $phpver-xmlrpc $phpver-xml python-scgi screen subversion texinfo unzip zlib1g-dev libcurl4-openssl-dev mediainfo software-properties-common aptitude $phpver-json nginx-full apache2-utils git libarchive-zip-perl libnet-ssleay-perl libhtml-parser-perl libxml-libxml-perl libjson-perl libjson-xs-perl libxml-libxslt-perl libjson-rpc-perl libarchive-zip-perl"
Install_list=""
@@ -133,6 +144,18 @@ else
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
@@ -379,25 +402,39 @@ if [ -z "$user" ]; then
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
read -p "Enter user name: " answer
addname=$answer
echo -n "Confirm that user name is $answer y/n? "
valid_name
echo -n "Confirm that user name is $user y/n? "
if ask_user; then
confirm_name=0
else
user=''
fi
done
user=$addname
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
@@ -407,6 +444,14 @@ 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")
@@ -511,6 +556,11 @@ for package_name in $package_list
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
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
@@ -529,13 +579,13 @@ if [ $osname = "Debian" ] && ! installed unrar; then
do
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
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.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
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
@@ -757,6 +807,8 @@ 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
@@ -976,7 +1028,13 @@ 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://$serverdn/rutorrent" | tee -a $home/rtinst.info
if [ $leflag = 0 ]; then
echo " rutorrent can be accessed at https://$serverdn/rutorrent" | tee -a $home/rtinst.info
else
echo " rutorrent can be accessed at https://$serverip/rutorrent" | tee -a $home/rtinst.info
fi
if [ $passflag = 1 ]; then
echo " rutorrent password set to $webpass" | tee -a $home/rtinst.info
elif [ $passflag = 2 ]; then
@@ -986,7 +1044,12 @@ else
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://$serverdn/download/$user" | tee -a $home/rtinst.info
if [ $leflag = 0 ]; then
echo " If enabled, access https downloads at https://$serverdn/download/$user" | tee -a $home/rtinst.info
else
echo " If enabled, access https downloads at https://$serverip/download/$user" | tee -a $home/rtinst.info
fi
fi
echo | tee -a $home/rtinst.info
+2 -1
View File
@@ -62,7 +62,8 @@ if [ $(dpkg-query -W -f='${Status}' "certbot" 2>/dev/null | grep -c "ok installe
apt-get -q update >> $logfile 2>&1
apt-get install -y certbot python-certbot-nginx >> $logfile 2>&1
else
grep "^deb http\:\/\/deb\.debian\.org\/debian stretch-backports main" /etc/apt/sources.list > /dev/null || echo "deb http://deb.debian.org/debian stretch-backports main" >> /etc/apt/sources.list
deb_name=$(lsb_release --codename --short)
grep "^deb http\:\/\/deb\.debian\.org\/debian $deb_name-backports main" /etc/apt/sources.list > /dev/null || echo "deb http://deb.debian.org/debian $deb_name-backports main" >> /etc/apt/sources.list
apt-get -q update >> $logfile 2>&1
apt-get install -y certbot python-certbot-nginx -t stretch-backports >> $logfile 2>&1
fi
+1
View File
@@ -59,6 +59,7 @@ 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
sed -i "/^\(\s\|#\)*server_name/ c\ server_name $serverip;" /etc/nginx/sites-available/default
service nginx restart >/dev/null 2>&1
fi
}
+1 -1
View File
@@ -9,7 +9,7 @@
######################################################################
PATH=/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/bin:/sbin
serverip=$(ip route get 8.8.8.8 | awk 'NR==1 {print $NF}')
serverip=$(ip route get 8.8.8.8 | awk 'NR==1 {print $7}')
if [ "$(id -u)" != "0" ]; then
echo "Must be run as root, directly or with sudo"