Files
VPS-scripts_Ubuntu-Web-V1/Main-Installer.sh
2018-10-05 12:13:25 +02:00

210 lines
4.9 KiB
Bash

#!/bin/bash
###============================================================
## Ubuntu 18.04 Web Server Installer
###============================================================
## Zet comments hieronder:
#
#
#
##=============================================================
##----------##
# Menu #
##----------##
echo "Ubuntu 18.04 installatie script."
echo "Domein zonder www:"
read domain
echo "Algemeen wachtwoord:"
read password
echo "Administrator email:"
read email
echo "Webserver:"
PS3='Keuze:'
options=("Apache" "Apache, Nginx reverse proxy" "Nginx reverse proxy" "Nginx, PHP-FPM" "Quit")
select opt in "${options[@]}"
do
case $opt in
"Apache")
script=https://git.ictmaatwerk.com/VPS-scripts/Ubuntu-Web/raw/branch/dev/Apache-Installer.sh
break;;
"Apache, Nginx reverse proxy")
script=https://git.ictmaatwerk.com/VPS-scripts/Ubuntu-Web/raw/branch/dev/RevProxyAdvanced.sh
break;;
"Nginx reverse proxy")
script=https://git.ictmaatwerk.com/VPS-scripts/Ubuntu-Web/raw/branch/dev/RevProxySimple.sh
break;;
"Nginx, PHP-FPM")
script=https://git.ictmaatwerk.com/VPS-scripts/Ubuntu-Web/raw/branch/dev/NGINX-Installer.sh
break;;
"Quit")
exit;;
*) echo "Fout commando $REPLY";;
esac
done
while true; do
read -p "Installeer Cockpit -> yes/no?" yn
case $yn in
[Yy]* ) cockpit=1
break;;
[Nn]* ) cockpit=0
break;;
* ) echo "Kies yes of no.";;
esac
done
while true; do
read -p "Installeer Netdata -> yes/no?" yn
case $yn in
[Yy]* ) netdata=1
break;;
[Nn]* ) netdata=0
break;;
* ) echo "Kies yes of no.";;
esac
done
while true; do
read -p "Installeer Memcached -> yes/no?" yn
case $yn in
[Yy]* ) memcached=1
break;;
[Nn]* ) memcached=0
break;;
* ) echo "Kies yes of no.";;
esac
done
while true; do
read -p "Installeer Redis Cache -> yes/no?" yn
case $yn in
[Yy]* ) redis=1
break;;
[Nn]* ) redis=0
break;;
* ) echo "Kies yes of no.";;
esac
done
while true; do
read -p "Installeer Wordpress -> yes/no?" yn
case $yn in
[Yy]* ) wordpress=1
break;;
[Nn]* ) wordpress=0
break;;
* ) echo "Kies yes of no.";;
esac
done
##----------------##
# Pre-Config #
##----------------##
sed -i 's/PermitRootLogin yes/PermitRootLogin prohibit-password/g' /etc/ssh/sshd_config
echo "root:$password" | chpasswd
cd /tmp
#mv /boot/grub/menu.lst /boot/grub/menu.lst.bck
add-apt-repository -y ppa:certbot/certbot
apt update
apt upgrade -y
apt dist-upgrade -y
apt install -y rsync grsync sshpass
apt clean
apt autoremove -y
hostnamectl set-hostname $domain
sed -i 's/;preserve_hostname: false/preserve_hostname: true/g' /etc/cloud/cloud.cfg
timedatectl set-timezone Europe/Amsterdam
sed -i 's/#/vm.swappiness=10/g' /etc/sysctl.conf
sed -i 's/#/vm.vfs_cache_pressure=50/g' /etc/sysctl.conf
cat <<EOF > /etc/cron.weekly/update.sh
#!/bin/sh
apt update
apt upgrade -y
apt autoclean
EOF
ufw allow OpenSSH
ufw allow 443/tcp
ufw allow 80/tcp
ufw limit ssh
echo "y" | ufw enable
##-------------------##
# Install Phase #
##-------------------##
echo "****************************"
sleep 0.5
echo "Installatie duurt 5 minuten."
sleep 0.5
echo "****************************"
wget $script -O Ubuntu-Web_Installer.sh
source Ubuntu-Web_Installer.sh
##------------------##
# MySQL Config #
##------------------##
rm /etc/mysql/my.cnf
cat > /etc/mysql/my.cnf <<- "EOF"
# - "/etc/mysql/my.cnf" to set global options,
[mysqld_safe]
socket = /var/run/mysqld/mysqld.sock
nice = 0
[mysqld]
user = mysql
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
port = 3306
basedir = /usr
datadir = /var/lib/mysql
tmpdir = /tmp
lc-messages-dir = /usr/share/mysql
skip-external-locking
innodb_buffer_pool_size = 1G # (adjust value here, 50%-70% of total RAM)
innodb_log_file_size = 256M
innodb_flush_log_at_trx_commit = 1 # may change to 2 or 0
innodb_flush_method = O_DIRECT
bind-address = 127.0.0.1
key_buffer_size = 16M
max_allowed_packet = 16M
thread_stack = 192K
thread_cache_size = 8
myisam-recover-options = BACKUP
#max_connections = 100
#table_open_cache = 64
#thread_concurrency = 10
query_cache_limit = 1M
query_cache_size = 16M
log_error = /var/log/mysql/error.log
expire_logs_days = 10
max_binlog_size = 100M
EOF
##-------------##
# Cockpit #
##-------------##
if [ $cockpit = 1 ]; then
wget https://git.ictmaatwerk.com/VPS-scripts/Ubuntu-Cockpit/raw/branch/master/Slave-installer.sh -O Slave-Installer.sh
source Slave-Installer.sh
fi
echo "Installatie geslaagd!"
##------------##
# Reboot #
##------------##
echo "Reboot in:"
sleep 1
echo 3
sleep 1
echo 2
sleep 1
echo 1
reboot