Update 'installer.sh'
This commit is contained in:
118
installer.sh
118
installer.sh
@@ -3,65 +3,100 @@
|
||||
##---------------##
|
||||
# Static-Vars #
|
||||
##---------------##
|
||||
|
||||
#Git-repo
|
||||
repo=https://git.ictmaatwerk.com/bprieshof/UBU-Web-V2
|
||||
branch=master
|
||||
#Installer-config
|
||||
phpver=7.3
|
||||
sqlver=8.0
|
||||
cockpit=1
|
||||
PHPMyadmin=1
|
||||
#PackageManager-config
|
||||
PKGM="debconf-apt-progress -- apt"
|
||||
PKGA="add-apt-repository"
|
||||
PKGI="${PKGM} install -y"
|
||||
OUTPUT='/dev/null'
|
||||
|
||||
|
||||
##--------------------------##
|
||||
# Installer-Requirements #
|
||||
##--------------------------##
|
||||
|
||||
sed -i -e 's/magenta/blue/g' /etc/newt/palette
|
||||
TERM=ansi whiptail --title "Config" --infobox "Starting installer." 8 78
|
||||
$PKGM update > $OUTPUT 2>&1
|
||||
$PKGI curl > $OUTPUT 2>&1
|
||||
|
||||
|
||||
##--------##
|
||||
# Menu #
|
||||
##--------##
|
||||
sed -i -e 's/magenta/blue/g' /etc/newt/palette
|
||||
|
||||
domain=$(whiptail --nocancel --inputbox " Enter the domain without WWW " 11 82 --title "Config" 3>&1 1>&2 2>&3)
|
||||
password=$(whiptail --nocancel --passwordbox "Please enter your password (should contain at least 2 digits and 6 characters)" 11 82 --title "Config" 3>&1 1>&2 2>&3)
|
||||
domain=$(whiptail --nocancel --inputbox " Enter the domain without www or mail." 11 82 --title "Config" 3>&1 1>&2 2>&3)
|
||||
email=$(whiptail --nocancel --inputbox " Enter the administrator e-mail" 11 82 --title "Config" 3>&1 1>&2 2>&3)
|
||||
choice=$(whiptail --nocancel --title "Radio list example" --radiolist "Choose user's permissions" 11 128 5 "Nginx, PHP-FPM" "Allow connections to other hosts" ON "Apache" "Allow connections from other hosts" OFF "Other" "Allow mounting of local devices" OFF 3>&1 1>&2 2>&3)
|
||||
if [[ $choice == *"Other"* ]]; then
|
||||
choice=$(whiptail --nocancel --title "Radio list example" --radiolist "Choose user's permissions" 11 128 5 "Nginx Proxy" "Allow connections to other hosts" ON "Nginx Proxy, standalone" "Allow connections from other hosts" OFF 3>&1 1>&2 2>&3)
|
||||
cweb=$(whiptail --title "Select Webserver" --radiolist "WebServer" 11 128 5 "Nginx" "Will install NGINX Webserver" ON "Apache" "Will install Apache Webserver" OFF 3>&1 1>&2 2>&3)
|
||||
|
||||
if [[ $cweb == "Nginx" ]]; then
|
||||
echo "nginx php${phpver}-fpm php${phpver}-imagick php${phpver}-mysql php${phpver}-cgi php${phpver}-common php${phpver}-pear php${phpver}-mbstring php${phpver}-curl php${phpver}-gd php${phpver}-intl php${phpver}-soap php${phpver}-xml php${phpver}-xmlrpc php${phpver}-zip" >> /tmp/install.txt
|
||||
fi
|
||||
if [[ $cweb == "Apache" ]]; then
|
||||
echo "apache2 libapache2-mod-php php${phpver}-mysql php${phpver}-cgi php${phpver}-common php${phpver}-pear php${phpver}-mbstring php${phpver}-curl php${phpver}-gd php${phpver}-intl php${phpver}-soap php${phpver}-xml php${phpver}-xmlrpc php${phpver}-zip" >> /tmp/install.txt
|
||||
fi
|
||||
|
||||
if [[ $choice == *"PHP-FPM"* ]]; then
|
||||
echo "nginx netdata mailutils php${phpver}-fpm php${phpver}-imagick php${phpver}-mysql php${phpver}-cgi php${phpver}-common php${phpver}-pear php${phpver}-mbstring php${phpver}-curl php${phpver}-gd php${phpver}-intl php${phpver}-soap php${phpver}-xml php${phpver}-xmlrpc php${phpver}-zip" >> /tmp/install.txt
|
||||
fi
|
||||
if [[ $choice == *"Apache"* ]]; then
|
||||
echo "apache2 netdata mailutils libapache2-mod-php php${phpver}-mysql php${phpver}-cgi php${phpver}-common php${phpver}-pear php${phpver}-mbstring php${phpver}-curl php${phpver}-gd php${phpver}-intl php${phpver}-soap php${phpver}-xml php${phpver}-xmlrpc php${phpver}-zip" >> /tmp/install.txt
|
||||
fi
|
||||
if [[ $choice == "Nginx Proxy" ]]; then
|
||||
echo "nginx apache2 netdata mailutils libapache2-mod-php php${phpver}-mysql php${phpver}-cgi php${phpver}-common php${phpver}-pear php${phpver}-mbstring php${phpver}-curl php${phpver}-gd php${phpver}-intl php${phpver}-soap php${phpver}-xml php${phpver}-xmlrpc php${phpver}-zip" >> /tmp/install.txt
|
||||
fi
|
||||
if [[ $choice == *"standalone"* ]]; then
|
||||
echo "nginx apache2 mailutils phpmyadmin php${phpver}-fpm unzip build-essential apache2-dev php${phpver}-mysql php${phpver}-cgi php${phpver}-common php${phpver}-pear php${phpver}-mbstring php${phpver}-curl php${phpver}-gd php${phpver}-intl php${phpver}-soap php${phpver}-xml php${phpver}-xmlrpc php${phpver}-zip" >> /tmp/install.txt
|
||||
fi
|
||||
|
||||
##----------##
|
||||
# Addons #
|
||||
##----------##
|
||||
option=$(whiptail --nocancel --title "Which features should be integrated?" --checklist "Features" 11 128 5 "Nextcloud" "Nextcloud is a suite of client-server software for creating and using file hosting services" OFF "Memcached" "Memcached is an open source, high-performance, distributed memory caching system" OFF "Redis Cache" "Redis is an open source BSD licensed, in-memory data structure store" OFF "Wordpress" "WordPress is a content management system based on PHP" OFF "Brotli Precompression" "Brotli is a data format specification for data streams" OFF 3>&1 1>&2 2>&3)
|
||||
if [[ $option == *"Nextcloud"* ]]; then
|
||||
echo "" >> /tmp/install.txt
|
||||
|
||||
if [ $webserv = nginx ]; then
|
||||
#NGINX Addon menu
|
||||
option=$(whiptail --nocancel --title "Which addons should be installed?" --checklist "Features" 11 128 5 "Memcached" "Memcached is an open source, high-performance, distributed memory caching system" OFF "Redis Cache" "Redis is an open source BSD licensed, in-memory data structure store" OFF "Brotli Precompression" "Brotli is a data format specification for data streams" OFF 3>&1 1>&2 2>&3)
|
||||
fi
|
||||
|
||||
if [ $webserv = apache2 ]; then
|
||||
#Apache Addon menu
|
||||
option=$(whiptail --nocancel --title "Which addons should be installed?" --checklist "Features" 11 128 5 "Memcached" "Memcached is an open source, high-performance, distributed memory caching system" OFF "Redis Cache" "Redis is an open source BSD licensed, in-memory data structure store" OFF 3>&1 1>&2 2>&3)
|
||||
fi
|
||||
|
||||
|
||||
if [[ $option == *"Memcached"* ]]; then
|
||||
echo "" >> /tmp/install.txt
|
||||
|
||||
curl -s "$repo"/raw/branch/"$branch"/modules/MODNAME/"$webserv"-aptlist >> /tmp/install.txt
|
||||
|
||||
fi
|
||||
if [[ $option == *"Redis"* ]]; then
|
||||
echo "" >> /tmp/install.txt
|
||||
fi
|
||||
if [[ $option == *"Wordpress"* ]]; then
|
||||
echo "" >> /tmp/install.txt
|
||||
fi
|
||||
|
||||
if [[ $option == *"Brotli"* ]]; then
|
||||
echo "" >> /tmp/install.txt
|
||||
fi
|
||||
|
||||
|
||||
##-------##
|
||||
# CMS #
|
||||
##-------##
|
||||
|
||||
CMS=$(whiptail --nocancel --title "What CMS should be installed?" --radiolist "Features" 11 128 5 "Nextcloud" "Nextcloud is a suite of client-server software for creating and using file hosting services" OFF "Wordpress" "WordPress is a content management system based on PHP" OFF "None" "A plain webserver will be setup" OFF 3>&1 1>&2 2>&3)
|
||||
if [[ $CMS == "Nextcloud" ]]; then
|
||||
echo "" >> /tmp/install.txt
|
||||
|
||||
if [[ $CMS == "Wordpress" ]]; then
|
||||
echo "" >> /tmp/install.txt
|
||||
fi
|
||||
|
||||
if [[ $CMS == *"None"* ]]; then
|
||||
echo "" >> /tmp/install.txt
|
||||
fi
|
||||
|
||||
|
||||
##--------------------##
|
||||
# Pre-Requirements #
|
||||
##--------------------##
|
||||
|
||||
TERM=ansi whiptail --title "Config" --infobox "Preconfiguring." 8 78
|
||||
echo "fail2ban" >> /tmp/install.txt
|
||||
$PKGM update > $OUTPUT 2>&1
|
||||
$PKGI software-properties-common > $OUTPUT 2>&1
|
||||
$PKGA universe -y > $OUTPUT 2>&1
|
||||
$PKGA ppa:ondrej/php -y > $OUTPUT 2>&1
|
||||
@@ -69,31 +104,48 @@ $PKGA ppa:certbot/certbot -y > $OUTPUT 2>&1
|
||||
$PKGM update
|
||||
$PKGM upgrade -y
|
||||
|
||||
|
||||
##-------------##
|
||||
# Installer #
|
||||
##-------------##
|
||||
|
||||
echo "fail2ban" >> /tmp/install.txt
|
||||
cat /tmp/install.txt | xargs $PKGI
|
||||
|
||||
|
||||
##---------------##
|
||||
# Configuring #
|
||||
##---------------##
|
||||
|
||||
if [[ $ModName == "1" ]]; then
|
||||
source <(curl -s "$repo"/raw/branch/"$branch"/modules/MODNAME/"$webserv"-config.sh)
|
||||
fi
|
||||
|
||||
|
||||
##------------##
|
||||
# Fail2Ban #
|
||||
##------------##
|
||||
|
||||
sed -i 's/root@localhost/'$email'/g' /etc/fail2ban/jail.conf
|
||||
wget -q -t7 http://dynpasloo.ddns.net:3000/brancovandewaal/Ubuntu-Web-v2/raw/branch/master/fail2ban/sshd.local -O /etc/fail2ban/jail.d/sshd.local
|
||||
if [[ $option == *"Nextcloud"* ]]; then
|
||||
wget -q -t7 http://dynpasloo.ddns.net:3000/brancovandewaal/Ubuntu-Web-v2/raw/branch/master/fail2ban/nextcloud.conf -O /etc/fail2ban/filter.d/nextcloud.conf
|
||||
wget -q -t7 http://dynpasloo.ddns.net:3000/brancovandewaal/Ubuntu-Web-v2/raw/branch/master/fail2ban/nextcloud.local -O /etc/fail2ban/jail.d/nextcloud.local
|
||||
wget -q -t7 "$repo"/raw/branch/"$branch"/config/fail2ban/sshd.local -O /etc/fail2ban/jail.d/sshd.local
|
||||
if [[ $CMS == "Nextcloud" ]]; then
|
||||
wget -q -t7 "$repo"/raw/branch/"$branch"/config/fail2ban/nextcloud.conf -O /etc/fail2ban/filter.d/nextcloud.conf
|
||||
wget -q -t7 "$repo"/raw/branch/"$branch"/config/fail2ban/nextcloud.local -O /etc/fail2ban/jail.d/nextcloud.local
|
||||
fi
|
||||
if [[ $option == *"Wordpress"* ]]; then
|
||||
wget -q -t7 http://dynpasloo.ddns.net:3000/brancovandewaal/Ubuntu-Web-v2/raw/branch/master/fail2ban/wordpress.conf -O /etc/fail2ban/filter.d/wordpress.conf
|
||||
wget -q -t7 http://dynpasloo.ddns.net:3000/brancovandewaal/Ubuntu-Web-v2/raw/branch/master/fail2ban/wordpress.local -O /etc/fail2ban/jail.d/wordpress.local
|
||||
if [[ $CMS == "Wordpress" ]]; then
|
||||
wget -q -t7 "$repo"/raw/branch/"$branch"/config/fail2ban/wordpress.conf -O /etc/fail2ban/filter.d/wordpress.conf
|
||||
wget -q -t7 "$repo"/raw/branch/"$branch"/config/fail2ban/wordpress.local -O /etc/fail2ban/jail.d/wordpress.local
|
||||
fi
|
||||
|
||||
|
||||
##-------##
|
||||
# UFW #
|
||||
##-------##
|
||||
|
||||
sed -i 's/IPV6=yes/IPV6=no/g' /etc/default/ufw
|
||||
ufw default deny incoming > $OUTPUT 2>&1
|
||||
ufw allow 80/tcp > $OUTPUT 2>&1
|
||||
ufw allow 443/tcp > $OUTPUT 2>&1
|
||||
ufw limit 4242/tcp > $OUTPUT 2>&1
|
||||
echo "y" | ufw enable > $OUTPUT 2>&1
|
||||
|
||||
|
||||
Reference in New Issue
Block a user