diff --git a/installer.sh b/installer.sh index cb11bdc..ef1780e 100644 --- a/installer.sh +++ b/installer.sh @@ -1,4 +1,35 @@ #!/bin/bash +##--------------------## +# Legacy/Main Menu # +##--------------------## +sed -i -e 's/magenta/blue/g' /etc/newt/palette + +if [ "$1" != "-l" ]; then + echo "Normal mode" + PKGM="debconf-apt-progress -- apt" + OUTPUT='/dev/null' + IMODE=n +fi +if [ "$1" = "-l" ]; then + echo "Legacy mode"; + PKGM="apt" + OUTPUT='/dev/tty' + IMODE=l +fi + + +##---------------## +# Functions # +##---------------## +msg () { +if [ $IMODE = n ]; then +TERM=ansi whiptail --title "Info" --infobox "$1" 8 52 +fi +if [ $IMODE = l ]; then +echo "$1" +fi +} + ##---------------## # Static-Vars # @@ -13,7 +44,6 @@ 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' @@ -23,8 +53,7 @@ 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 +msg "Starting installer." 8 78 $PKGM update > $OUTPUT 2>&1 $PKGI curl > $OUTPUT 2>&1 @@ -32,17 +61,28 @@ $PKGI curl > $OUTPUT 2>&1 ##--------## # Menu # ##--------## - +if [ $IMODE = n ]; then 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) email=$(whiptail --nocancel --inputbox " Enter the administrator e-mail" 11 82 --title "Config" 3>&1 1>&2 2>&3) webserv=$(whiptail --title "Select Webserver" --radiolist "WebServer" 11 53 5 "Nginx:" "Will install NGINX Webserver." ON "Apache:" "Will install Apache Webserver." OFF 3>&1 1>&2 2>&3) +fi + +if [ $IMODE = l ]; then +echo "" >/dev/null +echo "Enter the domain without WWW:" +read domain +echo "Please enter your password (should contain at least 2 digits and 6 characters:" +read password +echo "Administrator E-mail:" +read email +fi if [[ $webserv == "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 +echo "nginx php-imagick php-pear php${phpver}-fpm php${phpver}-mysql php${phpver}-cgi php${phpver}-common 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 [[ $webserv == "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 +echo "apache2 php-pear libapache2-mod-php php${phpver}-mysql php${phpver}-cgi php${phpver}-common 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 @@ -50,12 +90,12 @@ fi # Addons # ##----------## -if [ $webserv = "Nginx:" ]; then +if [[ $webserv = "Nginx:" ]]; then #NGINX Addon menu option=$(whiptail --nocancel --title "Which Nginx addons should be installed?" --checklist "Features" 11 110 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 [ $webserv = "Apache:" ]; then +if [[ $webserv = "Apache:" ]]; then #Apache Addon menu option=$(whiptail --nocancel --title "Which Apache addons should be installed?" --checklist "Features" 11 110 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 @@ -63,15 +103,15 @@ fi if [[ $option == *"Memcached:"* ]]; then #curl -s "$repo"/raw/branch/"$branch"/modules/MODNAME/"$webserv"-aptlist >> /tmp/install.txt -echo "Memcached" >> /tmp/install.txt +echo "php-memcached" >> /tmp/install.txt fi if [[ $option == *"Redis"* ]]; then -echo "Redis" >> /tmp/install.txt +echo "redis-server" >> /tmp/install.txt fi if [[ $option == *"Brotli:"* ]]; then -echo "Brotli" >> /tmp/install.txt +echo "" >> /tmp/install.txt fi @@ -81,28 +121,30 @@ fi CMS=$(whiptail --nocancel --title "What CMS should be installed?" --radiolist "Features" 11 118 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 "Nextcloud" >> /tmp/install.txt +echo "libxml2 openssl zlib1g libpng-dev redis-server" >> /tmp/install.txt fi if [[ $CMS == "Wordpress:" ]]; then -echo "Wordpress" >> /tmp/install.txt +echo "" >> /tmp/install.txt fi if [[ $CMS == "None:" ]]; then -echo "None" >> /tmp/install.txt +echo "" >> /tmp/install.txt fi ##--------------------## # Pre-Requirements # ##--------------------## +sed -i '/Port 22/c\Port 4242' /etc/ssh/sshd_config -TERM=ansi whiptail --title "Config" --infobox "Preconfiguring." 8 78 +msg "Preconfiguring." $PKGI software-properties-common > $OUTPUT 2>&1 $PKGA universe -y > $OUTPUT 2>&1 $PKGA ppa:ondrej/php -y > $OUTPUT 2>&1 $PKGA ppa:certbot/certbot -y > $OUTPUT 2>&1 $PKGA ppa:nginx/stable -y > $OUTPUT 2>&1 +$PKGA ppa:chris-lea/redis-server -y > $OUTPUT 2>&1 $PKGM update $PKGM upgrade -y @@ -150,4 +192,10 @@ ufw default allow outgoing > $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 \ No newline at end of file +echo "y" | ufw enable > $OUTPUT 2>&1 + +##------------## +# Services # +##------------## + +systemctl restart sshd \ No newline at end of file