mirror of
https://github.com/elisspace/rtinst.git
synced 2026-10-08 01:48:33 +00:00
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
0c6d410dbe | ||
|
|
9ca5721d08 | ||
|
|
f3ee539bd4 | ||
|
|
9f13ecbfa6 |
@@ -1,5 +1,7 @@
|
|||||||
## rtinst
|
## rtinst
|
||||||
|
|
||||||
|
### Note: Now installs Lets Encrypt SSL certificates
|
||||||
|
|
||||||
#### 30 Second Guide
|
#### 30 Second Guide
|
||||||
|
|
||||||
Ubuntu and Debian Seedbox Installation
|
Ubuntu and Debian Seedbox Installation
|
||||||
|
|||||||
+5
-3
@@ -23,9 +23,10 @@ while true
|
|||||||
[5] ) rtupdate && return 0 ;;
|
[5] ) rtupdate && return 0 ;;
|
||||||
[6] ) rutupgrade && return 0 ;;
|
[6] ) rutupgrade && return 0 ;;
|
||||||
[7] ) rtwebmin && return 0 ;;
|
[7] ) rtwebmin && return 0 ;;
|
||||||
[8] ) rtsslcert && return 0 ;;
|
[8] ) rtletsencrypt && return 0 ;;
|
||||||
|
[9] ) rtsslcert && return 0 ;;
|
||||||
[Qq] ) exit ;;
|
[Qq] ) exit ;;
|
||||||
* ) echo "Enter 1-8 (q to quit)";;
|
* ) echo "Enter 1-9 (q to quit)";;
|
||||||
esac
|
esac
|
||||||
done
|
done
|
||||||
}
|
}
|
||||||
@@ -53,7 +54,8 @@ echo "4.) rtdload $rtdaction - $rtdaction https downloads"
|
|||||||
echo "5.) rtupdate - up/down-grade rtorent/libtorrent"
|
echo "5.) rtupdate - up/down-grade rtorent/libtorrent"
|
||||||
echo "6.) rutupgrade - upgrade to latest version of RuTorrent"
|
echo "6.) rutupgrade - upgrade to latest version of RuTorrent"
|
||||||
echo "7.) rtwebmin - install webmin"
|
echo "7.) rtwebmin - install webmin"
|
||||||
echo "8.) rtsslcert - generate new self signed ssl certificate"
|
echo "8.) rtletsencrypt - install Lets Encypt ssl certificate"
|
||||||
|
echo "9.) rtsslcert - generate new self signed ssl certificate"
|
||||||
echo "Enter option or q to quit"
|
echo "Enter option or q to quit"
|
||||||
|
|
||||||
select_task
|
select_task
|
||||||
|
|||||||
+28
-9
@@ -63,7 +63,7 @@ serveripa=$(ip route get 8.8.8.8 | awk 'NR==1 {print $7}')
|
|||||||
serveripb=$(wget -qO- ipecho.net/plain)
|
serveripb=$(wget -qO- ipecho.net/plain)
|
||||||
|
|
||||||
if [ "$serveripa" = "$serveripb" ]; then
|
if [ "$serveripa" = "$serveripb" ]; then
|
||||||
export serverip=$serveripa
|
serverip=$serveripa
|
||||||
else
|
else
|
||||||
echo "Select the IP address to use:"
|
echo "Select the IP address to use:"
|
||||||
echo "1.) "$serveripa
|
echo "1.) "$serveripa
|
||||||
@@ -72,8 +72,8 @@ else
|
|||||||
while true
|
while true
|
||||||
do
|
do
|
||||||
read answer
|
read answer
|
||||||
case $answer in [1] ) export serverip=$serveripa && break ;;
|
case $answer in [1] ) serverip=$serveripa && break ;;
|
||||||
[2] ) export serverip=$serveripb && break ;;
|
[2] ) serverip=$serveripb && break ;;
|
||||||
* ) echo "Enter 1 or 2";;
|
* ) echo "Enter 1 or 2";;
|
||||||
esac
|
esac
|
||||||
done
|
done
|
||||||
@@ -94,7 +94,7 @@ sshport=''
|
|||||||
rudevflag=1
|
rudevflag=1
|
||||||
rurelease=masterlibterm-readline-gnu-pe
|
rurelease=masterlibterm-readline-gnu-pe
|
||||||
passfile='/etc/nginx/.htpasswd'
|
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 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=""
|
Install_list=""
|
||||||
unixpass=""
|
unixpass=""
|
||||||
passflag=0
|
passflag=0
|
||||||
@@ -338,9 +338,10 @@ echo
|
|||||||
[ $forceyes = 1 ] && enter_ip
|
[ $forceyes = 1 ] && enter_ip
|
||||||
|
|
||||||
echo "Your server's IP is set to $serverip"
|
echo "Your server's IP is set to $serverip"
|
||||||
|
export serverip
|
||||||
|
|
||||||
# Determine domain name using server ip address
|
# Determine domain name using server ip address
|
||||||
serverdn=$(perl -MSocket -le "print((gethostbyaddr(inet_aton('$serverip'), AF_INET))[0])")
|
export serverdn=$(perl -MSocket -le "print((gethostbyaddr(inet_aton('$serverip'), AF_INET))[0])")
|
||||||
if [ -z "$serverdn" ]; then
|
if [ -z "$serverdn" ]; then
|
||||||
echo "Unable to determine domain"
|
echo "Unable to determine domain"
|
||||||
else
|
else
|
||||||
@@ -404,7 +405,7 @@ else
|
|||||||
adduser --gecos "" $user
|
adduser --gecos "" $user
|
||||||
else
|
else
|
||||||
adduser --gecos "" $user --disabled-password
|
adduser --gecos "" $user --disabled-password
|
||||||
echo "$user:$unixpass" | sudo chpasswd
|
echo "$user:$unixpass" | chpasswd
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@@ -625,7 +626,14 @@ echo "SSH port set to $sshport"
|
|||||||
###############################
|
###############################
|
||||||
|
|
||||||
# calls the script rtsslcert to generate the ssl certificated for vsftpd and nginx
|
# calls the script rtsslcert to generate the ssl certificated for vsftpd and nginx
|
||||||
rtsslcert -d
|
if rtletsencrypt ; then
|
||||||
|
leflag=0
|
||||||
|
echo "Lets Encrypt Certificates installed"
|
||||||
|
else
|
||||||
|
rtsslcert -d
|
||||||
|
leflag=1
|
||||||
|
echo "Self signed certificats installed"
|
||||||
|
fi
|
||||||
|
|
||||||
###############################
|
###############################
|
||||||
### INSTALL FTP ###
|
### INSTALL FTP ###
|
||||||
@@ -668,6 +676,11 @@ grep -Pq "^\s*ssl_tlsv1" /etc/vsftpd.conf && sed -i '/^\s*ssl_tlsv1/ c\ssl_tlsv
|
|||||||
grep -Pq "^\s*require_ssl_reuse" /etc/vsftpd.conf && sed -i '/^\s*require_ssl_reuse/ c\require_ssl_reuse=NO' /etc/vsftpd.conf || echo "require_ssl_reuse=NO" >> /etc/vsftpd.conf
|
grep -Pq "^\s*require_ssl_reuse" /etc/vsftpd.conf && sed -i '/^\s*require_ssl_reuse/ c\require_ssl_reuse=NO' /etc/vsftpd.conf || echo "require_ssl_reuse=NO" >> /etc/vsftpd.conf
|
||||||
grep -Pq "^\s*ssl_ciphers" /etc/vsftpd.conf && sed -i '/^\s*ssl_ciphers/ c\ssl_ciphers=HIGH' /etc/vsftpd.conf || echo "ssl_ciphers=HIGH" >> /etc/vsftpd.conf
|
grep -Pq "^\s*ssl_ciphers" /etc/vsftpd.conf && sed -i '/^\s*ssl_ciphers/ c\ssl_ciphers=HIGH' /etc/vsftpd.conf || echo "ssl_ciphers=HIGH" >> /etc/vsftpd.conf
|
||||||
|
|
||||||
|
if [ $leflag = 0 ]; then
|
||||||
|
sed -i "/^\(\s\|#\)*rsa_cert_file/ c\rsa_cert_file=/etc/letsencrypt/live/$serverdn/fullchain.pem" /etc/vsftpd.conf
|
||||||
|
sed -i "/^\(\s\|#\)*rsa_private_key_file/ c\rsa_private_key_file=/etc/letsencrypt/live/$serverdn/privkey.pem" /etc/vsftpd.conf
|
||||||
|
fi
|
||||||
|
|
||||||
service vsftpd restart 1>> $logfile
|
service vsftpd restart 1>> $logfile
|
||||||
|
|
||||||
ftpport=$(grep 'listen_port=' /etc/vsftpd.conf | sed 's/[^0-9]*//g')
|
ftpport=$(grep 'listen_port=' /etc/vsftpd.conf | sed 's/[^0-9]*//g')
|
||||||
@@ -740,6 +753,12 @@ echo "location ~* \.(jpg|jpeg|gif|css|png|js|woff|ttf|svg|eot)$ {" > /etc/nginx/
|
|||||||
echo " expires 30d;" >> /etc/nginx/conf.d/cache
|
echo " expires 30d;" >> /etc/nginx/conf.d/cache
|
||||||
echo "}" >> /etc/nginx/conf.d/cache
|
echo "}" >> /etc/nginx/conf.d/cache
|
||||||
|
|
||||||
|
if [ $leflag = 0 ]; then
|
||||||
|
sed -i "/^\(\s\|#\)*server_name/ c\ server_name $serverdn;" /etc/nginx/sites-available/default
|
||||||
|
sed -i "/ssl_certificate / c\ ssl_certificate /etc/letsencrypt/live/$serverdn/fullchain.pem;" /etc/nginx/sites-available/default
|
||||||
|
sed -i "/ssl_certificate_key / c\ ssl_certificate_key /etc/letsencrypt/live/$serverdn/privkey.pem;" /etc/nginx/sites-available/default
|
||||||
|
fi
|
||||||
|
|
||||||
service nginx restart && service $phpver-fpm restart
|
service nginx restart && service $phpver-fpm restart
|
||||||
|
|
||||||
if [ $dlflag = 0 ]; then
|
if [ $dlflag = 0 ]; then
|
||||||
@@ -957,7 +976,7 @@ if [ -z $ru_current ]; then
|
|||||||
echo " RuTorrent was not installed" | tee -a $home/rtinst.info
|
echo " RuTorrent was not installed" | tee -a $home/rtinst.info
|
||||||
else
|
else
|
||||||
echo " RuTorrent $ru_current installed" | tee -a $home/rtinst.info
|
echo " RuTorrent $ru_current installed" | tee -a $home/rtinst.info
|
||||||
echo " rutorrent can be accessed at https://$serverip/rutorrent" | tee -a $home/rtinst.info
|
echo " rutorrent can be accessed at https://$serverdn/rutorrent" | tee -a $home/rtinst.info
|
||||||
if [ $passflag = 1 ]; then
|
if [ $passflag = 1 ]; then
|
||||||
echo " rutorrent password set to $webpass" | tee -a $home/rtinst.info
|
echo " rutorrent password set to $webpass" | tee -a $home/rtinst.info
|
||||||
elif [ $passflag = 2 ]; then
|
elif [ $passflag = 2 ]; then
|
||||||
@@ -967,7 +986,7 @@ else
|
|||||||
fi
|
fi
|
||||||
echo " to change rutorrent password enter: rtpass" | tee -a $home/rtinst.info
|
echo " to change rutorrent password enter: rtpass" | tee -a $home/rtinst.info
|
||||||
echo | tee -a $home/rtinst.info
|
echo | tee -a $home/rtinst.info
|
||||||
echo " If enabled, access https downloads at https://$serverip/download/$user" | tee -a $home/rtinst.info
|
echo " If enabled, access https downloads at https://$serverdn/download/$user" | tee -a $home/rtinst.info
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo | tee -a $home/rtinst.info
|
echo | tee -a $home/rtinst.info
|
||||||
|
|||||||
Executable
+109
@@ -0,0 +1,109 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
#########################################################################################
|
||||||
|
#
|
||||||
|
# Copyright (c) 2015 arakasi72 (https://github.com/arakasi72)
|
||||||
|
#
|
||||||
|
# --> Licensed under the MIT license: http://www.opensource.org/licenses/mit-license.php
|
||||||
|
#
|
||||||
|
#########################################################################################
|
||||||
|
|
||||||
|
|
||||||
|
headless=0
|
||||||
|
osname=$(lsb_release -si)
|
||||||
|
[ -z $logfile ] && logfile="/dev/null"
|
||||||
|
if [ -z $serverip ]; then
|
||||||
|
headless=1
|
||||||
|
fi
|
||||||
|
|
||||||
|
#check it is being run as root
|
||||||
|
if [ "$(id -u)" != "0" ]; then
|
||||||
|
echo "Must be run from root or using sudo" && exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ $headless = 1 ]; then
|
||||||
|
serveripa=$(ip route get 8.8.8.8 | awk 'NR==1 {print $7}')
|
||||||
|
serveripb=$(wget -qO- ipecho.net/plain)
|
||||||
|
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
|
||||||
|
serverdn=$(perl -MSocket -le "print((gethostbyaddr(inet_aton('$serverip'), AF_INET))[0])")
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "IP: $serverip"
|
||||||
|
echo "DN: $serverdn"
|
||||||
|
|
||||||
|
if [ -z $serverdn ]; then
|
||||||
|
echo "Unable to determine domain name cannot setup Lets Encypt"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
#Installing Certbot
|
||||||
|
if [ $(dpkg-query -W -f='${Status}' "certbot" 2>/dev/null | grep -c "ok installed") = 0 ]; then
|
||||||
|
echo "Installing certbot"
|
||||||
|
|
||||||
|
if [ "$osname" = "Ubuntu" ]; then
|
||||||
|
apt-get -q update >> $logfile 2>&1
|
||||||
|
add-apt-repository -y universe >> $logfile 2>&1
|
||||||
|
add-apt-repository -y ppa:certbot/certbot >> $logfile 2>&1
|
||||||
|
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
|
||||||
|
apt-get -q update >> $logfile 2>&1
|
||||||
|
apt-get install -y certbot python-certbot-nginx -t stretch-backports >> $logfile 2>&1
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
echo "certbot already installed"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ $(dpkg-query -W -f='${Status}' "certbot" 2>/dev/null | grep -c "ok installed") = 0 ]; then
|
||||||
|
echo "Install Failed"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
#Generating Certificates
|
||||||
|
certbot -q --nginx --register-unsafely-without-email --agree-tos certonly -d $serverdn >> $logfile 2>&1
|
||||||
|
|
||||||
|
if [ $? = 1 ]; then
|
||||||
|
echo "unable to generate certificates"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "Certificates Generated"
|
||||||
|
|
||||||
|
if [ $headless = 0 ]; then
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -d "/etc/letsencrypt/live/$serverdn" ]; then
|
||||||
|
echo "Replacing certificates in nginx and vsftpd"
|
||||||
|
|
||||||
|
sed -i "/^\(\s\|#\)*server_name/ c\ server_name $serverdn;" /etc/nginx/sites-available/default
|
||||||
|
sed -i "/ssl_certificate / c\ ssl_certificate /etc/letsencrypt/live/$serverdn/fullchain.pem;" /etc/nginx/sites-available/default
|
||||||
|
sed -i "/ssl_certificate_key / c\ ssl_certificate_key /etc/letsencrypt/live/$serverdn/privkey.pem;" /etc/nginx/sites-available/default
|
||||||
|
|
||||||
|
service nginx restart
|
||||||
|
|
||||||
|
sed -i "/^\(\s\|#\)*rsa_cert_file/ c\rsa_cert_file=/etc/letsencrypt/live/$serverdn/fullchain.pem" /etc/vsftpd.conf
|
||||||
|
sed -i "/^\(\s\|#\)*rsa_private_key_file/ c\rsa_private_key_file=/etc/letsencrypt/live/$serverdn/privkey.pem" /etc/vsftpd.conf
|
||||||
|
|
||||||
|
service vsftpd restart
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Reference in New Issue
Block a user